has part
- CURIE:
gmeow:hasPart - IRI: https://blackcatinformatics.ca/gmeow/hasPart
- Category: property
- Defined by:
gmeow:slices/kernel - Box roles: RBox role (What is this?)
Universal whole-to-part inverse of gmeow:partOf. Transitive and intentionally broad; specialized component and containment properties remain the authoritative source for domain-specific meaning.
Structure
Property shape: object property
Practical Pattern
Use gmeow:hasPart when the definition matches the source fact. Prefer a narrower GMEOW term when one exists, and keep projection concerns in the mapping layer.
Example Snippets
These snippets are generated from canonical slice examples and trimmed to the Turtle blocks where this term appears.
Sensitivity And Disclosure
- Source:
slices/core/kernel/examples/sensitivity-and-disclosure.ttl - Examples catalog: open in catalog#example-slices-core-kernel-examples-sensitivity-and-disclosure
# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
# SPDX-License-Identifier: CC-BY-4.0
#
# Worked example: the kernel disclosure machinery (Principles 10 and 12). Any entity can
# declare HOW SENSITIVE it is (gmeow:hasSensitivity), the POLICY governing its
# release (gmeow:hasDisclosurePolicy), and WHICH CONSUMERS are eligible to receive
# it (gmeow:eligibleForConsumer → a ProjectionContext). This is the projection/
# disclosure boundary: a confidential record is never deleted, only withheld from
# the wrong consumer (P10 suppression, P12 solver/presentation split). Part-whole
# mereology (gmeow:partOf / gmeow:hasPart) and gmeow:hasDeterminacy (how crisp the
# value is) are the other kernel primitives every slice reuses.
@prefix gmeow: <https://blackcatinformatics.ca/gmeow/> .
@prefix ex: <https://blackcatinformatics.ca/gmeow/examples/kernel/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
# --- A dossier composed of records (part-whole).
ex:dossier a gmeow:InformationObject ;
rdfs:label "Personnel dossier — Dana Reyes"@en ;
gmeow:hasPart ex:salaryRecord , ex:bioNote .
Employment Contract
- Source:
slices/core/agreements/examples/employment-contract.ttl - Examples catalog: open in catalog#example-slices-core-agreements-examples-employment-contract
# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
# SPDX-License-Identifier: CC-BY-4.0
#
# Worked example: an agreement as a relator. A gmeow:Agreement (here a
# gmeow:Contract, the legally-enforceable specialization) is a gufo:Relator that
# binds its parties via gmeow:hasParty — the agreement IS the relationship, not a
# property of either party. It bears a structured gmeow:AgreementName (an
# Appellation, so multilingual co-equal titles are first-class). Other relators
# can be gmeow:foundedOn it: the employment Membership below exists BECAUSE of the
# contract, so its grounding is recorded rather than assumed.
@prefix gmeow: <https://blackcatinformatics.ca/gmeow/> .
@prefix ex: <https://blackcatinformatics.ca/gmeow/examples/agreements/> .
# --- The contract: a relator binding the two parties, bearing a formal name.
# (Validity bounds — gmeow:validFrom/validUntil — are statement-level RDF-1.2
# annotations, carried in the statement layer rather than as A-box triples.)
ex:contract a gmeow:Contract ;
gmeow:hasParty ex:acme , ex:dana ;
gmeow:hasAgreementName ex:contractName .
Projects To
| Profile | External Targets |
|---|---|
dcat |
dcat, rdf |
dcterms |
dcterms |
oai_dc |
dc |
schema-org |
rdf, schema |
External Equivalences
Equivalent or closely aligned targets: bfo, crm, dcterms, schema
Linkages
Generated from the canonical mapping DSL. SSSOM files are the generated public interchange form for term equivalences.
Term Equivalences
| Source | Kind | Profile | Predicate/Relation | Target | Evidence |
|---|---|---|---|---|---|
gmeow:hasPart |
equivalence | - |
skos:closeMatch | bfo:BFO_0000051 | gmeow-properties.sssom.tsv; gmeow:eqProperties044; confidence 0.85 |
gmeow:hasPart |
equivalence | - |
skos:closeMatch | crm:P46_is_composed_of | gmeow-properties.sssom.tsv; gmeow:eqProperties054; confidence 0.75 |
gmeow:hasPart |
equivalence | - |
skos:closeMatch | dcterms:hasPart | gmeow-dublin-core.sssom.tsv; gmeow:eqDcTerms004; confidence 0.75 |
gmeow:hasPart |
equivalence | - |
skos:closeMatch | dcterms:hasPart | gmeow-properties.sssom.tsv; gmeow:eqProperties052; confidence 0.75 |
gmeow:hasPart |
equivalence | - |
skos:closeMatch | schema:hasPart | gmeow-properties.sssom.tsv; gmeow:eqProperties050; confidence 0.8 |
Projection Coverage
| Source | Kind | Profile | Predicate/Relation | Target | Evidence |
|---|---|---|---|---|---|
gmeow:hasPart |
projection | dcat |
projects to / <= | dcat:Distribution, dcat:distribution, dcat:downloadURL, rdf:type | gmeow:mapDcatPartDistribution; confidence 0.8; lossy: generic parthood narrows to the dataset-distribution reading; non-distribution parts are over-typed |
gmeow:hasPart |
projection | dcterms |
projects to / = | dcterms:hasPart | gmeow:mapDctermsHasPart; confidence 0.85 |
gmeow:hasPart |
projection | oai_dc |
projects to / <= | dc:relation | gmeow:mapOaiDcRelation; confidence 0.7; lossy: dcterms:hasPart / isPartOf / references / isReferencedBy / requires / isRequiredBy / replaces / isReplacedBy / hasVersion / isVersionOf / conformsTo all collapse to dc:relation |
gmeow:hasPart |
projection | schema-org |
projects to / <= | rdf:type, schema:DataFeed, schema:DataFeedItem, schema:dataFeedElement | gmeow:mapSchemaDataFeed; confidence 0.85; lossy: the feed's ordered membership flattens to schema:dataFeedElement; each member is REUSED as a schema:DataFeedItem (no item-wrapper mint) |
gmeow:hasPart |
projection | schema-org |
projects to / <= | schema:hasPart | gmeow:mapSchemaHasPart; confidence 0.8; lossy: the specialized GMEOW whole-to-part subproperty, if any, is collapsed to generic schema:hasPart |
Usage Advice
Use when
- Use when traversing or projecting from whole to part across domains, or when a renderer needs a generic decomposition without committing to one privileged part model.
Avoid when
- Avoid asserting
gmeow:hasPartdirectly when a domain subproperty exists; assert the specialized part relation (or its inverse) and letgmeow:hasPartfollow by inheritance and inversion.
How to use
- Prefer asserting
gmeow:partOf(or a domain subproperty) and readgmeow:hasPartas its inverse; reach for it explicitly only in whole-rooted projections where the inverse direction is the natural one to state.
Scope notes
- Generic has-part is a query/projection convenience, not a single privileged decomposition model. Consumers that need spatial, organizational, event or information-object semantics should use the corresponding specialized subproperty.
Examples
- ex:car
gmeow:hasPartex:engine.
Published Alignment Graph
Alignments
| Relation | Target |
|---|---|
closeMatch | bfo:BFO_0000051 |
closeMatch | crm:P46_is_composed_of |
closeMatch | dcterms:hasPart |
closeMatch | schema:hasPart |