has profile
- CURIE:
gmeow:hasProfile - IRI: https://blackcatinformatics.ca/gmeow/hasProfile
- Category: property
- Defined by:
gmeow:slices/profiles - Box roles: ConfigBox role, RBox role (What is this?)
Links an entity, value or frame to the Profile that governs its structure.
Structure
Property shape: object property; ? -> gmeow:Profile
Practical Pattern
Use gmeow:hasProfile from ? to gmeow:Profile when the relationship itself belongs in the native GMEOW graph.
Example Snippets
These snippets are generated from canonical slice examples and trimmed to the Turtle blocks where this term appears.
Named Profile Membership
- Source:
slices/core/profiles/examples/named-profile-membership.ttl - Examples catalog: open in catalog#example-slices-core-profiles-examples-named-profile-membership
@prefix gmeow: <https://blackcatinformatics.ca/gmeow/> .
@prefix ex: <https://blackcatinformatics.ca/gmeow/examples/profiles/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
# SPDX-License-Identifier: CC-BY-4.0
#
# Worked example — the Profile meta-pattern in use: a closed descriptor schema
# over an open value vocabulary, and an instance that claims conformance to it.
#
# A consumer declares a self-describing facet for a TAGGING (the reified
# tagger × tagged × tag × scheme relator) WITHOUT minting per-tag subclasses.
# It mints one gmeow:Profile that names (a) the class it applies to (the existing
# gmeow:Tagging), (b) the descriptor properties that constitute the facet, and
# (c) the open value vocabulary those descriptors draw from (the existing
# gmeow:Tag, whose members are individuals, never subclasses — P9). Extension
# happens by adding Tag INDIVIDUALS — each referenced as the value of the
# gmeow:taggingTag descriptor — never by altering the closed descriptor set. A
# concrete Tagging points at the Profile with gmeow:hasProfile, so a consumer
# holding only the data can dereference the Profile and learn the complete
# schema — the self-description that makes "extensible by construction" a
# structure, not a slogan. The example mints no classes of its own (it reuses
# gmeow:Tagging / gmeow:Tag / gmeow:TagScheme), and asserts no Expression-typed
# value, so no P11 frame is required.
# --- A concrete Tagging that CLAIMS CONFORMANCE: it carries gmeow:hasProfile
# pointing at the Profile whose descriptor schema governs it, and supplies
# descriptor values — including the open-vocabulary tag as the value of
# gmeow:taggingTag. A consumer can now validate this tagging's shape by
# dereferencing the Profile alone.
ex:taggingML a gmeow:Tagging ;
gmeow:hasProfile ex:profileTagging ;
gmeow:taggingTagged ex:paper ;
gmeow:taggingTag ex:tagML ;
gmeow:taggingTagger ex:alice ;
gmeow:taggingScheme ex:scheme .
Common Companion Terms
Usage Advice
Use when
- Use to point an entity, value, or frame at the
Profilewhose closed descriptor schema governs its structure.
Avoid when
- Avoid for naming the class a
Profiletargets (that isgmeow:profileAppliesTo, asserted on theProfile) and for membership in a named slice profile (that is gmeow:sliceProfile on the slice manifest).
How to use
- Assert
gmeow:hasProfilefrom the instance to agmeow:Profileindividual; tooling then reads theProfile's descriptors to validate which facet properties the instance may carry.
Examples
- ex:wgs84
gmeow:hasProfilegmeow:profileReferenceFrame.