A single attestation in the t0ronto data commons: one quad asserting that `subject` stands in relation `predicate` to an object. The object is exactly one of `objectRef` (a reference to another anchor — an edge in the graph), `objectLit` (a scalar literal — a property value), or `objectStruct` (a compound value such as an address or social handle). Provenance is intrinsic and is NOT carried as fields: the record is signed by the repo's DID and stamped by the commit, so who-attested-it and when fall out of the substrate. Append-only by convention — corrections are new attestations (see the `retracts` predicate), not edits. rkey is a TID.
tid
Timestamp-based ID
Properties
createdAt
string
datetime
Required
Client-declared timestamp when the attestation was authored.
graph
string
Optional
Optional sub-grouping token for batch-authored attestations (e.g. "geocode-sync", "lcsh-import"). Provenance proper — author and time — comes from the record's repo and commit, not from this field.
maxGraphemes: 128 graphemesobjectLit
ref
#literal
Optional
Object as a scalar literal — a property value. External-world URIs (an LCSH or Wikidata alignment target, a canonical link) are literals with datatype xsd:anyURI, never objectRef — objectRef is reserved for edges inside our own graph. Exactly one of objectRef / objectLit / objectStruct must be present.
objectRef
string
at-uri
Optional
Object as an internal reference — an edge to another anchor (or, for `retracts`, to the attestation being retracted). Use for graph relations: instanceOf, mainSubject, locatedIn, broader, audience, cadence. Exactly one of objectRef / objectLit / objectStruct must be present (enforced by the index, not the lexicon).
objectStruct
union
Optional
Object as a compound value: a postal address, geo point, Foursquare POI, H3 cell, or social-platform presence. Reuses the community.lexicon.location.* vocabulary deliberately rather than redefining it. Exactly one of objectRef / objectLit / objectStruct must be present.
predicate
string
Required
The relation asserted. Open vocabulary so the commons can grow; knownValues are the curated core. Edge-style predicates (instanceOf, mainSubject, audience, cadence, locatedIn, broader, inScheme, retracts) take an objectRef; property-style predicates (label, description, link, and the alignment predicates) take an objectLit; compound predicates (address, geo, social) take an objectStruct. `instanceOf` may take an objectRef (an internal type concept) OR an objectLit with datatype xsd:anyURI (an external class such as skos:Concept — this is how an anchor is attested to be a vocabulary concept).
label, description, link, instanceOf, mainSubject, audience, cadence, locatedIn, broader, inScheme, address, geo, social, exactMatch, closeMatch, broadMatch, narrowMatch, sameAs, retractssubject
string
at-uri
Required
The anchor this claim is about — a com.t0ronto.commons.entity at-uri. May also be another attestation's at-uri, which lets you attest about an attestation (reification / edge-metadata) without leaving the model.
View raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"subject",
"predicate",
"createdAt"
],
"properties": {
"graph": {
"type": "string",
"description": "Optional sub-grouping token for batch-authored attestations (e.g. \"geocode-sync\", \"lcsh-import\"). Provenance proper — author and time — comes from the record's repo and commit, not from this field.",
"maxGraphemes": 128
},
"subject": {
"type": "string",
"format": "at-uri",
"description": "The anchor this claim is about — a com.t0ronto.commons.entity at-uri. May also be another attestation's at-uri, which lets you attest about an attestation (reification / edge-metadata) without leaving the model."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "Client-declared timestamp when the attestation was authored."
},
"objectLit": {
"ref": "#literal",
"type": "ref",
"description": "Object as a scalar literal — a property value. External-world URIs (an LCSH or Wikidata alignment target, a canonical link) are literals with datatype xsd:anyURI, never objectRef — objectRef is reserved for edges inside our own graph. Exactly one of objectRef / objectLit / objectStruct must be present."
},
"objectRef": {
"type": "string",
"format": "at-uri",
"description": "Object as an internal reference — an edge to another anchor (or, for `retracts`, to the attestation being retracted). Use for graph relations: instanceOf, mainSubject, locatedIn, broader, audience, cadence. Exactly one of objectRef / objectLit / objectStruct must be present (enforced by the index, not the lexicon)."
},
"predicate": {
"type": "string",
"description": "The relation asserted. Open vocabulary so the commons can grow; knownValues are the curated core. Edge-style predicates (instanceOf, mainSubject, audience, cadence, locatedIn, broader, inScheme, retracts) take an objectRef; property-style predicates (label, description, link, and the alignment predicates) take an objectLit; compound predicates (address, geo, social) take an objectStruct. `instanceOf` may take an objectRef (an internal type concept) OR an objectLit with datatype xsd:anyURI (an external class such as skos:Concept — this is how an anchor is attested to be a vocabulary concept).",
"knownValues": [
"label",
"description",
"link",
"instanceOf",
"mainSubject",
"audience",
"cadence",
"locatedIn",
"broader",
"inScheme",
"address",
"geo",
"social",
"exactMatch",
"closeMatch",
"broadMatch",
"narrowMatch",
"sameAs",
"retracts"
]
},
"objectStruct": {
"refs": [
"community.lexicon.location.address",
"community.lexicon.location.geo",
"community.lexicon.location.fsq",
"community.lexicon.location.hthree",
"com.t0ronto.commons.defs#social"
],
"type": "union",
"description": "Object as a compound value: a postal address, geo point, Foursquare POI, H3 cell, or social-platform presence. Reuses the community.lexicon.location.* vocabulary deliberately rather than redefining it. Exactly one of objectRef / objectLit / objectStruct must be present."
}
}
},
"description": "A single attestation in the t0ronto data commons: one quad asserting that `subject` stands in relation `predicate` to an object. The object is exactly one of `objectRef` (a reference to another anchor — an edge in the graph), `objectLit` (a scalar literal — a property value), or `objectStruct` (a compound value such as an address or social handle). Provenance is intrinsic and is NOT carried as fields: the record is signed by the repo's DID and stamped by the commit, so who-attested-it and when fall out of the substrate. Append-only by convention — corrections are new attestations (see the `retracts` predicate), not edits. rkey is a TID."
}