GMEOW Tags Module

What This Slice Covers

This slice owns 17 terms and contributes 34 mapping or projection rows. Use it when its terms match the native fact you want to preserve; use the linkage tables to see how those facts leave GMEOW for consumer vocabularies.

Dependencies

Consumers

Local Map

tags map

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#> .

# --- A scheme and a small tag hierarchy within it.
ex:scheme a gmeow:TagScheme ; rdfs:label "Research topic keywords"@en .

ex:tagAI a gmeow:Tag ;
    rdfs:label      "artificial-intelligence"@en ;
    gmeow:tagInScheme ex:scheme ;
    gmeow:narrowerTag ex:tagML .

ex:tagML a gmeow:Tag ;
    rdfs:label      "machine-learning"@en ;
    gmeow:tagInScheme ex:scheme ;
    gmeow:broaderTag ex:tagAI ;
    gmeow:relatedTag ex:tagNLP .

ex:tagNLP a gmeow:Tag ;
    rdfs:label      "natural-language-processing"@en ;
    gmeow:tagInScheme ex:scheme .

# --- Flat tagging: the common case.
ex:paper a gmeow:CreativeWork ;
    gmeow:title  "A Survey of Transformer Architectures"@en ;
    gmeow:hasTag ex:tagML .

# --- Reified Tagging: WHO applied a tag, and under which scheme — auditable.
ex:alice a gmeow:Person ; gmeow:name "Alice"@en .

ex:taggingNLP a gmeow:Tagging ;
    gmeow:taggingTagged ex:paper ;
    gmeow:taggingTag    ex:tagNLP ;
    gmeow:taggingTagger ex:alice ;
    gmeow:taggingScheme ex:scheme .

Terms

Classes

Term Label Definition
gmeow:Tag Tag An open, user-minted tag — an information object whose identity is its IRI and whose surface form is carried by rdfs:label. Synonyms are multiple labels; homon...
gmeow:TagScheme Tag Scheme A namespaced set of tags — a project vocabulary, a personal tag bucket, or a controlled vocabulary. Multi-tenant: many schemes coexist, and a tag may belong to...
gmeow:Tagging Tagging 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:wasAttr...

Properties

Term Label Definition
gmeow:broaderTag broader tag A broader, more general tag. Transitive. Optional: folksonomy stays flat-first.
gmeow:hasTag has tag Relates an entity to a user-minted tag — the 80% flat shortcut. Non-functional: an entity may carry many co-equal tags. Period, confidence, tagger and suppress...
gmeow:isAbout is about Aboutness — a resource is about another resource. Distinct from typing (rdf:type) and from tagging (gmeow:hasTag): aboutness is a semantic subject-matter relat...
gmeow:narrowerTag narrower tag A narrower, more specific tag. Inverse of gmeow:broaderTag. Optional.
gmeow:relatedTag related tag A tag related to this tag by an associative link. Symmetric. Optional.
gmeow:tagInScheme tag in scheme Relates a tag to a scheme it belongs to. Non-functional: a tag may reside in many schemes (cross-listing).
gmeow:taggingInterval tagging interval The time interval over which the tagging act holds. A relator carries its period this way (matching gmeow:usageInterval, gmeow:relationshipInterval) rather tha...
gmeow:taggingScheme tagging scheme The tag scheme within which the tagging act is performed. Functional per relator: one scheme per Tagging (the tag itself may belong to multiple schemes).
gmeow:taggingTag tagging tag The tag applied in a tagging act. Functional per relator: one tag per Tagging.
gmeow:taggingTagged tagging tagged The entity that is tagged in a tagging act. Functional per relator: one tagged entity per Tagging.
gmeow:taggingTagger tagging tagger The agent who performed the tagging act. Non-functional: a tag may be co-asserted by multiple agents (e.g. a collaborative curation effort).

Individuals

Term Label Definition
gmeow:tagReview review A tag indicating that the tagged entity should be examined, evaluated, or reassessed by a person or process.
gmeow:tagTodo todo A tag marking the tagged entity as an action item or task yet to be completed.
gmeow:tagUrgent urgent A tag indicating that the tagged entity requires prompt attention or has high priority relative to other items.

Linkages

Source Kind Profile Predicate/Relation Target Evidence
gmeow:Tag equivalence - skos:closeMatch moat:Tag gmeow-tags.sssom.tsv; gmeow:eqTags016; confidence 0.8
gmeow:Tag equivalence - skos:closeMatch schema:DefinedTerm gmeow-tags.sssom.tsv; gmeow:eqTags006; confidence 0.9
gmeow:Tag equivalence - skos:exactMatch skos:Concept gmeow-tags.sssom.tsv; gmeow:eqTags001; confidence 0.95
gmeow:TagScheme equivalence - skos:closeMatch schema:DefinedTermSet gmeow-tags.sssom.tsv; gmeow:eqTags007; confidence 0.9
gmeow:TagScheme equivalence - skos:exactMatch skos:ConceptScheme gmeow-tags.sssom.tsv; gmeow:eqTags002; confidence 0.95
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
gmeow:broaderTag equivalence - skos:closeMatch skos:broader gmeow-tags.sssom.tsv; gmeow:eqTags003; confidence 0.95
gmeow:hasTag equivalence - skos:closeMatch schema:keywords gmeow-tags.sssom.tsv; gmeow:eqTags008; confidence 0.8
gmeow:isAbout equivalence - skos:closeMatch dcterms:subject gmeow-dublin-core.sssom.tsv; gmeow:eqDcTerms003; confidence 0.9
gmeow:isAbout equivalence - skos:closeMatch dcterms:subject gmeow-tags.sssom.tsv; gmeow:eqTags010; confidence 0.9
gmeow:isAbout equivalence - skos:closeMatch foaf:topic gmeow-tags.sssom.tsv; gmeow:eqTags011; confidence 0.85
gmeow:isAbout equivalence - skos:closeMatch schema:about gmeow-tags.sssom.tsv; gmeow:eqTags009; confidence 0.9
gmeow:relatedTag equivalence - skos:closeMatch skos:related gmeow-tags.sssom.tsv; gmeow:eqTags004; confidence 0.95
gmeow:tagInScheme equivalence - skos:exactMatch skos:inScheme gmeow-tags.sssom.tsv; gmeow:eqTags005; confidence 0.95
gmeow:taggingTag equivalence - skos:closeMatch oa:hasBody gmeow-tags.sssom.tsv; gmeow:eqTags014; confidence 0.85
gmeow:taggingTagged equivalence - skos:closeMatch oa:hasTarget gmeow-tags.sssom.tsv; gmeow:eqTags013; confidence 0.9
gmeow:Tag projection skos projects to / = rdf:type, skos:Concept, skos:broader, skos:inScheme, skos:prefLabel gmeow:mapSkosConcept; lossy: the Tagging relator's provenance/confidence/scope and the open value-vocabulary of tag relations beyond broader/narrower are not expressible in SKOS
gmeow:TagScheme projection skos projects to / = rdf:type, skos:ConceptScheme gmeow:mapSkosConceptScheme
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
gmeow:broaderTag projection skos projects to / = rdf:type, skos:Concept, skos:broader, skos:inScheme, skos:prefLabel gmeow:mapSkosConcept; lossy: the Tagging relator's provenance/confidence/scope and the open value-vocabulary of tag relations beyond broader/narrower are not expressible in SKOS
gmeow:hasTag projection doap projects to / <= doap:category gmeow:mapDoapCategory; confidence 0.8; lossy: the tag node passes as the category resource; tagger, scheme, and interval drop
gmeow:hasTag projection schema-org projects to / <= schema:keywords gmeow:mapSchemaHasTag; confidence 0.8; lossy: tag IRI lost; only label text emitted; displayable false tags suppressed; transform gmeow:fnTagToKeyword
... ... ... ... ... 10 more rows

Guide

Tags — open folksonomy, kept honest

Slice: https://blackcatinformatics.ca/gmeow/slices/tags · tier: core The universal tagging building block: tag, scheme, and the reified act — three axes, never collapsed.

Tagging systems rot when three different things get smeared into one: typing (what a thing ontologically is), aboutness (what a resource is about), and tagging (what label a user chose to stick on it). This slice keeps them as three distinct, property-level disjoint axes (Principle 9). A Tag is an information-object value — like a skos:Concept, its identity is its IRI, its surface form is a label, and it carries no inferential weight over rdf:type. A TagScheme is the namespace bucket that makes folksonomy multi-tenant. And Tagging is the reified act, a gufo:Relator bearing provenance, confidence, temporal scope, and retract-without-delete suppression (Principle 10).

The slice is flat-first throughout: the hasTag shortcut covers the 80 % case, tag hierarchy is optional, and nothing forces a scheme. Forced into core by dual extension use (images and software both tag).

The three classes

gmeow:Tag

An open, user-minted tag. Synonyms are multiple labels on one IRI; homonyms are different IRIs; coreference is asserted in data, never by collapsing tags into one. A tag is NOT a type and NOT a property bag — no datatype value property is asserted on it. Seed individuals (tagUrgent, tagTodo, tagReview) are illustrative anchors, not a fence.

gmeow:TagScheme

A namespaced set of tags — a project vocabulary, a personal bucket, a controlled vocabulary. Multi-tenant by design: many schemes coexist and a tag may sit in zero or more of them via tagInScheme (non-functional — cross-listing is normal). The counterpart of skos:ConceptScheme and schema:DefinedTermSet.

gmeow:Tagging

The reified tagging act: a gufo:Relator mediating tagged resource, tag, tagger, and optionally scheme and interval. Bears wasAttributedTo, confidence, and displayable false for retraction without deletion (Principle 10). Structurally the NameUsage/IdentityFacet idiom wearing a different hat — it inherits time-scoping, confidence-weighting, and retract-without-delete for free. EL-visible mediation is axiomatised: every Tagging has some tagged entity, some tag, and some tagger.

The flat shortcut and the aboutness boundary

gmeow:hasTag

The 80 % flat shortcut: entity → tag, non-functional, all tags co-equal. Period, confidence, tagger, and suppression ride RDF-star statement annotations on the shortcut; promote to a Tagging relator when the act itself must be a node. The pairing is machine-usable — gmeow:hasTag gmeow:pairsWith gmeow:Tagging is asserted in the module, so gmeow describe renders the promotion path from structure.

gmeow:isAbout

Subject-matter aboutness: a resource is about another resource. Declared owl:propertyDisjointWith gmeow:hasTag — the axis separation is an axiom, not a convention. The third axis, rdf:type, cannot be made disjoint in OWL (it is not an ObjectProperty in the ontology), so that leg of the trichotomy guard lives in SHACL and the Python tests.

The relator roles

gmeow:taggingTagged · gmeow:taggingTag · gmeow:taggingScheme

The functional-per-relator roles: one tagged entity, one tag, and (at most) one scheme per Tagging. Two acts applying two tags are two relators — which is exactly what lets each carry its own provenance and confidence. The tag itself may still belong to many schemes; functionality binds the act, not the tag.

gmeow:taggingTagger

The agent who performed the act. Deliberately non-functional: a tag may be co-asserted by multiple agents (collaborative curation), and those co-assertions coexist (Principle 9).

gmeow:taggingInterval

The interval over which the tagging holds — a relator carries its period this way (matching usageInterval, relationshipInterval), not via RDF-star annotations on the relator node. Bridges to the temporal slice's TimeInterval.

Optional structure

gmeow:broaderTag · gmeow:narrowerTag · gmeow:relatedTag

SKOS-shaped tag relations — transitive broader, its inverse, and a symmetric associative link. Strictly optional: folksonomy stays flat-first, and hierarchy is something a scheme grows, never something the model demands. Transitive closure over broaderTag is the reasoner's job; any heavier tag analytics (co-occurrence, suggestion) is solver-layer work (Principle 12).

Alignment & boundaries

Aligns lossily to SKOS (Tagskos:Concept), schema.org (DefinedTerm), W3C Web Annotation (a Tagging as an annotation with a tagging motivation), and MOAT — by reference and projection, never import (Principle 5); each target flattens away part of the relator (most drop tagger or interval), which is why the canonical form lives here. Depends on kernel and temporal; consumed by the images and software extensions and any slice that lets users label things.