@agenticprimitives/ontology 1.0.0-alpha.4 → 1.0.0-alpha.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/README.md +59 -21
  2. package/cbox/agent-facet-shapes.shacl.ttl +130 -0
  3. package/cbox/capability-catalog-shapes.shacl.ttl +284 -0
  4. package/cbox/card-projection-shapes.shacl.ttl +216 -0
  5. package/cbox/consultation-shapes.shacl.ttl +85 -0
  6. package/cbox/content-vocabulary.ttl +52 -0
  7. package/cbox/controlled-vocabularies.ttl +224 -4
  8. package/cbox/discovery-graph-shapes.shacl.ttl +284 -0
  9. package/cbox/familyoffice-shapes.shacl.ttl +92 -0
  10. package/cbox/familyoffice-vocabulary.ttl +48 -0
  11. package/cbox/geo-vocabulary.ttl +36 -0
  12. package/cbox/guidance-vocabulary.ttl +22 -0
  13. package/cbox/interaction-shapes.shacl.ttl +218 -0
  14. package/cbox/interaction-vocabulary.ttl +159 -0
  15. package/cbox/judgment-shapes.shacl.ttl +83 -0
  16. package/cbox/naming-registry-shapes.shacl.ttl +272 -0
  17. package/cbox/org-team-shapes.shacl.ttl +184 -0
  18. package/cbox/privacy-credential-shapes.shacl.ttl +187 -0
  19. package/cbox/profile-facet-vocabulary.ttl +50 -0
  20. package/cbox/registry-vocabulary.ttl +86 -0
  21. package/cbox/run-measures-shapes.shacl.ttl +59 -0
  22. package/cbox/run-provenance-shapes.shacl.ttl +264 -0
  23. package/cbox/scope-vocabulary.ttl +112 -0
  24. package/cbox/skill-grounding-vocabulary.ttl +18 -0
  25. package/cbox/skill-vocabulary.ttl +50 -0
  26. package/context.jsonld +37 -1
  27. package/dist/arg-types.d.ts +60 -0
  28. package/dist/arg-types.d.ts.map +1 -0
  29. package/dist/arg-types.js +143 -0
  30. package/dist/arg-types.js.map +1 -0
  31. package/dist/artifacts.d.ts +9 -2
  32. package/dist/artifacts.d.ts.map +1 -1
  33. package/dist/artifacts.js +153 -2
  34. package/dist/artifacts.js.map +1 -1
  35. package/dist/contact-fields.d.ts +28 -0
  36. package/dist/contact-fields.d.ts.map +1 -0
  37. package/dist/contact-fields.js +38 -0
  38. package/dist/contact-fields.js.map +1 -0
  39. package/dist/decisions.d.ts +69 -0
  40. package/dist/decisions.d.ts.map +1 -0
  41. package/dist/decisions.js +98 -0
  42. package/dist/decisions.js.map +1 -0
  43. package/dist/evaluation-context.d.ts +134 -0
  44. package/dist/evaluation-context.d.ts.map +1 -0
  45. package/dist/evaluation-context.js +136 -0
  46. package/dist/evaluation-context.js.map +1 -0
  47. package/dist/governance.d.ts +84 -0
  48. package/dist/governance.d.ts.map +1 -0
  49. package/dist/governance.js +88 -0
  50. package/dist/governance.js.map +1 -0
  51. package/dist/grounded-vocabulary.d.ts +29 -0
  52. package/dist/grounded-vocabulary.d.ts.map +1 -0
  53. package/dist/grounded-vocabulary.js +110 -0
  54. package/dist/grounded-vocabulary.js.map +1 -0
  55. package/dist/household.d.ts +19 -0
  56. package/dist/household.d.ts.map +1 -0
  57. package/dist/household.js +41 -0
  58. package/dist/household.js.map +1 -0
  59. package/dist/index.d.ts +1091 -3
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +1323 -5
  62. package/dist/index.js.map +1 -1
  63. package/dist/outcomes.d.ts +47 -0
  64. package/dist/outcomes.d.ts.map +1 -0
  65. package/dist/outcomes.js +40 -0
  66. package/dist/outcomes.js.map +1 -0
  67. package/dist/participant-vocabulary.d.ts +57 -0
  68. package/dist/participant-vocabulary.d.ts.map +1 -0
  69. package/dist/participant-vocabulary.js +66 -0
  70. package/dist/participant-vocabulary.js.map +1 -0
  71. package/dist/party-roles.d.ts +115 -0
  72. package/dist/party-roles.d.ts.map +1 -0
  73. package/dist/party-roles.js +343 -0
  74. package/dist/party-roles.js.map +1 -0
  75. package/dist/payload-classes.d.ts +22 -0
  76. package/dist/payload-classes.d.ts.map +1 -0
  77. package/dist/payload-classes.js +30 -0
  78. package/dist/payload-classes.js.map +1 -0
  79. package/dist/plan-shapes.d.ts +18 -0
  80. package/dist/plan-shapes.d.ts.map +1 -0
  81. package/dist/plan-shapes.js +38 -0
  82. package/dist/plan-shapes.js.map +1 -0
  83. package/dist/principles.generated.d.ts +11 -0
  84. package/dist/principles.generated.d.ts.map +1 -0
  85. package/dist/principles.generated.js +293 -0
  86. package/dist/principles.generated.js.map +1 -0
  87. package/dist/published-works.d.ts +13 -0
  88. package/dist/published-works.d.ts.map +1 -0
  89. package/dist/published-works.js +18 -0
  90. package/dist/published-works.js.map +1 -0
  91. package/dist/relations.d.ts +44 -0
  92. package/dist/relations.d.ts.map +1 -0
  93. package/dist/relations.js +104 -0
  94. package/dist/relations.js.map +1 -0
  95. package/dist/run-measures-context.d.ts +74 -0
  96. package/dist/run-measures-context.d.ts.map +1 -0
  97. package/dist/run-measures-context.js +77 -0
  98. package/dist/run-measures-context.js.map +1 -0
  99. package/dist/run-provenance-context.d.ts +315 -0
  100. package/dist/run-provenance-context.d.ts.map +1 -0
  101. package/dist/run-provenance-context.js +323 -0
  102. package/dist/run-provenance-context.js.map +1 -0
  103. package/dist/transitions.d.ts +42 -0
  104. package/dist/transitions.d.ts.map +1 -0
  105. package/dist/transitions.js +100 -0
  106. package/dist/transitions.js.map +1 -0
  107. package/dist/vault-records.d.ts +74 -0
  108. package/dist/vault-records.d.ts.map +1 -0
  109. package/dist/vault-records.js +777 -0
  110. package/dist/vault-records.js.map +1 -0
  111. package/dist/versions.generated.d.ts +262 -0
  112. package/dist/versions.generated.d.ts.map +1 -0
  113. package/dist/versions.generated.js +318 -0
  114. package/dist/versions.generated.js.map +1 -0
  115. package/evaluation.jsonld +133 -0
  116. package/mappings/actor-context-standards.ttl +89 -0
  117. package/mappings/agent-discovery-standards.ttl +127 -0
  118. package/mappings/collaboration-crosswalk-actors.ttl +30 -0
  119. package/mappings/collaboration-crosswalk-authority.ttl +31 -0
  120. package/mappings/collaboration-crosswalk-guidance.ttl +29 -0
  121. package/mappings/collaboration-crosswalk-intent.ttl +29 -0
  122. package/mappings/collaboration-crosswalk-messaging.ttl +37 -0
  123. package/mappings/collaboration-crosswalk-organization.ttl +66 -0
  124. package/mappings/collaboration-crosswalk-protocols.ttl +49 -0
  125. package/mappings/collaboration-crosswalk-skills.ttl +50 -0
  126. package/mappings/collaboration-profile.ttl +82 -0
  127. package/mappings/commerce-engagement-crosswalk.ttl +83 -0
  128. package/mappings/spine-standards.ttl +83 -0
  129. package/package.json +31 -9
  130. package/run-measures.jsonld +34 -0
  131. package/run-provenance.jsonld +314 -0
  132. package/tbox/actor-context.ttl +145 -0
  133. package/tbox/agent-resolution.ttl +308 -0
  134. package/tbox/agreement.ttl +77 -0
  135. package/tbox/attestation.ttl +156 -0
  136. package/tbox/card-projection.ttl +350 -0
  137. package/tbox/constraints.ttl +150 -0
  138. package/tbox/contact.ttl +61 -0
  139. package/tbox/content.ttl +76 -0
  140. package/tbox/context.ttl +508 -0
  141. package/tbox/coordination.ttl +263 -0
  142. package/tbox/core.ttl +325 -7
  143. package/tbox/dcat-imports.ttl +19 -0
  144. package/tbox/discovery.ttl +273 -0
  145. package/tbox/dqv-imports.ttl +29 -0
  146. package/tbox/earl-imports.ttl +32 -0
  147. package/tbox/engagement.ttl +349 -0
  148. package/tbox/entitlement.ttl +41 -0
  149. package/tbox/estate.ttl +78 -0
  150. package/tbox/evaluation.ttl +330 -0
  151. package/tbox/execution.ttl +720 -0
  152. package/tbox/familyoffice.ttl +87 -0
  153. package/tbox/fulfillment.ttl +140 -0
  154. package/tbox/geo.ttl +28 -0
  155. package/tbox/governance.ttl +67 -0
  156. package/tbox/guidance.ttl +40 -0
  157. package/tbox/household.ttl +142 -0
  158. package/tbox/identity.ttl +133 -6
  159. package/tbox/inference.ttl +177 -0
  160. package/tbox/intents.ttl +241 -0
  161. package/tbox/interaction.ttl +297 -0
  162. package/tbox/messaging.ttl +244 -0
  163. package/tbox/naming.ttl +114 -0
  164. package/tbox/org.ttl +410 -0
  165. package/tbox/payload.ttl +94 -0
  166. package/tbox/payment.ttl +124 -0
  167. package/tbox/plan.ttl +169 -0
  168. package/tbox/principles.ttl +212 -0
  169. package/tbox/privacy-credential.ttl +436 -0
  170. package/tbox/profile.ttl +107 -0
  171. package/tbox/prov-imports.ttl +73 -0
  172. package/tbox/registry.ttl +382 -0
  173. package/tbox/resolution.ttl +108 -0
  174. package/tbox/scope.ttl +59 -0
  175. package/tbox/security-exposure.ttl +102 -0
  176. package/tbox/situation.ttl +56 -0
  177. package/tbox/skills.ttl +316 -0
  178. package/tbox/skos-imports.ttl +54 -0
  179. package/tbox/transition.ttl +63 -0
  180. package/tbox/trust.ttl +210 -0
  181. package/tbox/values.ttl +81 -0
  182. package/tbox/verification-receipt.ttl +134 -0
  183. package/versions.adoption.json +173 -0
@@ -0,0 +1,19 @@
1
+ # T-box — the W3C DCAT 3 terms this substrate EMITS, declared (spec 415 S0).
2
+ #
3
+ # DCAT 3 (W3C Recommendation, 2024-08-22) describes a replay set: a versioned dataset of intents with a checksummed
4
+ # distribution (the file). Declared in the wave that first emits them. Axioms: the Recommendation's.
5
+
6
+ @prefix dcat: <http://www.w3.org/ns/dcat#> .
7
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
8
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
9
+
10
+ <https://agenticprimitives.dev/ns/dcat-imports> a owl:Ontology ;
11
+ rdfs:label "Agentic Primitives — DCAT terms in use" ;
12
+ owl:versionInfo "0.1.0" ;
13
+ rdfs:comment "Declarations of the W3C DCAT 3 terms replay-set descriptions carry. Spec 415 S0; pinned in docs/standards-lock.json#provenance.dcat." .
14
+
15
+ dcat:Dataset a owl:Class ; rdfs:label "Dataset (DCAT)" .
16
+ dcat:Distribution a owl:Class ; rdfs:label "Distribution (DCAT)" .
17
+ dcat:distribution a owl:ObjectProperty ; rdfs:label "distribution (DCAT)" .
18
+ dcat:version a owl:DatatypeProperty ; rdfs:label "version (DCAT)" .
19
+ dcat:downloadURL a owl:ObjectProperty ; rdfs:label "downloadURL (DCAT)" .
@@ -0,0 +1,273 @@
1
+ # T-box — discovery, trust determination, and graph query vocabulary.
2
+ # Domain-derived from Agent Explorer's discovery/descriptors/trust vocabulary
3
+ # and grounded in PROV-O + DOLCE+DnS/DUL.
4
+
5
+ @prefix ap: <https://agenticprimitives.dev/ns/core#> .
6
+ @prefix apdisc: <https://agenticprimitives.dev/ns/discovery#> .
7
+ @prefix apreg: <https://agenticprimitives.dev/ns/registry#> .
8
+ @prefix apint: <https://agenticprimitives.dev/ns/intent#> .
9
+ @prefix apatt: <https://agenticprimitives.dev/ns/attestation#> .
10
+ @prefix aps: <https://agenticprimitives.dev/ns/skill#> .
11
+ @prefix apg: <https://agenticprimitives.dev/ns/geo#> .
12
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
13
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
14
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
15
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
16
+ @prefix prov: <http://www.w3.org/ns/prov#> .
17
+ @prefix dul: <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#> .
18
+ @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
19
+
20
+ apdisc: a owl:Ontology ;
21
+ rdfs:label "Agentic Primitives — discovery ontology" ;
22
+ owl:versionInfo "0.2.0" ;
23
+ rdfs:seeAlso <https://github.com/agentictrustlabs/agent-explorer/tree/main/apps/ontology/ontology> ;
24
+ rdfs:comment "Vocabulary for GraphDB-backed discovery queries, evidence paths, trust determinations, graph snapshots, and intent candidate matching." .
25
+
26
+ apdisc:CandidateQuery a owl:Class ;
27
+ rdfs:subClassOf prov:Activity, dul:InformationRealization ;
28
+ rdfs:label "CandidateQuery" ;
29
+ rdfs:comment "A versioned discovery query over the public A-box and inferred graphs." .
30
+
31
+ apdisc:MatchCandidate a owl:Class ;
32
+ rdfs:subClassOf prov:Entity, dul:InformationObject ;
33
+ rdfs:label "MatchCandidate" ;
34
+ rdfs:comment "A candidate agent returned for an intent or discovery query with evidence, score, and trust determination." .
35
+
36
+ apdisc:TrustDetermination a owl:Class ;
37
+ rdfs:subClassOf prov:Entity, dul:Diagnosis ;
38
+ rdfs:label "TrustDetermination" ;
39
+ rdfs:comment "An explainable determination over public evidence. It informs discovery and ranking but does not authorize action." .
40
+
41
+ apdisc:EvidencePath a owl:Class ;
42
+ rdfs:subClassOf prov:Entity, dul:InformationObject ;
43
+ rdfs:label "EvidencePath" ;
44
+ rdfs:comment "An ordered citation path showing why a candidate matched: card binding, registry entry, claims, validation, outcomes, and revocation checks." .
45
+
46
+ apdisc:GraphSnapshot a owl:Class ;
47
+ rdfs:subClassOf prov:Entity ;
48
+ rdfs:label "GraphSnapshot" ;
49
+ rdfs:comment "Identifier for the named graph versions and block ranges used by a query." .
50
+
51
+ apdisc:InferenceProfile a owl:Class ;
52
+ rdfs:subClassOf dul:Description ;
53
+ rdfs:label "InferenceProfile" ;
54
+ rdfs:comment "Versioned inference settings, e.g. RDFS, SKOS broader/narrower, SHACL validation reports, materialization policy." .
55
+
56
+ apdisc:TrustPolicy a owl:Class ;
57
+ rdfs:subClassOf dul:Description ;
58
+ rdfs:label "TrustPolicy" ;
59
+ rdfs:comment "A declarative policy describing which evidence classes, issuers, recency, validation, and registry status are required for a trust determination." .
60
+
61
+ apdisc:DiscoveryExplanation a owl:Class ;
62
+ rdfs:subClassOf prov:Entity, dul:InformationObject ;
63
+ rdfs:label "DiscoveryExplanation" ;
64
+ rdfs:comment "Human-readable and machine-readable explanation attached to a candidate or trust determination." .
65
+
66
+ apdisc:queryHash a owl:DatatypeProperty ;
67
+ rdfs:domain apdisc:CandidateQuery ;
68
+ rdfs:range xsd:string ;
69
+ rdfs:label "queryHash" .
70
+
71
+ apdisc:sparqlHash a owl:DatatypeProperty ;
72
+ rdfs:domain apdisc:CandidateQuery ;
73
+ rdfs:range xsd:string ;
74
+ rdfs:label "sparqlHash" .
75
+
76
+ apdisc:usesGraphSnapshot a owl:ObjectProperty ;
77
+ rdfs:domain apdisc:CandidateQuery ;
78
+ rdfs:range apdisc:GraphSnapshot ;
79
+ rdfs:label "usesGraphSnapshot" .
80
+
81
+ apdisc:usesInferenceProfile a owl:ObjectProperty ;
82
+ rdfs:domain apdisc:CandidateQuery ;
83
+ rdfs:range apdisc:InferenceProfile ;
84
+ rdfs:label "usesInferenceProfile" .
85
+
86
+ apdisc:forIntent a owl:ObjectProperty ;
87
+ rdfs:domain apdisc:CandidateQuery ;
88
+ rdfs:range apint:Intent ;
89
+ rdfs:label "forIntent" .
90
+
91
+ apdisc:candidateAgent a owl:ObjectProperty ;
92
+ rdfs:domain apdisc:MatchCandidate ;
93
+ rdfs:range ap:Agent ;
94
+ rdfs:label "candidateAgent" .
95
+
96
+ apdisc:candidateRegistryEntry a owl:ObjectProperty ;
97
+ rdfs:domain apdisc:MatchCandidate ;
98
+ rdfs:range apreg:RegistryEntry ;
99
+ rdfs:label "candidateRegistryEntry" .
100
+
101
+ apdisc:hasTrustDetermination a owl:ObjectProperty ;
102
+ rdfs:domain apdisc:MatchCandidate ;
103
+ rdfs:range apdisc:TrustDetermination ;
104
+ rdfs:label "hasTrustDetermination" .
105
+
106
+ apdisc:hasEvidencePath a owl:ObjectProperty ;
107
+ rdfs:range apdisc:EvidencePath ;
108
+ rdfs:label "hasEvidencePath" .
109
+
110
+ apdisc:citesEvidence a owl:ObjectProperty ;
111
+ rdfs:domain apdisc:EvidencePath ;
112
+ rdfs:range prov:Entity ;
113
+ rdfs:label "citesEvidence" .
114
+
115
+ apdisc:trustScore a owl:DatatypeProperty ;
116
+ rdfs:domain apdisc:TrustDetermination ;
117
+ rdfs:range xsd:decimal ;
118
+ rdfs:label "trustScore" ;
119
+ rdfs:comment "Normalized score used for ranking. It must cite evidence; score alone is not authority." .
120
+
121
+ apdisc:matchScore a owl:DatatypeProperty ;
122
+ rdfs:domain apdisc:MatchCandidate ;
123
+ rdfs:range xsd:decimal ;
124
+ rdfs:label "matchScore" .
125
+
126
+ apdisc:confidence a owl:DatatypeProperty ;
127
+ rdfs:domain apdisc:TrustDetermination ;
128
+ rdfs:range xsd:decimal ;
129
+ rdfs:label "confidence" .
130
+
131
+ apdisc:explanationText a owl:DatatypeProperty ;
132
+ rdfs:domain apdisc:DiscoveryExplanation ;
133
+ rdfs:range xsd:string ;
134
+ rdfs:label "explanationText" .
135
+
136
+ apdisc:validationReport a owl:ObjectProperty ;
137
+ rdfs:range prov:Entity ;
138
+ rdfs:label "validationReport" ;
139
+ rdfs:comment "Link to a SHACL validation report or equivalent graph validation result." .
140
+
141
+ apdisc:namedGraph a owl:DatatypeProperty ;
142
+ rdfs:domain apdisc:GraphSnapshot ;
143
+ rdfs:range xsd:string ;
144
+ rdfs:label "namedGraph" .
145
+
146
+ apdisc:inferenceProfileId a owl:DatatypeProperty ;
147
+ rdfs:domain apdisc:InferenceProfile ;
148
+ rdfs:range xsd:string ;
149
+ rdfs:label "inferenceProfileId" .
150
+
151
+ # ═══════════════════════════════════════════════════════════════════════════════════════════════
152
+ # Offerings (spec 286; ADR-0040 amended) — the crawled, HOST-ASSERTED service surface.
153
+ #
154
+ # WHY THIS BLOCK EXISTS. `apdisc:Offering` and its thirteen properties were written into the
155
+ # production knowledge graph by apps/demo-discovery-indexer and read back by
156
+ # apps/demo-discovery-mcp's `getOfferings` SPARQL — while being declared in NO T-box file. This is
157
+ # the same gap `tbox/profile.ttl` closed for `approf:`, and it is closed the same way: NOTHING IS
158
+ # MINTED HERE. Every IRI below is verbatim what the indexer already emits and the MCP already
159
+ # selects, because both are already in the live graph. Renaming any of them would be a migration,
160
+ # not an edit (ADR-0009; ADR-0013 — no read path for an undeclared term).
161
+ #
162
+ # ── What an Offering IS, and what it is NOT (capability-architecture.md §1) ─────────────────────
163
+ # An Offering is an `aps:CapabilityProtocolProjection`: ONE agent's public ADVERTISEMENT of ONE
164
+ # skill, crawled from that agent's own `GET /offerings?view=public` card. It is:
165
+ # · host-asserted, therefore the WEAKEST assertion strength (declared, never claimed, never
166
+ # demonstrated) — `apdisc:hasOffering` carries exactly as much authority as `atl:skills` does,
167
+ # which is none;
168
+ # · provenance-bearing by construction (sourceEndpoint + observedAt + cardDigest), because a
169
+ # crawled assertion whose observation point and time are unrecorded cannot be aged out or
170
+ # challenged;
171
+ # · NEVER an `apguide:AgentSkillPackage` reference. An Offering names no playbook (architecture
172
+ # §2 axiom 1: the `implementedBy exactly-1` error), and no gate may read one (axiom 4).
173
+ # ═══════════════════════════════════════════════════════════════════════════════════════════════
174
+
175
+ apdisc:Offering a owl:Class ;
176
+ rdfs:subClassOf prov:Entity , dul:InformationObject ;
177
+ rdfs:label "Offering" ;
178
+ rdfs:comment "One crawled, host-asserted public skill advertisement of ONE agent (spec 286). A projection of a capability, never the capability and never a plan. Its A-box IRI is deterministic per (chain, agent, skillId) — `urn:ap:offering:eip155:<chain>:<sa>:<skillId>` — so a re-crawl converges on the same subject instead of accumulating duplicates." ;
179
+ # NOT rdfs:subClassOf aps:CapabilityProtocolProjection, and the reason is load-bearing rather
180
+ # than fussy. An Offering plays the projection ROLE — it is an advertisement and nothing more —
181
+ # but `aps:CapabilityProtocolProjectionShape` requires `aps:declaresCapability` exactly once, and
182
+ # an Offering declares NOTHING resolvable: its `skillId` is whatever string the host put on its
183
+ # own card. Subclassing would make RDFS entailment sweep every crawled offering into that shape's
184
+ # target set, and the production graph would report thousands of violations that describe the
185
+ # ontology's wishful thinking rather than any defect in the data. When a host publishes a
186
+ # catalog capability id, the honest edge is an explicit `aps:declaresCapability` triple on the
187
+ # offering node — asserted per offering, never entailed from its class.
188
+ skos:related aps:CapabilityProtocolProjection .
189
+
190
+ # ── The two link predicates (agent ↔ child node) ────────────────────────────
191
+
192
+ apdisc:hasOffering a owl:ObjectProperty ;
193
+ rdfs:domain ap:Agent ;
194
+ rdfs:range apdisc:Offering ;
195
+ rdfs:label "hasOffering" ;
196
+ rdfs:comment "Agent → its crawled Offerings. FRESHNESS IS PER LINK PREDICATE: a crawl that fails returns no children at all and the indexer PRESERVES the existing offerings; only a successful crawl (possibly of zero offerings) refreshes them. Crawl failure is not zero offerings (ADR-0013)." .
197
+
198
+ apdisc:ofAgent a owl:ObjectProperty ;
199
+ rdfs:range ap:Agent ;
200
+ rdfs:label "ofAgent" ;
201
+ rdfs:comment "The child-node → agent backlink the projection store writes for EVERY first-class child node — Offerings, aptrust:TrustGraphEdge, apatt:Attestation. Deliberately left with NO rdfs:domain: constraining it to apdisc:Offering would, under RDFS entailment, type every attestation and every trust edge as an Offering. It is a generic backlink that happens to live in the apdisc: namespace because the offerings projector coined it first." .
202
+
203
+ # ── The thirteen Offering-node properties ───────────────────────────────────
204
+ # Order matches apps/demo-discovery-indexer/src/ontology.ts so the two files can be diffed by eye.
205
+
206
+ apdisc:skillId a owl:DatatypeProperty ;
207
+ rdfs:domain apdisc:Offering ; rdfs:range xsd:string ;
208
+ rdfs:label "skillId" ;
209
+ rdfs:comment "The host's own id for the advertised skill, verbatim from its card. It is the offering's identity component (the A-box IRI derives from it), NOT a resolvable `aps:capabilityId` and NOT the on-chain keccak256 skillId — a host may advertise anything it likes here. An offering without one is not projected at all." .
210
+
211
+ apdisc:offeringName a owl:DatatypeProperty ;
212
+ rdfs:domain apdisc:Offering ; rdfs:range xsd:string ;
213
+ rdfs:label "offeringName" ;
214
+ rdfs:comment "The card's human label for this skill." .
215
+
216
+ apdisc:offeringDescription a owl:DatatypeProperty ;
217
+ rdfs:domain apdisc:Offering ; rdfs:range xsd:string ;
218
+ rdfs:label "offeringDescription" ;
219
+ rdfs:comment "The card's per-skill blurb. Its OWN term, and G8's third writer: this was emitted under `approf:description`, whose rdfs:domain is `approf:AgentProfile`, so every crawled Offering entailed itself to be an agent profile and an 'agent self-description' query that dropped its subject filter would sweep up host-asserted skill blurbs. A skill's blurb is not an agent's bio (agent-metadata-tiers.md: same field name ≠ same field)." .
220
+
221
+ apdisc:offeringVersion a owl:DatatypeProperty ;
222
+ rdfs:domain apdisc:Offering ; rdfs:range xsd:string ;
223
+ rdfs:label "offeringVersion" ;
224
+ rdfs:comment "The host's version string for this skill, opaque and uninterpreted — never parsed, never ordered, never compared." .
225
+
226
+ apdisc:effect a owl:DatatypeProperty ;
227
+ rdfs:domain apdisc:Offering ; rdfs:range xsd:string ;
228
+ rdfs:label "effect" ;
229
+ rdfs:comment "The card's self-declared effect class (e.g. read/write). AN OPEN VALUE SPACE ON PURPOSE: it is a host's claim about its own skill, so no codelist here could be authoritative, and pinning one would make an unrecognised value indistinguishable from an absent one. It informs presentation and ranking; it never gates anything (authority is delegation ∩ entitlement ∩ policy, at the gate)." .
230
+
231
+ apdisc:exposure a owl:DatatypeProperty ;
232
+ rdfs:domain apdisc:Offering ; rdfs:range xsd:string ;
233
+ rdfs:label "exposure" ;
234
+ rdfs:comment "The card's self-declared exposure class. Same posture as apdisc:effect: host-asserted, open, advisory, never an authorization input." .
235
+
236
+ apdisc:family a owl:DatatypeProperty ;
237
+ rdfs:domain apdisc:Offering ; rdfs:range xsd:string ;
238
+ rdfs:label "family" ;
239
+ rdfs:comment "The card's grouping label for related skills. A NAVIGATIONAL category (apctx:classifiedBy in spirit), never `aps:specializesCapability` — a host's grouping is not a statement that one ability is a narrower form of another." .
240
+
241
+ apdisc:requiredCapability a owl:DatatypeProperty ;
242
+ rdfs:domain apdisc:Offering ; rdfs:range xsd:string ;
243
+ rdfs:label "requiredCapability" ;
244
+ rdfs:comment "MULTIVALUED — one triple per entry (`requiredCapabilities[]` on the card), which is why the MCP's getOfferings groups rows by offering node. What the host says a CALLER must present to invoke this skill. It is a published precondition, not a grant and not a check: the caller's actual authority is decided at the gate." .
245
+
246
+ apdisc:hasInputSchema a owl:DatatypeProperty ;
247
+ rdfs:domain apdisc:Offering ; rdfs:range xsd:string ;
248
+ rdfs:label "hasInputSchema" ;
249
+ rdfs:comment "Whether the card advertises an input schema for this skill. STRING-TYPED, NOT BOOLEAN, and deliberately so: the indexer writes `String(o.hasInputSchema)` and the MCP reads `value === 'true'`, so the live value space is exactly the two lexical forms 'true' and 'false'. The C-box shape pins that set, because any third value reads as false in the MCP and would be a silent miss (ADR-0013). Declaring it xsd:boolean here would describe a graph that does not exist." .
250
+
251
+ apdisc:offeringStatus a owl:DatatypeProperty ;
252
+ rdfs:domain apdisc:Offering ; rdfs:range xsd:string ;
253
+ rdfs:label "offeringStatus" ;
254
+ rdfs:comment "The card's lifecycle label for this skill. Host-asserted and open — an agent taking a skill down is a fact about its card, observable only at the next crawl." .
255
+
256
+ # ── Provenance of the crawl itself (ADR-0040 amended) ───────────────────────
257
+ # A host-asserted fact with no observation point and no observation time cannot be aged, diffed or
258
+ # challenged — it is a rumour with a subject IRI. These three are what make an Offering evidence.
259
+
260
+ apdisc:sourceEndpoint a owl:DatatypeProperty ;
261
+ rdfs:range xsd:string ;
262
+ rdfs:label "sourceEndpoint" ;
263
+ rdfs:comment "The `a2aEndpoint` the card was crawled from — the spec-280 node-keyed endpoint record, not a profile property. Also emitted on the agent's own offerings facet, hence NO rdfs:domain. The crawl requires the card's self-reported agentId to equal the SA being crawled: a host may never project offerings for a different agent." .
264
+
265
+ apdisc:observedAt a owl:DatatypeProperty ;
266
+ rdfs:range xsd:integer ;
267
+ rdfs:label "observedAt" ;
268
+ rdfs:comment "Unix SECONDS at which the card was observed (the card's own `observedAt` when it states one, else crawl time). Written as a bare Turtle integer, hence xsd:integer, not xsd:dateTime — declared as it is emitted, not as one might wish it were. Also emitted on the agent's offerings facet, hence no rdfs:domain." .
269
+
270
+ apdisc:cardDigest a owl:DatatypeProperty ;
271
+ rdfs:domain apdisc:Offering ; rdfs:range xsd:string ;
272
+ rdfs:label "cardDigest" ;
273
+ rdfs:comment "`sha256:<64 lowercase hex>` over the RAW card body the offering was parsed from. It is what makes 'did this host's advertisement change?' answerable without having stored the card: every offering crawled in one pass shares one digest, so a changed digest scopes exactly which advertisements must be re-examined. Same load-bearing role the pinned playbook content hash plays for a realization contract." .
@@ -0,0 +1,29 @@
1
+ # T-box — the W3C Data Quality Vocabulary terms this substrate EMITS, declared (spec 414 A2).
2
+ #
3
+ # Same rule as prov-imports.ttl and skos-imports.ttl: DQV (W3C Working Group Note, 2016-12-15) means what the Note
4
+ # says and nothing here redefines it. Declared so the bindings, the standard-anchoring gate and the measurement
5
+ # shapes can tell an imported standard term from a typo. Declared in the wave that first emits them (A2): a run's
6
+ # measurements (`run.measures:<runRef>`) are dqv:QualityMeasurements computedOn its activities.
7
+ #
8
+ # Domains and ranges are omitted: the Note's own axioms govern.
9
+
10
+ @prefix dqv: <http://www.w3.org/ns/dqv#> .
11
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
12
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
13
+
14
+ <https://agenticprimitives.dev/ns/dqv-imports> a owl:Ontology ;
15
+ rdfs:label "Agentic Primitives — DQV terms in use" ;
16
+ owl:versionInfo "0.1.0" ;
17
+ rdfs:comment "Declarations of the W3C DQV terms the substrate's measurement records carry. Spec 414 A2; pinned in docs/standards-lock.json#provenance.dqv." .
18
+
19
+ dqv:QualityMeasurement a owl:Class ; rdfs:label "QualityMeasurement (DQV)" ;
20
+ rdfs:comment "A value of a metric computed on a resource. Here: one number about a run or a step, computed from its trace alone." .
21
+ dqv:Metric a owl:Class ; rdfs:label "Metric (DQV)" .
22
+ dqv:Dimension a owl:Class ; rdfs:label "Dimension (DQV)" .
23
+ dqv:QualityMeasurementDataset a owl:Class ; rdfs:label "QualityMeasurementDataset (DQV)" ;
24
+ rdfs:comment "A set of measurements. Here: all of one run's measurements, one record." .
25
+
26
+ dqv:computedOn a owl:ObjectProperty ; rdfs:label "computedOn (DQV)" .
27
+ dqv:isMeasurementOf a owl:ObjectProperty ; rdfs:label "isMeasurementOf (DQV)" .
28
+ dqv:inDimension a owl:ObjectProperty ; rdfs:label "inDimension (DQV)" .
29
+ dqv:value a owl:DatatypeProperty ; rdfs:label "value (DQV)" .
@@ -0,0 +1,32 @@
1
+ # T-box — the W3C EARL 1.0 terms this substrate EMITS, declared (spec 414 §3.4 / 415 SEL-1).
2
+ #
3
+ # EARL (W3C Working Group Note, 2017-02-02) is the verdict form of a judgment whose criterion is a TEST: an
4
+ # earl:Assertion that a subject passed / failed / could not be told. First emitted by the mechanical SKILL-SELECTION
5
+ # judge (spec 415 §3a). Declared here so bindings, anchoring and the judgment shapes see them. Axioms: the Note's.
6
+
7
+ @prefix earl: <http://www.w3.org/ns/earl#> .
8
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
9
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
10
+
11
+ <https://agenticprimitives.dev/ns/earl-imports> a owl:Ontology ;
12
+ rdfs:label "Agentic Primitives — EARL terms in use" ;
13
+ owl:versionInfo "0.1.1" ;
14
+ rdfs:comment "Declarations of the W3C EARL 1.0 terms judgment records carry. Spec 414 §3.4; pinned in docs/standards-lock.json#provenance.earl." .
15
+
16
+ earl:Assertion a owl:Class ; rdfs:label "Assertion (EARL)" .
17
+ earl:TestResult a owl:Class ; rdfs:label "TestResult (EARL)" .
18
+ earl:OutcomeValue a owl:Class ; rdfs:label "OutcomeValue (EARL)" .
19
+ earl:TestMode a owl:Class ; rdfs:label "TestMode (EARL)" .
20
+ earl:assertedBy a owl:ObjectProperty ; rdfs:label "assertedBy (EARL)" .
21
+ earl:subject a owl:ObjectProperty ; rdfs:label "subject (EARL)" .
22
+ earl:test a owl:ObjectProperty ; rdfs:label "test (EARL)" .
23
+ earl:result a owl:ObjectProperty ; rdfs:label "result (EARL)" .
24
+ earl:outcome a owl:ObjectProperty ; rdfs:label "outcome (EARL)" .
25
+ earl:mode a owl:ObjectProperty ; rdfs:label "mode (EARL)" .
26
+ earl:passed a earl:OutcomeValue ; rdfs:label "passed (EARL)" .
27
+ earl:failed a earl:OutcomeValue ; rdfs:label "failed (EARL)" .
28
+ earl:cantTell a earl:OutcomeValue ; rdfs:label "cantTell (EARL)" .
29
+ earl:inapplicable a earl:OutcomeValue ; rdfs:label "inapplicable (EARL)" .
30
+ earl:automatic a earl:TestMode ; rdfs:label "automatic (EARL)" .
31
+ earl:manual a earl:TestMode ; rdfs:label "manual (EARL)" .
32
+ earl:semiAuto a earl:TestMode ; rdfs:label "semiAuto (EARL)" .