GMEOW Sources Module

What This Slice Covers

This slice owns 3 terms and contributes 12 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

sources map

Examples

Imported Record

# SPDX-FileCopyrightText: 2026 Blackcat Informatics® Inc. <paudley@blackcatinformatics.ca>
# SPDX-License-Identifier: CC-BY-4.0
#
# Worked example: pinning an imported source. The sources slice is the
# "where did this byte-stream come from" layer: gmeow:sourceLocation (where it was
# read from), gmeow:sourceModifiedAt (the source's own last-modified time, not the
# import time), and gmeow:contentDigest (a content hash so later re-imports can
# detect whether the bytes changed). Together they make an imported artifact
# re-fetchable and tamper-evident — the substrate the provenance slice builds its
# wasDerivedFrom lineage on.
@prefix gmeow: <https://blackcatinformatics.ca/gmeow/> .
@prefix ex:    <https://blackcatinformatics.ca/gmeow/examples/sources/> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .

ex:report a gmeow:CreativeWork ;
    gmeow:title            "Q3 2026 Financial Report"@en ;
    gmeow:sourceLocation   "/imports/finance/q3-2026.pdf" ;
    gmeow:sourceModifiedAt "2026-09-30T17:00:00Z"^^xsd:dateTime ;
    gmeow:contentDigest    "blake3:5f8d1e2a9c4b7d0e3f6a1b8c5d2e9f0a3b6c7d4e1f8a2b5c9d0e3f6a7b4c1d8e" .

Terms

Properties

Term Label Definition
gmeow:contentDigest content digest A content hash of an object's bytes (e.g. "blake3:…", "sha256:…", "git:…") — the reliable identity by content (two objects with the same bytes are the same obj...
gmeow:sourceLocation source location Where the source artifact came from — a file path, original filename, or URL. Provenance/audit only; carries no reliable identity.
gmeow:sourceModifiedAt source modified at The last-modification time of the source artifact itself (e.g. a file mtime). A terminus-ante-quem on the recording of the claims this source carries — NOT val...

Linkages

Source Kind Profile Predicate/Relation Target Evidence
gmeow:sourceLocation equivalence - skos:closeMatch dcterms:source gmeow-dublin-core.sssom.tsv; gmeow:eqDcTerms006; confidence 0.6
gmeow:sourceLocation equivalence - skos:closeMatch dcterms:source gmeow-provenance.sssom.tsv; gmeow:eqProvenance011; confidence 0.6
gmeow:sourceLocation equivalence - skos:closeMatch schema:contentUrl gmeow-properties.sssom.tsv; gmeow:eqProperties079; confidence 0.85
gmeow:sourceModifiedAt equivalence - skos:closeMatch dcterms:modified gmeow-provenance.sssom.tsv; gmeow:eqProvenance010; confidence 0.9
gmeow:contentDigest projection codemeta projects to / = codemeta:identifier gmeow:mapCodeMetaIdentifier; lossy: digest algorithm, multiple digests; only the string value survives
gmeow:contentDigest projection dcat projects to / <= rdf:type, spdx:Checksum, spdx:checksum, spdx:checksumValue gmeow:mapDcatChecksum; confidence 0.85; lossy: the algorithm prefix stays inline in spdx:checksumValue (no spdx:algorithm split)
gmeow:sourceLocation projection dcat projects to / <= dcat:Distribution, dcat:distribution, dcat:downloadURL, rdf:type gmeow:mapDcatDistribution; confidence 0.85; lossy: the member document is REUSED as the dcat:Distribution node (no manifestation split); its GMEOW typing is dropped
gmeow:sourceLocation 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:sourceLocation projection dcterms projects to / = dcterms:source gmeow:mapDctermsSource; confidence 0.8
gmeow:sourceLocation projection oai_dc projects to / = dc:source gmeow:mapOaiDcSource; confidence 0.8
gmeow:sourceLocation projection schema-org projects to / <= rdf:type, schema:DataDownload, schema:contentUrl, schema:distribution, schema:encodingFormat gmeow:mapSchemaDataDownload; confidence 0.85; lossy: the member document is REUSED as the schema:DataDownload node; its GMEOW typing drops
gmeow:sourceLocation projection sioc projects to / <= sioc:link gmeow:mapSiocLink; confidence 0.85

Guide

Sources — carrier metadata and content-addressed identity

Slice: https://blackcatinformatics.ca/gmeow/slices/sources · tier: core What a source artifact is — its bytes, its location, its clock — held apart from the claims it carries.

There is no gmeow:Source class, and that is the doctrine. The source/claim refactor refactor retired the anti-rigid Source Kind: being-a-source is not what a thing is but a role it plays in an act of citation — source-hood is mediated by CitationAct (citations slice) or borne as a SourceRole. Likewise the old Citation locator gave way to the Selector/EvidenceSpan model (citations and evidence slices). What remains here is exactly what is intrinsic to the artifact: carrier metadata — applied to the creative-works Manifestation/Item tiers, never to the Work — and the content-digest identity discipline.

This slice is the Source root of the claim spine (Source → ChunkEvidenceSpan → Claim, Principle 14). The spine is content-addressed from the bottom: a source is identified by what its bytes are (contentDigest), never by where they sit (sourceLocation) or when the filesystem last touched them (sourceModifiedAt). The same discipline carries the GTS packages — blake3 digests are the identity spine of the signed, append-only memory format (Principle 14).

Carrier metadata

When a creative work is an import envelope — a file carrying a bundle of claims — these properties describe the artifact itself, never the claims inside it. Keeping the two apart is the whole point: an mtime says nothing about when a marriage happened or when a census taker wrote it down.

gmeow:contentDigest

A content hash of an object's bytes — "blake3:…", "sha256:…", "git:…" — the reliable identity: two objects with the same bytes are the same object, regardless of path, name, or mtime. Deliberately domain-free: creative works, source files, commits, and distributions are all content-addressable (Principle 4: one identity mechanism, not one per artifact kind). Not functional — an object may carry digests under several algorithms, and they coexist.

gmeow:sourceModifiedAt

The last-modification time of the source artifact itself (a file mtime): a terminus-ante-quem on the recording of the claims it carries — the upper bound that feeds gmeow:recordedNoLaterThan in the temporal slice's four-clock model. It is NOT valid-time and NOT observation-time; conflating the carrier's clock with the claims' clocks is the classic provenance error this slice exists to forbid. Advisory and resettable, hence not functional: copies of the same bytes legitimately report different mtimes, and those reports coexist rather than force an inconsistency (Principle 9) — the reliable identity stays contentDigest.

gmeow:sourceLocation

Where the artifact came from — a file path, original filename, or URL. Provenance and audit only; it carries no identity. A file renamed is the same source; a path reused is not the same source. Typically asserted on a Manifestation or Item alongside the digest.

Bridges & solver boundary

The claims a source carries enter the graph through an ImportActivity (provenance slice), which stamps the transaction clock; the evidentiary reach into the source — which span supports which claim, with what warrant — is the evidence and citations slices' machinery. Digest computation, dedup-by-digest, and mtime-vs-digest conflict resolution are solver-layer computations, never assertions (Principle 12): the slice records the digests and timestamps; deciding that two artifacts are byte-identical is a projection-time join on contentDigest.

Dependencies

Depends on documents (the WEMI carrier tiers the metadata attaches to). Consumed by the claim spine's content-addressed sources and by the GTS packages' blake3 identity spine (Principle 14).