@agenticprimitives/ontology 1.0.0-alpha.20 → 1.0.0-alpha.22
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.
- package/cbox/interaction-shapes.shacl.ttl +218 -0
- package/cbox/interaction-vocabulary.ttl +31 -28
- package/dist/artifacts.d.ts +3 -3
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +10 -1
- package/dist/artifacts.js.map +1 -1
- package/dist/index.d.ts +98 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +125 -16
- package/dist/index.js.map +1 -1
- package/mappings/collaboration-crosswalk-messaging.ttl +3 -3
- package/mappings/collaboration-crosswalk-protocols.ttl +6 -3
- package/mappings/commerce-engagement-crosswalk.ttl +83 -0
- package/package.json +1 -1
- package/tbox/agent-resolution.ttl +296 -0
- package/tbox/engagement.ttl +349 -0
- package/tbox/intents.ttl +2 -2
- package/tbox/interaction.ttl +284 -0
- package/tbox/messaging.ttl +7 -7
- package/tbox/fabric.ttl +0 -59
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
# T-box — agent resolution vocabulary (spec 338; ADR-0056).
|
|
2
|
+
#
|
|
3
|
+
# VOCABULARY HAZARD — READ BEFORE EXTENDING:
|
|
4
|
+
# `apres:` (ns/resolution#) is INTENT resolution — apres:Resolver, apres:ResolutionReceipt,
|
|
5
|
+
# the ERC-7683 Resolver pattern owned by `intent-resolver`. THIS module is AGENT resolution and
|
|
6
|
+
# uses `apar:` (ns/agent-resolution#). Never reuse the bare terms Resolver / ResolutionReceipt
|
|
7
|
+
# here; this plane's receipt is apar:AgentResolutionReceipt.
|
|
8
|
+
#
|
|
9
|
+
# THE GAP THIS MODULE OWNS: an agent's canonical identity is stable, but WHERE it is right now, and
|
|
10
|
+
# WHO may find that out, are separate mutable questions. Public naming answers neither privately nor
|
|
11
|
+
# freshly. A signed card proves a snapshot was not modified; it does not prove the snapshot is still
|
|
12
|
+
# in force.
|
|
13
|
+
#
|
|
14
|
+
# THE RULE THAT GOVERNS EVERY TERM BELOW:
|
|
15
|
+
# A resolution grant answers "may this party DISCOVER how to reach this agent?"
|
|
16
|
+
# It NEVER answers "may this party USE this agent?"
|
|
17
|
+
# Service use remains delegation ∩ entitlement ∩ tool/action policy ∩ invocation proof ∩ revocation
|
|
18
|
+
# ∩ audit. Resolution is a FOURTH orthogonal concern beside custody, admission and authority.
|
|
19
|
+
#
|
|
20
|
+
# FOUR INDEPENDENT DIMENSIONS (apar:AgentDiscoveryPolicy): naming, listing, resolution, inbound.
|
|
21
|
+
# "Nameless" describes only the absence of a public label — it never implies "unresolvable".
|
|
22
|
+
|
|
23
|
+
@prefix apar: <https://agenticprimitives.dev/ns/agent-resolution#> .
|
|
24
|
+
@prefix ap: <https://agenticprimitives.dev/ns/core#> .
|
|
25
|
+
@prefix apdisc: <https://agenticprimitives.dev/ns/discovery#> .
|
|
26
|
+
@prefix apsec: <https://agenticprimitives.dev/ns/security-exposure#> .
|
|
27
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
28
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
29
|
+
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
30
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
31
|
+
@prefix prov: <http://www.w3.org/ns/prov#> .
|
|
32
|
+
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
|
|
33
|
+
|
|
34
|
+
apar: a owl:Ontology ;
|
|
35
|
+
rdfs:label "Agentic Primitives — agent resolution ontology" ;
|
|
36
|
+
owl:versionInfo "0.1.0" ;
|
|
37
|
+
rdfs:comment "Spec 338 / ADR-0056. Private and public agent resolution: discovery policy, signed sequenced service publication, private resolution grants, connection invitations, rendezvous services, and privacy-minimized resolution receipts. Distinct from apres: (intent resolution)." .
|
|
38
|
+
|
|
39
|
+
# ─── Discovery policy — four independent dimensions ───────────────────────
|
|
40
|
+
|
|
41
|
+
apar:AgentDiscoveryPolicy a owl:Class ;
|
|
42
|
+
rdfs:label "Agent Discovery Policy" ;
|
|
43
|
+
rdfs:comment "The four INDEPENDENT postures of an agent: naming (public/private-label/none), listing (public/consented-projection/none), resolution (public/authenticated/invitation/pairwise/direct/none), inbound (open/known-peer/delegation-required/outbound-only). Never a single enum — collapsing them is the modelling error spec 338 corrects." .
|
|
44
|
+
|
|
45
|
+
apar:namingPosture a owl:DatatypeProperty ;
|
|
46
|
+
rdfs:domain apar:AgentDiscoveryPolicy ;
|
|
47
|
+
rdfs:range xsd:string ;
|
|
48
|
+
rdfs:label "naming posture" ;
|
|
49
|
+
rdfs:comment "public | private-label | none. Says nothing about resolvability." .
|
|
50
|
+
|
|
51
|
+
apar:listingPosture a owl:DatatypeProperty ;
|
|
52
|
+
rdfs:domain apar:AgentDiscoveryPolicy ;
|
|
53
|
+
rdfs:range xsd:string ;
|
|
54
|
+
rdfs:label "listing posture" ;
|
|
55
|
+
rdfs:comment "public | consented-projection | none. A private agent enters search ONLY via an explicit, revocable consent record." .
|
|
56
|
+
|
|
57
|
+
apar:resolutionPosture a owl:DatatypeProperty ;
|
|
58
|
+
rdfs:domain apar:AgentDiscoveryPolicy ;
|
|
59
|
+
rdfs:range xsd:string ;
|
|
60
|
+
rdfs:label "resolution posture" ;
|
|
61
|
+
rdfs:comment "public | authenticated | invitation | pairwise | direct | none." .
|
|
62
|
+
|
|
63
|
+
apar:inboundPosture a owl:DatatypeProperty ;
|
|
64
|
+
rdfs:domain apar:AgentDiscoveryPolicy ;
|
|
65
|
+
rdfs:range xsd:string ;
|
|
66
|
+
rdfs:label "inbound posture" ;
|
|
67
|
+
rdfs:comment "open | known-peer | delegation-required | outbound-only. Resolving is not connecting." .
|
|
68
|
+
|
|
69
|
+
apar:hasDiscoveryPolicy a owl:ObjectProperty ;
|
|
70
|
+
rdfs:domain ap:SmartAgent ;
|
|
71
|
+
rdfs:range apar:AgentDiscoveryPolicy ;
|
|
72
|
+
rdfs:label "has discovery policy" .
|
|
73
|
+
|
|
74
|
+
# ─── Resolution references + methods ──────────────────────────────────────
|
|
75
|
+
|
|
76
|
+
apar:AgentResolutionMethod a owl:Class ;
|
|
77
|
+
rdfs:subClassOf skos:Concept ;
|
|
78
|
+
rdfs:label "Agent Resolution Method" ;
|
|
79
|
+
rdfs:comment "ans | private-grant | direct-invitation | canonical-id | dntls | did | local-directory | …. Open-ended (ADR-0038): a new method is a Ring-1 adapter, never a change to verification rules." .
|
|
80
|
+
|
|
81
|
+
apar:AgentResolutionReference a owl:Class ;
|
|
82
|
+
rdfs:label "Agent Resolution Reference" ;
|
|
83
|
+
rdfs:comment "A portable 'how do I look this agent up' value, tagged with its method. Holding one is not authority to resolve, let alone to invoke." .
|
|
84
|
+
|
|
85
|
+
apar:hasResolutionMethod a owl:ObjectProperty ;
|
|
86
|
+
rdfs:domain apar:AgentResolutionReference ;
|
|
87
|
+
rdfs:range apar:AgentResolutionMethod ;
|
|
88
|
+
rdfs:label "has resolution method" .
|
|
89
|
+
|
|
90
|
+
# ─── Service publication — signed, sequenced, expiring ────────────────────
|
|
91
|
+
|
|
92
|
+
apar:AgentServicePublication a owl:Class ;
|
|
93
|
+
rdfs:subClassOf prov:Entity ;
|
|
94
|
+
rdfs:label "Agent Service Publication" ;
|
|
95
|
+
rdfs:comment "The CURRENT signed operational projection of an agent's surfaces: endpoints, transport keys, protocol versions, audience, status and freshness. Distinct from the durable agent profile and from a design-time surface descriptor. A content hash proves it was not modified; sequence + expiry + status prove it is current." .
|
|
96
|
+
|
|
97
|
+
apar:ServiceSurface a owl:Class ;
|
|
98
|
+
rdfs:label "Service Surface" ;
|
|
99
|
+
rdfs:comment "One callable or readable endpoint within a publication: protocol, version, URI, exposure, audience, security requirements, optional transport key and endpoint-control proof." .
|
|
100
|
+
|
|
101
|
+
apar:PublicationAuthority a owl:Class ;
|
|
102
|
+
rdfs:label "Publication Authority" ;
|
|
103
|
+
rdfs:comment "The record permitting an agent to sign publications on behalf of a target agent. A valid signature by an unauthorized publisher is still a forgery." .
|
|
104
|
+
|
|
105
|
+
apar:describesAgent a owl:ObjectProperty ;
|
|
106
|
+
rdfs:domain apar:AgentServicePublication ;
|
|
107
|
+
rdfs:range ap:SmartAgent ;
|
|
108
|
+
rdfs:label "describes agent" ;
|
|
109
|
+
rdfs:comment "Exactly one canonical Smart Agent per publication (ADR-0010)." .
|
|
110
|
+
|
|
111
|
+
apar:hasServiceSurface a owl:ObjectProperty ;
|
|
112
|
+
rdfs:domain apar:AgentServicePublication ;
|
|
113
|
+
rdfs:range apar:ServiceSurface ;
|
|
114
|
+
rdfs:label "has service surface" .
|
|
115
|
+
|
|
116
|
+
apar:publishedBy a owl:ObjectProperty ;
|
|
117
|
+
rdfs:domain apar:AgentServicePublication ;
|
|
118
|
+
rdfs:range ap:SmartAgent ;
|
|
119
|
+
rdfs:label "published by" .
|
|
120
|
+
|
|
121
|
+
apar:authorizedBy a owl:ObjectProperty ;
|
|
122
|
+
rdfs:domain apar:AgentServicePublication ;
|
|
123
|
+
rdfs:range apar:PublicationAuthority ;
|
|
124
|
+
rdfs:label "authorized by" .
|
|
125
|
+
|
|
126
|
+
apar:publicationSequence a owl:DatatypeProperty ;
|
|
127
|
+
rdfs:domain apar:AgentServicePublication ;
|
|
128
|
+
rdfs:range xsd:nonNegativeInteger ;
|
|
129
|
+
rdfs:label "publication sequence" ;
|
|
130
|
+
rdfs:comment "Monotonic WITHIN a channel. The anti-rollback axis: a lower sequence is rejected, an equal sequence with a different digest is publisher equivocation." .
|
|
131
|
+
|
|
132
|
+
apar:previousPublication a owl:ObjectProperty ;
|
|
133
|
+
rdfs:domain apar:AgentServicePublication ;
|
|
134
|
+
rdfs:range apar:AgentServicePublication ;
|
|
135
|
+
rdfs:label "previous publication" .
|
|
136
|
+
|
|
137
|
+
apar:supersedesPublication a owl:ObjectProperty ;
|
|
138
|
+
owl:inverseOf apar:previousPublication ;
|
|
139
|
+
rdfs:label "supersedes publication" .
|
|
140
|
+
|
|
141
|
+
apar:publicationDigest a owl:DatatypeProperty ;
|
|
142
|
+
rdfs:domain apar:AgentServicePublication ;
|
|
143
|
+
rdfs:range xsd:string ;
|
|
144
|
+
rdfs:label "publication digest" .
|
|
145
|
+
|
|
146
|
+
apar:publicationStatus a owl:DatatypeProperty ;
|
|
147
|
+
rdfs:domain apar:AgentServicePublication ;
|
|
148
|
+
rdfs:range xsd:string ;
|
|
149
|
+
rdfs:label "publication status" ;
|
|
150
|
+
rdfs:comment "active | superseded | suspended | revoked | compromised. Only active may be used to reach an agent." .
|
|
151
|
+
|
|
152
|
+
apar:surfaceExposure a owl:DatatypeProperty ;
|
|
153
|
+
rdfs:domain apar:ServiceSurface ;
|
|
154
|
+
rdfs:range xsd:string ;
|
|
155
|
+
rdfs:label "surface exposure" ;
|
|
156
|
+
rdfs:comment "public | authenticated | private | service-only. A private surface with no audience is visible to NOBODY (fail-closed)." .
|
|
157
|
+
|
|
158
|
+
apar:disclosedTo a owl:ObjectProperty ;
|
|
159
|
+
rdfs:domain apar:ServiceSurface ;
|
|
160
|
+
rdfs:range ap:SmartAgent ;
|
|
161
|
+
rdfs:label "disclosed to" ;
|
|
162
|
+
rdfs:comment "The audience of a private surface. Never projected into any public graph." .
|
|
163
|
+
|
|
164
|
+
# ─── Endpoint + transport-key evidence ────────────────────────────────────
|
|
165
|
+
|
|
166
|
+
apar:EndpointControlProof a owl:Class ;
|
|
167
|
+
rdfs:subClassOf prov:Entity ;
|
|
168
|
+
rdfs:label "Endpoint Control Proof" ;
|
|
169
|
+
rdfs:comment "Evidence that the publisher CONTROLS the endpoint it published — the difference between claiming a URI and controlling it." .
|
|
170
|
+
|
|
171
|
+
apar:TransportKeyBinding a owl:Class ;
|
|
172
|
+
rdfs:label "Transport Key Binding" ;
|
|
173
|
+
rdfs:comment "A transport key bound to a surface, with a purpose and a validity interval. Rotating it republishes at sequence+1; it never changes the canonical agent." .
|
|
174
|
+
|
|
175
|
+
apar:hasEndpointControlProof a owl:ObjectProperty ;
|
|
176
|
+
rdfs:domain apar:ServiceSurface ;
|
|
177
|
+
rdfs:range apar:EndpointControlProof ;
|
|
178
|
+
rdfs:label "has endpoint control proof" .
|
|
179
|
+
|
|
180
|
+
apar:hasTransportKeyBinding a owl:ObjectProperty ;
|
|
181
|
+
rdfs:domain apar:ServiceSurface ;
|
|
182
|
+
rdfs:range apar:TransportKeyBinding ;
|
|
183
|
+
rdfs:label "has transport key binding" .
|
|
184
|
+
|
|
185
|
+
# ─── Private resolution grants + invitations ──────────────────────────────
|
|
186
|
+
|
|
187
|
+
apar:PrivateResolutionGrant a owl:Class ;
|
|
188
|
+
rdfs:label "Private Resolution Grant" ;
|
|
189
|
+
rdfs:comment "A capability to DISCOVER, never to USE. High-entropy opaque id — never a salted hash of a human-readable name. Modes: subject-bound (default; a copied grant is inert), pairwise (per-relationship id/projection/label), bearer-bootstrap (short-lived, exchanged for a subject-bound grant)." .
|
|
190
|
+
|
|
191
|
+
apar:PairwiseAgentAlias a owl:Class ;
|
|
192
|
+
rdfs:label "Pairwise Agent Alias" ;
|
|
193
|
+
rdfs:comment "A per-counterparty private label for the same canonical agent. MUST NOT have a public projection — a public row is a common identifier that defeats unlinkability." .
|
|
194
|
+
|
|
195
|
+
apar:AgentConnectionInvitation a owl:Class ;
|
|
196
|
+
rdfs:label "Agent Connection Invitation" ;
|
|
197
|
+
rdfs:comment "Bootstrap: carries an initial signed publication (connect now, resolver-independent) AND a grant plus rendezvous locator (refresh forever). This is why an endpoint change never requires a new invitation." .
|
|
198
|
+
|
|
199
|
+
apar:RendezvousService a owl:Class ;
|
|
200
|
+
rdfs:subClassOf ap:ServiceAgent ;
|
|
201
|
+
rdfs:label "Rendezvous Service" ;
|
|
202
|
+
rdfs:comment "A shared resolution endpoint for an organization. Reveals only that the org operates one — not which agents exist, their names, endpoints, capabilities or partners. Replaceable; cannot forge a target publication; cannot grant action authority." .
|
|
203
|
+
|
|
204
|
+
apar:permitsDiscoveryOf a owl:ObjectProperty ;
|
|
205
|
+
rdfs:domain apar:PrivateResolutionGrant ;
|
|
206
|
+
rdfs:range ap:SmartAgent ;
|
|
207
|
+
rdfs:label "permits discovery of" ;
|
|
208
|
+
rdfs:comment "The target agent, signed into the grant so it cannot be retargeted. This is DISCOVERY permission only." .
|
|
209
|
+
|
|
210
|
+
apar:permitsProjection a owl:DatatypeProperty ;
|
|
211
|
+
rdfs:domain apar:PrivateResolutionGrant ;
|
|
212
|
+
rdfs:range xsd:string ;
|
|
213
|
+
rdfs:label "permits projection" ;
|
|
214
|
+
rdfs:comment "The named projection profile. A grant NARROWS a projection; it can never widen past the profile's exposure ceiling." .
|
|
215
|
+
|
|
216
|
+
apar:grantMode a owl:DatatypeProperty ;
|
|
217
|
+
rdfs:domain apar:PrivateResolutionGrant ;
|
|
218
|
+
rdfs:range xsd:string ;
|
|
219
|
+
rdfs:label "grant mode" ;
|
|
220
|
+
rdfs:comment "subject-bound | pairwise | bearer-bootstrap." .
|
|
221
|
+
|
|
222
|
+
apar:aliasOfAgent a owl:ObjectProperty ;
|
|
223
|
+
rdfs:domain apar:PairwiseAgentAlias ;
|
|
224
|
+
rdfs:range ap:SmartAgent ;
|
|
225
|
+
rdfs:label "alias of agent" .
|
|
226
|
+
|
|
227
|
+
apar:carriesGrant a owl:ObjectProperty ;
|
|
228
|
+
rdfs:domain apar:AgentConnectionInvitation ;
|
|
229
|
+
rdfs:range apar:PrivateResolutionGrant ;
|
|
230
|
+
rdfs:label "carries grant" .
|
|
231
|
+
|
|
232
|
+
apar:carriesInitialPublication a owl:ObjectProperty ;
|
|
233
|
+
rdfs:domain apar:AgentConnectionInvitation ;
|
|
234
|
+
rdfs:range apar:AgentServicePublication ;
|
|
235
|
+
rdfs:label "carries initial publication" .
|
|
236
|
+
|
|
237
|
+
# ─── Resolution requests, decisions, receipts ─────────────────────────────
|
|
238
|
+
|
|
239
|
+
apar:ResolutionRequest a owl:Class ;
|
|
240
|
+
rdfs:subClassOf prov:Activity ;
|
|
241
|
+
rdfs:label "Resolution Request" ;
|
|
242
|
+
rdfs:comment "A presented reference plus a challenge response. Distinct from apdisc:CandidateQuery, which searches; this one LOCATES an already-identified agent." .
|
|
243
|
+
|
|
244
|
+
apar:ResolutionDecision a owl:Class ;
|
|
245
|
+
rdfs:label "Resolution Decision" ;
|
|
246
|
+
rdfs:comment "allowed | denied. Every DENIAL is uniform on the wire — distinguishing unknown/expired/unauthorized is a grant-existence oracle." .
|
|
247
|
+
|
|
248
|
+
apar:AgentResolutionReceipt a owl:Class ;
|
|
249
|
+
rdfs:subClassOf prov:Entity ;
|
|
250
|
+
rdfs:label "Agent Resolution Receipt" ;
|
|
251
|
+
rdfs:comment "Privacy-minimized evidence of one resolution: grant-id DIGEST, publication id/digest/sequence, projection profile, disclosed field CLASSES, decision. NEVER the raw grant, a bearer secret, or a private label in global logs — audit metadata about resolution is itself relationship data. Distinct from apres:ResolutionReceipt (intent resolution)." .
|
|
252
|
+
|
|
253
|
+
apar:usedResolutionGrant a owl:ObjectProperty ;
|
|
254
|
+
rdfs:domain apar:ResolutionRequest ;
|
|
255
|
+
rdfs:range apar:PrivateResolutionGrant ;
|
|
256
|
+
rdfs:label "used resolution grant" .
|
|
257
|
+
|
|
258
|
+
apar:resolvedBy a owl:ObjectProperty ;
|
|
259
|
+
rdfs:domain apar:ResolutionRequest ;
|
|
260
|
+
rdfs:range apar:RendezvousService ;
|
|
261
|
+
rdfs:label "resolved by" .
|
|
262
|
+
|
|
263
|
+
apar:hasResolutionDecision a owl:ObjectProperty ;
|
|
264
|
+
rdfs:domain apar:ResolutionRequest ;
|
|
265
|
+
rdfs:range apar:ResolutionDecision ;
|
|
266
|
+
rdfs:label "has resolution decision" .
|
|
267
|
+
|
|
268
|
+
apar:resolutionAssurance a owl:DatatypeProperty ;
|
|
269
|
+
rdfs:domain apar:AgentResolutionReceipt ;
|
|
270
|
+
rdfs:range xsd:string ;
|
|
271
|
+
rdfs:label "resolution assurance" ;
|
|
272
|
+
rdfs:comment "unverified | asserted | signed-publication | endpoint-control-verified | peer-authenticated. A consumer states a MINIMUM; a weaker level is never silently accepted (ADR-0013)." .
|
|
273
|
+
|
|
274
|
+
apar:grantIdDigest a owl:DatatypeProperty ;
|
|
275
|
+
rdfs:domain apar:AgentResolutionReceipt ;
|
|
276
|
+
rdfs:range xsd:string ;
|
|
277
|
+
rdfs:label "grant id digest" ;
|
|
278
|
+
rdfs:comment "A keyed digest. The raw grant id MUST NOT appear in any receipt, log, URL, trace, or graph projection." .
|
|
279
|
+
|
|
280
|
+
# ─── Boundary axioms (normative commentary; SHACL enforces) ───────────────
|
|
281
|
+
#
|
|
282
|
+
# 1. Exactly one apar:describesAgent per publication.
|
|
283
|
+
# 2. An active publication has a sequence, an expiry, a digest and a proof.
|
|
284
|
+
# 3. Every grant has a target and an expiry; subject-bound/pairwise grants identify a subject.
|
|
285
|
+
# 4. bearer-bootstrap grants carry a bounded maximum lifetime.
|
|
286
|
+
# 5. A PairwiseAgentAlias MUST NOT have a public projection.
|
|
287
|
+
# 6. A surface with exposure private/service-only MUST NOT appear in a public publication.
|
|
288
|
+
# 7. Every ServiceSurface has a protocol, a version, an exposure and a security requirement.
|
|
289
|
+
# 8. Every TransportKeyBinding has a purpose and a validity interval.
|
|
290
|
+
# 9. publicationSequence is non-negative; a superseding publication references its prior digest
|
|
291
|
+
# where continuity is required.
|
|
292
|
+
# 10. NEVER project into a public graph (extends apsec: exposure rules + ADR-0040): grant ids,
|
|
293
|
+
# private labels, partner identities, private endpoints, pairwise relationships, private
|
|
294
|
+
# capabilities, resolution logs, private transport keys.
|
|
295
|
+
# 11. apar:PrivateResolutionGrant is NEVER an input to an authorization decision. Discovery
|
|
296
|
+
# permission and action authority are disjoint (ADR-0056).
|