GMEOW Notes & Annotation Module

What This Slice Covers

This slice owns 31 terms and contributes 39 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

notes map

Examples

Annotations And Notes

# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
# SPDX-License-Identifier: CC-BY-4.0
#
# Worked example: notes and annotations. A gmeow:Note is a first-class
# information object — authored, timestamped, and linked to other notes by
# gmeow:hasWikilink and to entities by gmeow:mentions (the Zettelkasten / linked-
# note pattern). A gmeow:Highlight is the W3C-Web-Annotation shape for pure
# highlighting: a gmeow:annotationTarget, a precise gmeow:annotationTargetSpan
# (a text-quote Selector), and a gmeow:annotationMotivation — but NO body (a
# highlight just marks a span; for an annotation that says something, a body-
# bearing gmeow:Annotation subclass is used). A gmeow:Comment is a Note that
# threads under a parent.
@prefix gmeow: <https://blackcatinformatics.ca/gmeow/> .
@prefix ex:    <https://blackcatinformatics.ca/gmeow/examples/notes/> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .

ex:dana a gmeow:Person ; gmeow:name "Dana Reyes"@en .
ex:paper a gmeow:CreativeWork ; gmeow:title "A Survey of Transformer Architectures"@en .

# --- A linked note: authored, mentions an entity, wikilinks to another note.
ex:note1 a gmeow:Note ;
    gmeow:noteAuthor    ex:dana ;
    gmeow:noteContent   "Transformers replaced RNNs for most NLP tasks by 2020." ;
    gmeow:noteCreatedAt "2026-06-10T08:00:00Z"^^xsd:dateTime ;
    gmeow:hasWikilink   ex:note2 ;
    gmeow:mentions      ex:paper .

ex:note2 a gmeow:Note ;
    gmeow:noteAuthor  ex:dana ;
    gmeow:noteContent "The attention mechanism is the core idea." .

# --- A highlight on the paper: it pins WHICH span via annotationTargetSpan (a
#     Selector) and is motivated by highlighting — a pure target+span binding,
#     no body (that is the Highlight contract).
ex:highlight a gmeow:Highlight ;
    gmeow:annotationTarget     ex:paper ;
    gmeow:annotationTargetSpan ex:span ;
    gmeow:annotationMotivation gmeow:motivationHighlighting .

ex:span a gmeow:Selector ;
    gmeow:selectorTextQuote "the attention mechanism scales quadratically with sequence length" .

# --- A comment threading under the paper (a Comment IS a Note).
ex:comment a gmeow:Comment ;
    gmeow:noteAuthor    ex:dana ;
    gmeow:noteContent   "Does this hold for very long sequences?" ;
    gmeow:commentParent ex:paper .

Terms

Classes

Term Label Definition
gmeow:Annotation Annotation A reified binding of a body to a target with a motivation — the W3C Web Annotation idiom expressed as a gufo:Relator. Mediates annotationBody (the note or lite...
gmeow:AnnotationMotivation Annotation Motivation The purpose for which an annotation is created — a VALUE vocabulary (individuals, never subclasses) aligned to the W3C Web Annotation motivation set. Co-equal:...
gmeow:Bookmark Bookmark An annotation that records a target resource for later retrieval, motivated by bookmarking. Typically has no body and no selector (the target entity itself is...
gmeow:Comment Comment A note that replies to an annotation or another comment — a threaded discussion node. Every Comment has exactly one commentParent (the annotation or comment be...
gmeow:Highlight Highlight An annotation that marks an anchored span within a target and carries no body — a pure target+selector binding motivated by highlighting.
gmeow:Note Note A piece of content in a personal or collective knowledge graph — an annotation body, a Zettelkasten card, a comment, or a standalone thought. Grounded as an in...

Properties

Term Label Definition
gmeow:annotationBody annotation body The note that serves as the body of an annotation — the content being attached. Functional per relator: one body per Annotation. Optional: a highlight or bookm...
gmeow:annotationMotivation annotation motivation The motivation of an annotation — the purpose for which the body is attached to the target. Functional per relator: one motivation per Annotation. An open valu...
gmeow:annotationTarget annotation target The entity that is annotated — the target of the annotation. Functional per relator: one target per Annotation.
gmeow:annotationTargetSpan annotation target span An optional anchored span within the annotation target — a text quote, position, or fragment selector. Non-functional: an annotation may reference multiple spa...
gmeow:commentParent comment parent The annotation or comment that this comment replies to. Every Comment has exactly one commentParent. The range is gmeow:Entity (encompassing Annotation and Com...
gmeow:hasDirectReply has direct reply Relates an annotation or comment to its immediate reply comment. Non-transitive inverse of commentParent. HasReply is the transitive superproperty that reaches...
gmeow:hasReply has reply Relates an annotation or comment to a reply comment. Transitive: the full reply tree is reachable. Superproperty of hasDirectReply. Intentionally kept free of...
gmeow:hasWikilink has wikilink A directed wikilink edge projected from mentions or relatedNote for Markdown / PKM round-trip. Not asserted in the canonical graph; materialized by the markdow...
gmeow:mentionedIn mentioned in The inverse of mentions: an entity is mentioned in a note — the backlink view. Materialized by projection or inference, never hand-maintained.
gmeow:mentions mentions A note mentions another entity (typically another note or a resource) — the source of a directed backlink edge. Non-functional: a note may mention many entitie...
gmeow:noteAuthor note author The agent who authored a note — the flat 80% shortcut. Non-functional: a note may have multiple co-authors. Promote to a reified gmeow:Participation or prov:wa...
gmeow:noteContent note content The textual or markdown content of a note. The flat 80% case; promote to a structured CreativeWork or a reified annotation when provenance, versioning, or mult...
gmeow:noteCreatedAt note created at The creation timestamp of a note — a lightweight four-clock shortcut. The heavy case uses a reified gmeow:Participation or prov:wasAttributedTo with full tempo...
gmeow:noteModifiedAt note modified at The last-modification timestamp of a note — a lightweight four-clock shortcut.
gmeow:relatedNote related note An undirected associative link between two notes — the semantic sibling of relatedTag, applied to the note graph. Symmetric. Optional: the note graph stays fla...

Individuals

Term Label Definition
gmeow:motivationAssessing assessing The annotation assesses or evaluates the target.
gmeow:motivationBookmarking bookmarking The annotation bookmarks the target for later retrieval.
gmeow:motivationCommenting commenting The annotation comments on the target.
gmeow:motivationDescribing describing The annotation describes the target.
gmeow:motivationHighlighting highlighting The annotation highlights a span within the target.
gmeow:motivationLinking linking The annotation links the target to another resource.
gmeow:motivationModerating moderating The annotation moderates or curates the target.
gmeow:motivationQuestioning questioning The annotation poses a question about the target.
gmeow:motivationReplying replying The annotation replies to another annotation or comment.
gmeow:motivationTagging tagging The annotation tags the target with a label or topic.

Linkages

Source Kind Profile Predicate/Relation Target Evidence
gmeow:Annotation equivalence - skos:closeMatch oa:Annotation gmeow-notes.sssom.tsv; gmeow:eqNotes001; confidence 0.85
gmeow:Comment equivalence - skos:closeMatch schema:Comment gmeow-notes.sssom.tsv; gmeow:eqNotes007; confidence 0.85
gmeow:Comment equivalence - skos:closeMatch sioc:Post gmeow-notes.sssom.tsv; gmeow:eqNotes010; confidence 0.8
gmeow:Note equivalence - skos:closeMatch as:Note gmeow-notes.sssom.tsv; gmeow:eqNotes009; confidence 0.8
gmeow:Note equivalence - skos:closeMatch schema:NoteDigitalDocument gmeow-notes.sssom.tsv; gmeow:eqNotes006; confidence 0.85
gmeow:annotationBody equivalence - skos:closeMatch oa:hasBody gmeow-notes.sssom.tsv; gmeow:eqNotes002; confidence 0.9
gmeow:annotationMotivation equivalence - skos:closeMatch oa:motivatedBy gmeow-notes.sssom.tsv; gmeow:eqNotes004; confidence 0.95
gmeow:annotationTarget equivalence - skos:closeMatch oa:hasTarget gmeow-notes.sssom.tsv; gmeow:eqNotes003; confidence 0.95
gmeow:commentParent equivalence - skos:closeMatch schema:parentItem gmeow-notes.sssom.tsv; gmeow:eqNotes008b; confidence 0.8
gmeow:commentParent equivalence - skos:closeMatch sioc:reply_of gmeow-notes.sssom.tsv; gmeow:eqNotes011; confidence 0.85
gmeow:hasReply equivalence - skos:closeMatch sioc:has_reply gmeow-notes.sssom.tsv; gmeow:eqNotes012; confidence 0.85
gmeow:mentions equivalence - skos:closeMatch schema:mentions gmeow-notes.sssom.tsv; gmeow:eqNotes008; confidence 0.9
gmeow:noteAuthor equivalence - skos:closeMatch dcterms:creator gmeow-notes.sssom.tsv; gmeow:eqNotes005; confidence 0.8
gmeow:noteAuthor equivalence - skos:closeMatch foaf:maker gmeow-notes.sssom.tsv; gmeow:eqNotes013; confidence 0.75
gmeow:noteContent equivalence - skos:closeMatch as:content gmeow-notes.sssom.tsv; gmeow:eqNotes009a; confidence 0.85
gmeow:noteContent equivalence - skos:closeMatch schema:text gmeow-notes.sssom.tsv; gmeow:eqNotes008a; confidence 0.85
gmeow:Annotation projection web-annotation projects to / <= oa:Annotation, oa:hasBody, oa:hasTarget, oa:motivatedBy, rdf:type gmeow:mapOaAnnotation; confidence 0.85; lossy: provenance, confidence, temporal scope, standpoint, suppression dropped; body may be absent (highlights/bookmarks)
gmeow:Bookmark projection web-annotation projects to / <= oa:Annotation, oa:bookmarking, oa:hasTarget, oa:motivatedBy, rdf:type gmeow:mapOaBookmark; confidence 0.85; lossy: body and selector absent by design; provenance/confidence/standpoint dropped
gmeow:Comment projection web-annotation projects to / <= oa:Annotation, oa:hasBody, oa:hasTarget, oa:motivatedBy, oa:replying, rdf:type gmeow:mapOaComment; confidence 0.8; lossy: thread depth, reply tree, standpoint, confidence, temporal scope dropped; only direct parent-target survives
gmeow:Highlight projection web-annotation projects to / <= oa:Annotation, oa:SpecificResource, oa:hasSelector, oa:hasSource, oa:hasTarget, oa:highlighting, oa:motivatedBy, rdf:type gmeow:mapOaHighlight; confidence 0.85; lossy: body absent by design; selector precision (prefix/suffix) dropped if not projected; provenance/confidence/standpoint dropped
gmeow:Note projection activitystreams projects to / <= as:Note, as:attributedTo, as:content, rdf:type gmeow:mapAsNote; confidence 0.8; lossy: standpoint, confidence, temporal scope, suppression state, aboutness, tagging, backlinks dropped
gmeow:Note projection markdown projects to / <= gmeow:hasWikilink gmeow:mapMarkdownMentions; confidence 0.9; lossy: mentions → directed wikilink edge only
gmeow:Note projection markdown projects to / <= gmeow:hasWikilink gmeow:mapMarkdownRelatedNote; confidence 0.9; lossy: relatedNote → bidirectional wikilink edges materialized; standpoint, confidence, temporal scope, suppression, aboutness, tagging dropped
gmeow:Note projection schema-org projects to / <= rdf:type, schema:NoteDigitalDocument, schema:author, schema:parentItem, schema:text gmeow:mapSchemaNote; confidence 0.85; lossy: standpoint, confidence, temporal scope, suppression state, aboutness, tagging dropped; Comment-specific typing collapsed to schema:NoteDigitalDocument (rdflib UNION limit)
... ... ... ... ... 15 more rows

Guide

Notes & Annotation — alignment & projection reference

The first-class annotation and personal-knowledge-management layer. A person's digital existence includes their notes — annotations, highlights, bookmarks, comments, and the linked web of thought (Zettelkasten / PKM). This slice unifies scattered GMEOW pieces (documents, sources, EvidenceSpan, aboutness, standpoint) into a coherent annotation layer that reuses, never duplicates existing constructs.

Everything here is authored once in mapping-dsl/ and generated by gmeow compile-mappings (Principle 4); nothing in mappings/, projections/, or queries/projections/ is hand-edited.

Core design

  1. A Note is content; an Annotation binds it to a target (the W3C Web Annotation idiom: Body / Target / Motivation). A highlight = target + selector, no body; a bookmark = motivatedBy bookmarking; a comment = a Note replying to a target.
  2. One selector model, reused. The annotation target's selector is the EvidenceSpan / Selector (text quote, text position, page, locator). Selector is a subclass of EvidenceSpan; no second selector model is minted.
  3. Aboutness is a Tagging, not a string. A note's topic reuses isAbout / Tagging from the tags building block.
  4. Backlinks are first-class and bidirectional (the RDF gap): mentions / mentionedIn (inverse), relatedNote (symmetric) — kept out of OWL cardinality for DL regularity.
  5. Perspectival + suppressible: notes are accordingTo-indexed; a retracted note sets displayable false, never deleted (Principle 10).

Terms at a glance

Term Kind Role
gmeow:Note class (gufo:Kind ⊑ InformationObject) The content layer — a note, card, or thought
gmeow:Annotation class (gufo:Kind ⊑ Relator) Reified binding of body → target with motivation
gmeow:Highlight class (gufo:SubKind ⊑ Annotation) Target + selector, no body
gmeow:Bookmark class (gufo:SubKind ⊑ Annotation) Target only, motivated by bookmarking
gmeow:Comment class (gufo:SubKind ⊑ Note) A reply note; threaded via commentParent / hasReply
gmeow:EvidenceSpan class (gufo:Kind ⊑ InformationObject) Generalized anchored target span
gmeow:Selector class (gufo:Kind ⊑ EvidenceSpan) Citation-specific pinpoint (page, quote, position, locator)
gmeow:mentions object property A note mentions another entity (directed backlink source)
gmeow:mentionedIn object property (inverseOf mentions) The backlink view
gmeow:relatedNote object property (SymmetricProperty) Undirected associative link between notes
gmeow:AnnotationMotivation value vocabulary (individuals) describing, commenting, highlighting, bookmarking, tagging, linking, questioning, replying, assessing, moderating

SSSOM alignments (mapping-dsl/equivalences/notes.ttl)

All by reference (Principle 5) — GMEOW never imports an external axiom. Compiled to mappings/gmeow-notes.sssom.tsv.

GMEOW Predicate Target Note
gmeow:Annotation skos:closeMatch oa:Annotation GMEOW Annotation is a relator with provenance; oa:Annotation is flatter
gmeow:annotationBody skos:closeMatch oa:hasBody The note body; oa:hasBody may also be textual/SpecificResource
gmeow:annotationTarget skos:closeMatch oa:hasTarget The annotated entity
gmeow:annotationMotivation skos:closeMatch oa:motivatedBy The annotation purpose
gmeow:noteAuthor skos:closeMatch dcterms:creator / foaf:maker Flat authorship shortcut
gmeow:Note skos:closeMatch schema:NoteDigitalDocument / as:Note GMEOW carries full provenance; targets are flat
gmeow:Comment skos:closeMatch schema:Comment / sioc:Post Threaded reply note vs flat comment type
gmeow:mentions skos:closeMatch schema:mentions Directed mention edge
gmeow:commentParent skos:closeMatch sioc:reply_of / schema:parentItem Parent of a reply
gmeow:hasReply skos:closeMatch sioc:has_reply Direct reply link (transitive in GMEOW)
gmeow:noteContent skos:closeMatch schema:text / as:content The note text

Projections — the four-artifact stack

W3C Web Annotation → queries/projections/web-annotation.rq

Re-expresses GMEOW Annotation / Highlight / Bookmark / Comment as oa:Annotation. Standpoint, provenance, confidence, temporal scope, and suppression state are dropped; the projection is intentionally flat (no dcterms:creator emitted).

Branch CONSTRUCT Lossy drop
Annotation oa:hasBody, oa:hasTarget, oa:motivatedBy provenance, confidence, temporal scope, standpoint
Highlight oa:hasTargetoa:SpecificResource + oa:hasSelector body absent by design; selector precision dropped if not projected
Bookmark oa:hasTarget, oa:motivatedBy oa:bookmarking body and selector absent by design
Comment oa:hasBody, oa:hasTarget (parent), oa:motivatedBy oa:replying thread depth, reply tree, standpoint, confidence, temporal scope

schema.org → queries/projections/schema-org.rq

Re-expresses Noteschema:NoteDigitalDocument (Comments included by subsumption).

Source Target Lossy drop
gmeow:Note schema:NoteDigitalDocument standpoint, confidence, temporal scope, suppression, aboutness, tagging
gmeow:Comment schema:NoteDigitalDocument (+ schema:parentItem when commentParent present) same + reply tree depth + Comment-specific type (collapsed to avoid rdflib UNION-depth limit)

ActivityStreams → queries/projections/activitystreams.rq

Re-expresses Noteas:Note for fediverse / decentralized syndication.

Source Target Lossy drop
gmeow:Note as:Note standpoint, confidence, temporal scope, suppression, aboutness, tagging, backlinks

Markdown / [[wikilink]]queries/projections/markdown.rq

The GMEOW-native bridge to Obsidian / Logseq PKM interop. Projects mentions and relatedNote to a flat gmeow:hasWikilink graph.

⚠️ Brutally lossy. This projection drops ALL metadata: standpoint, confidence, temporal scope, suppression state, aboutness, tagging. Only the directed (mentions) and undirected (relatedNote) wikilink edges survive. The round-trip from RDF → Markdown → RDF cannot recover the rich annotation layer; it is a deliberate downcast for human PKM consumption (Principle 4).

PKM round-trip guide

Obsidian / Logseq conventions. A note file is a Markdown document. Wikilinks are [[Note Title]] or [[Note Title|Display Text]]. GMEOW projects a note's rdfs:label or noteContent first line as the file title, and its mentions / relatedNote edges as wikilinks in the markdown body. On re-ingest, the markdown parser mints gmeow:Note individuals and gmeow:mentions edges; the original provenance, standpoint, and confidence are not recoverable and must be re-asserted by the ingestion pipeline if needed.

Term reference

gmeow:Note · gmeow:noteContent · gmeow:noteAuthor · gmeow:noteCreatedAt · gmeow:noteModifiedAt

The content layer — an annotation body, Zettelkasten card, comment, or standalone thought, grounded as an InformationObject. noteContent carries the flat 80%-case text/markdown; noteAuthor (non-functional) the flat authorship shortcut, promotable to a reified Participation when the act needs period, confidence, or standpoint (P9); noteCreatedAt/noteModifiedAt are lightweight four-clock timestamps.

gmeow:Annotation · gmeow:annotationBody · gmeow:annotationTarget · gmeow:annotationTargetSpan · gmeow:annotationMotivation

A reified binding of a body to a target with a motivation — the W3C Web Annotation idiom as a gufo:Relator. annotationBody (functional, optional — highlights and bookmarks have none) names the note; annotationTarget (functional) the annotated entity; annotationTargetSpan (non-functional) reuses EvidenceSpan, no second selector model minted; annotationMotivation (functional) the purpose, no value privileged.

gmeow:Highlight · gmeow:Bookmark

Specialized annotations: a Highlight marks an anchored span and carries no body (a pure target+selector binding motivated by highlighting); a Bookmark records a target resource for later retrieval, typically with no body or selector.

gmeow:Comment · gmeow:commentParent · gmeow:hasReply · gmeow:hasDirectReply

A Note that replies to an annotation or another comment — a threaded discussion node. commentParent names the one thing replied to (range Entity, so any annotatable entity may be a parent); hasDirectReply (inverse of commentParent) is the immediate reply, and its transitive superproperty hasReply reaches the full reply tree, kept free of OWL cardinality for DL regularity.

gmeow:mentions · gmeow:mentionedIn · gmeow:relatedNote · gmeow:hasWikilink

The first-class bidirectional backlink graph (the RDF/PKM gap). mentions is the directed edge from a note to an entity; mentionedIn (its inverse) the backlink view, materialized never hand-maintained; relatedNote (symmetric) an undirected associative link; hasWikilink a Markdown/PKM round-trip edge projected from the others, not asserted canonically.

gmeow:AnnotationMotivation

The purpose for which an annotation is created — a VALUE vocabulary (individuals, never subclasses) aligned to the W3C Web Annotation motivation set: describing, commenting, highlighting, bookmarking, tagging, linking, questioning, replying, assessing, moderating. Co-equal and open: no motivation is primary or default.

Verified by construction