Tagging
- CURIE:
gmeow:Tagging - IRI: https://blackcatinformatics.ca/gmeow/Tagging
- Category: class
- Defined by:
gmeow:slices/tags - Box roles: TBox role (What is this?)
A reified tagging act — a gufo:Relator mediating a tagged resource, a tag, a tagger, and optionally a scheme and time interval. Bears provenance (gmeow:wasAttributedTo), confidence (gmeow:confidence), and suppression (gmeow:displayable false for retraction without deletion — Principle 10). Structurally the NameUsage/IdentityFacet idiom wearing a different hat, inheriting time-scoping, confidence-weighting, and retract-without-delete for free. The canonical form when the act of tagging must itself be a node; the flat shortcut is gmeow:hasTag.
Structure
Subclass of: gufo:Relator
Practical Pattern
Use gmeow:Tagging as a specialized kind of gufo:Relator. Add statement metadata or a standpoint when the assertion needs provenance, confidence, or vantage.
Example Snippets
These snippets are generated from canonical slice examples and trimmed to the Turtle blocks where this term appears.
Folksonomy
- Source:
slices/core/tags/examples/folksonomy.ttl - Examples catalog: open in catalog#example-slices-core-tags-examples-folksonomy
# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
# SPDX-License-Identifier: CC-BY-4.0
#
# Worked example: tagging is flat-first, reified on demand ( P4). A bare
# gmeow:hasTag covers "this is tagged X". Tags themselves form a SKOS-style poly-
# hierarchy (gmeow:broaderTag / gmeow:narrowerTag / gmeow:relatedTag) inside a
# gmeow:TagScheme. When the PROVENANCE of a tagging matters — who applied it, in
# which scheme — it is promoted to a reified gmeow:Tagging relator binding tagger
# × tagged × tag × scheme, so a contested or machine-applied tag is auditable.
@prefix gmeow: <https://blackcatinformatics.ca/gmeow/> .
@prefix ex: <https://blackcatinformatics.ca/gmeow/examples/tags/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
ex:taggingNLP a gmeow:Tagging ;
gmeow:taggingTagged ex:paper ;
gmeow:taggingTag ex:tagNLP ;
gmeow:taggingTagger ex:alice ;
gmeow:taggingScheme ex:scheme .
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.
# --- The Profile: a closed descriptor schema for a tagging. It SELF-DESCRIBES —
# naming the class it governs (profileAppliesTo gmeow:Tagging), the
# descriptor properties (profileDescriptor), and the open value class
# (profileOpenValue gmeow:Tag) — so tooling reads the graph, not code. A
# Profile MUST carry a skos:definition.
ex:profileTagging a gmeow:Profile ;
rdfs:label "Tagging Profile"@en ;
skos:definition "The closed descriptor schema for a reified tagging: the entity tagged, the tag applied (drawn from the open gmeow:Tag vocabulary), the agent who applied it, and the scheme it belongs to. New tags extend the facet as data added to the open value class, with this descriptor set unchanged."@en ;
gmeow:profileAppliesTo gmeow:Tagging ;
gmeow:profileDescriptor
gmeow:taggingTagged ,
gmeow:taggingTag ,
gmeow:taggingTagger ,
gmeow:taggingScheme ;
gmeow:profileOpenValue gmeow:Tag .
Projects To
| Profile | External Targets |
|---|---|
schema-org |
schema |
web-annotation |
oa, rdf |
External Equivalences
Equivalent or closely aligned targets: oa, tags
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:Tagging |
equivalence | - |
skos:closeMatch | oa:Annotation | gmeow-tags.sssom.tsv; gmeow:eqTags012; confidence 0.85 |
gmeow:Tagging |
equivalence | - |
skos:closeMatch | tags:Tagging | gmeow-tags.sssom.tsv; gmeow:eqTags015; confidence 0.85 |
Projection Coverage
| Source | Kind | Profile | Predicate/Relation | Target | Evidence |
|---|---|---|---|---|---|
gmeow:Tagging |
projection | schema-org |
projects to / <= | schema:keywords | gmeow:mapSchemaTaggingKeyword; confidence 0.7; lossy: tagger, scheme, interval, confidence, provenance dropped; only tag label survives; transform gmeow:fnTagToKeyword |
gmeow:Tagging |
projection | web-annotation |
projects to / <= | oa:Annotation, oa:hasBody, oa:hasTarget, oa:motivatedBy, oa:tagging, rdf:type | gmeow:mapWebAnnotationTagging; confidence 0.8; lossy: confidence, temporal scope (taggingInterval), scheme dropped; tagger and attribution omitted (not projected); transform gmeow:fnTaggingToAnnotation |
Usage Advice
Use when
- Use when the act of tagging must itself be a node — to record who tagged, when, under which scheme, with what confidence, or to retract a tag without deleting it (
gmeow:displayablefalse).
Avoid when
- Avoid for the ordinary 80% case where a bare label suffices (use the flat
gmeow:hasTag, optionally with RDF-star annotations); reify only when provenance, period, or suppression must be first-class.
How to use
- Mint the relator and fill its roles —
gmeow:taggingTagged,gmeow:taggingTag,gmeow:taggingTagger, optionallygmeow:taggingSchemeandgmeow:taggingInterval— then carry provenance, confidence, and displayable on the relator node;gmeow:hasTagpairsWithTaggingas the promotion target.
Examples
- ex:t1 a
gmeow:Tagging;gmeow:taggingTaggedex:report;gmeow:taggingTagex:tagUrgent;gmeow:taggingTaggerex:lillith.