com.t0ronto.commons.attestation
Schema Diff
+2 -1
Compatibility Analysis
Backward Compatible
No changes detected.
1
1
{
2
2
"id": "com.t0ronto.commons.attestation",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"subject",
11
11
"predicate",
12
12
"createdAt"
13
13
],
14
14
"properties": {
15
15
"graph": {
16
16
"type": "string",
17
17
"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.",
18
18
"maxGraphemes": 128
19
19
},
20
20
"subject": {
21
21
"type": "string",
22
22
"format": "at-uri",
23
23
"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."
24
24
},
25
25
"createdAt": {
26
26
"type": "string",
27
27
"format": "datetime",
28
28
"description": "Client-declared timestamp when the attestation was authored."
29
29
},
30
30
"objectLit": {
31
31
"ref": "#literal",
32
32
"type": "ref",
33
33
"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."
34
34
},
35
35
"objectRef": {
36
36
"type": "string",
37
37
"format": "at-uri",
38
38
"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)."
39
39
},
40
40
"predicate": {
41
41
"type": "string",
42
-
"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, 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).",
42
+
"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).",
43
43
"knownValues": [
44
44
"label",
45
45
"description",
46
46
"link",
47
47
"instanceOf",
48
48
"mainSubject",
49
49
"audience",
50
50
"cadence",
51
51
"locatedIn",
52
52
"broader",
53
+
"inScheme",
53
54
"address",
54
55
"geo",
55
56
"social",
56
57
"exactMatch",
57
58
"closeMatch",
58
59
"broadMatch",
59
60
"narrowMatch",
60
61
"sameAs",
61
62
"retracts"
62
63
]
63
64
},
64
65
"objectStruct": {
65
66
"refs": [
66
67
"community.lexicon.location.address",
67
68
"community.lexicon.location.geo",
68
69
"community.lexicon.location.fsq",
69
70
"community.lexicon.location.hthree",
70
71
"com.t0ronto.commons.defs#social"
71
72
],
72
73
"type": "union",
73
74
"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."
74
75
}
75
76
}
76
77
},
77
78
"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."
78
79
},
79
80
"literal": {
80
81
"type": "object",
81
82
"required": [
82
83
"value"
83
84
],
84
85
"properties": {
85
86
"lang": {
86
87
"type": "string",
87
88
"description": "BCP-47 language tag, used when datatype is rdf:langString. Lets the same subject carry labels/descriptions in multiple languages as separate attestations (e.g. an `en` label and a `fr` label)."
88
89
},
89
90
"value": {
90
91
"type": "string",
91
92
"description": "The literal value, lexically encoded per its datatype (e.g. \"43.6532\" for an xsd:decimal, an ISO-8601 string for an xsd:dateTime, the full URI for an xsd:anyURI).",
92
93
"maxGraphemes": 2000
93
94
},
94
95
"datatype": {
95
96
"type": "string",
96
97
"default": "xsd:string",
97
98
"description": "XSD/RDF datatype as a CURIE or URI. Common values: xsd:string, xsd:anyURI (external-vocab targets and links), xsd:dateTime, xsd:decimal, xsd:boolean, rdf:langString."
98
99
}
99
100
},
100
101
"description": "A scalar literal value with an XSD datatype. Numbers, dates, and URIs are carried in their lexical (string) form, tagged by `datatype`."
101
102
}
102
103
},
103
104
"$type": "com.atproto.lexicon.schema",
104
105
"lexicon": 1
105
106
}