@agenticprimitives/ontology 1.0.0-alpha.22 → 1.0.0-alpha.23
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/README.md +11 -0
- package/cbox/card-projection-shapes.shacl.ttl +216 -0
- package/cbox/controlled-vocabularies.ttl +172 -4
- package/cbox/naming-registry-shapes.shacl.ttl +272 -0
- package/cbox/org-team-shapes.shacl.ttl +184 -0
- package/cbox/registry-vocabulary.ttl +86 -0
- package/cbox/run-provenance-shapes.shacl.ttl +172 -0
- package/context.jsonld +7 -1
- package/dist/arg-types.d.ts +60 -0
- package/dist/arg-types.d.ts.map +1 -0
- package/dist/arg-types.js +143 -0
- package/dist/arg-types.js.map +1 -0
- package/dist/artifacts.d.ts +4 -2
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +22 -0
- package/dist/artifacts.js.map +1 -1
- package/dist/contact-fields.d.ts +28 -0
- package/dist/contact-fields.d.ts.map +1 -0
- package/dist/contact-fields.js +38 -0
- package/dist/contact-fields.js.map +1 -0
- package/dist/decisions.d.ts +69 -0
- package/dist/decisions.d.ts.map +1 -0
- package/dist/decisions.js +98 -0
- package/dist/decisions.js.map +1 -0
- package/dist/household.d.ts +19 -0
- package/dist/household.d.ts.map +1 -0
- package/dist/household.js +41 -0
- package/dist/household.js.map +1 -0
- package/dist/index.d.ts +230 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +275 -1
- package/dist/index.js.map +1 -1
- package/dist/party-roles.d.ts +106 -0
- package/dist/party-roles.d.ts.map +1 -0
- package/dist/party-roles.js +305 -0
- package/dist/party-roles.js.map +1 -0
- package/dist/plan-shapes.d.ts +18 -0
- package/dist/plan-shapes.d.ts.map +1 -0
- package/dist/plan-shapes.js +38 -0
- package/dist/plan-shapes.js.map +1 -0
- package/dist/relations.d.ts +44 -0
- package/dist/relations.d.ts.map +1 -0
- package/dist/relations.js +104 -0
- package/dist/relations.js.map +1 -0
- package/dist/run-provenance-context.d.ts +211 -0
- package/dist/run-provenance-context.d.ts.map +1 -0
- package/dist/run-provenance-context.js +219 -0
- package/dist/run-provenance-context.js.map +1 -0
- package/dist/vault-records.d.ts +74 -0
- package/dist/vault-records.d.ts.map +1 -0
- package/dist/vault-records.js +330 -0
- package/dist/vault-records.js.map +1 -0
- package/mappings/agent-discovery-standards.ttl +24 -3
- package/mappings/collaboration-crosswalk-organization.ttl +22 -0
- package/mappings/collaboration-crosswalk-skills.ttl +5 -0
- package/package.json +4 -2
- package/run-provenance.jsonld +106 -0
- package/tbox/actor-context.ttl +11 -0
- package/tbox/agent-resolution.ttl +6 -6
- package/tbox/card-projection.ttl +350 -0
- package/tbox/contact.ttl +61 -0
- package/tbox/context.ttl +114 -0
- package/tbox/coordination.ttl +17 -0
- package/tbox/core.ttl +232 -12
- package/tbox/execution.ttl +168 -0
- package/tbox/household.ttl +142 -0
- package/tbox/interaction.ttl +13 -0
- package/tbox/naming.ttl +114 -0
- package/tbox/org.ttl +188 -4
- package/tbox/profile.ttl +7 -0
- package/tbox/prov-imports.ttl +65 -0
- package/tbox/registry.ttl +159 -4
- package/tbox/skills.ttl +62 -0
- package/tbox/values.ttl +81 -0
|
@@ -67,7 +67,7 @@ apar:inboundPosture a owl:DatatypeProperty ;
|
|
|
67
67
|
rdfs:comment "open | known-peer | delegation-required | outbound-only. Resolving is not connecting." .
|
|
68
68
|
|
|
69
69
|
apar:hasDiscoveryPolicy a owl:ObjectProperty ;
|
|
70
|
-
rdfs:domain ap:
|
|
70
|
+
rdfs:domain ap:Agent ;
|
|
71
71
|
rdfs:range apar:AgentDiscoveryPolicy ;
|
|
72
72
|
rdfs:label "has discovery policy" .
|
|
73
73
|
|
|
@@ -104,7 +104,7 @@ apar:PublicationAuthority a owl:Class ;
|
|
|
104
104
|
|
|
105
105
|
apar:describesAgent a owl:ObjectProperty ;
|
|
106
106
|
rdfs:domain apar:AgentServicePublication ;
|
|
107
|
-
rdfs:range ap:
|
|
107
|
+
rdfs:range ap:Agent ;
|
|
108
108
|
rdfs:label "describes agent" ;
|
|
109
109
|
rdfs:comment "Exactly one canonical Smart Agent per publication (ADR-0010)." .
|
|
110
110
|
|
|
@@ -115,7 +115,7 @@ apar:hasServiceSurface a owl:ObjectProperty ;
|
|
|
115
115
|
|
|
116
116
|
apar:publishedBy a owl:ObjectProperty ;
|
|
117
117
|
rdfs:domain apar:AgentServicePublication ;
|
|
118
|
-
rdfs:range ap:
|
|
118
|
+
rdfs:range ap:Agent ;
|
|
119
119
|
rdfs:label "published by" .
|
|
120
120
|
|
|
121
121
|
apar:authorizedBy a owl:ObjectProperty ;
|
|
@@ -157,7 +157,7 @@ apar:surfaceExposure a owl:DatatypeProperty ;
|
|
|
157
157
|
|
|
158
158
|
apar:disclosedTo a owl:ObjectProperty ;
|
|
159
159
|
rdfs:domain apar:ServiceSurface ;
|
|
160
|
-
rdfs:range ap:
|
|
160
|
+
rdfs:range ap:Agent ;
|
|
161
161
|
rdfs:label "disclosed to" ;
|
|
162
162
|
rdfs:comment "The audience of a private surface. Never projected into any public graph." .
|
|
163
163
|
|
|
@@ -203,7 +203,7 @@ apar:RendezvousService a owl:Class ;
|
|
|
203
203
|
|
|
204
204
|
apar:permitsDiscoveryOf a owl:ObjectProperty ;
|
|
205
205
|
rdfs:domain apar:PrivateResolutionGrant ;
|
|
206
|
-
rdfs:range ap:
|
|
206
|
+
rdfs:range ap:Agent ;
|
|
207
207
|
rdfs:label "permits discovery of" ;
|
|
208
208
|
rdfs:comment "The target agent, signed into the grant so it cannot be retargeted. This is DISCOVERY permission only." .
|
|
209
209
|
|
|
@@ -221,7 +221,7 @@ apar:grantMode a owl:DatatypeProperty ;
|
|
|
221
221
|
|
|
222
222
|
apar:aliasOfAgent a owl:ObjectProperty ;
|
|
223
223
|
rdfs:domain apar:PairwiseAgentAlias ;
|
|
224
|
-
rdfs:range ap:
|
|
224
|
+
rdfs:range ap:Agent ;
|
|
225
225
|
rdfs:label "alias of agent" .
|
|
226
226
|
|
|
227
227
|
apar:carriesGrant a owl:ObjectProperty ;
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
# T-box — canonical agent profile, A2A Agent Card, projection, publication, external identity
|
|
2
|
+
# binding (spec 347 §11; ADR-0062). Lives in the CORE namespace (ap:) as a second module of it;
|
|
3
|
+
# core.ttl declares the ontology node, this file only adds terms.
|
|
4
|
+
#
|
|
5
|
+
# FIVE CONCEPTS, FIVE QUESTIONS — none collapses into another (ADR-0062 §1):
|
|
6
|
+
# ap:Agent who — the ERC-4337 Smart Agent, where authority roots (ADR-0010).
|
|
7
|
+
# "Canonical Agent" IN PROSE ≡ ap:Agent. NO ap:CanonicalAgent class
|
|
8
|
+
# is minted: two names for one class is the drift the ADR ends. (The
|
|
9
|
+
# repo's OWL profile uses no owl:equivalentClass; a comment documents
|
|
10
|
+
# the identity instead.)
|
|
11
|
+
# ap:CanonicalAgentProfile the registry-neutral facts and claims (was agent-profile.AgentCard).
|
|
12
|
+
# ap:A2AAgentCard what this A2A server does and how to interact — an A2A 1.0 resource,
|
|
13
|
+
# released immutably (ap:A2AAgentCardRelease), JWS-signed, bound to the
|
|
14
|
+
# SA by EIP-712 + ERC-1271. NOT the identity, NOT a registry entry.
|
|
15
|
+
# ap:ProjectionDefinition / how selected canonical facts are represented for ONE target; the
|
|
16
|
+
# ap:ProjectionInstance / deterministic payload is the ap:ProjectionArtifact, which ALWAYS
|
|
17
|
+
# ap:ProjectionArtifact carries a loss report (ap:hasLoss).
|
|
18
|
+
# ap:Publication where and when a card/artifact was actually deployed (the receipt).
|
|
19
|
+
# ap:ExternalIdentityBinding which external record/identifier represents this agent, bound back
|
|
20
|
+
# with a verification state. Evidence, never authority.
|
|
21
|
+
#
|
|
22
|
+
# "FACET" keeps its ADR-0020 meaning — a contextual VIEW — and is NOT used for any of these. The
|
|
23
|
+
# slogan "one agent, many registry facets" is retired for "one canonical agent, many projections,
|
|
24
|
+
# publications and external identity bindings".
|
|
25
|
+
#
|
|
26
|
+
# PROV-O GROUNDING. Generating a projection and publishing it are prov:Activity
|
|
27
|
+
# (ap:ProjectionGeneration, ap:PublicationActivity). The artifact, the profile release and the card
|
|
28
|
+
# release are prov:Entity. The publisher and the adapter are prov:SoftwareAgent; the operator is the
|
|
29
|
+
# ap:Agent that owns the card. Read a record like this:
|
|
30
|
+
# ex:artifact a ap:ProjectionArtifact ; prov:wasGeneratedBy ex:gen ; ap:derivedFromSnapshot ex:bundle .
|
|
31
|
+
# ex:gen a ap:ProjectionGeneration ; prov:used ex:bundle, ex:def, ex:cardRelease ;
|
|
32
|
+
# prov:wasAssociatedWith ex:adapter .
|
|
33
|
+
# ex:pub a ap:Publication ; prov:wasGeneratedBy ex:pubAct ; ap:establishesBinding ex:binding .
|
|
34
|
+
# ex:pubAct a ap:PublicationActivity ; prov:used ex:artifact ; prov:wasAssociatedWith ex:publisher .
|
|
35
|
+
#
|
|
36
|
+
# RELATION TO apreg:SignedAgentCard (tbox/registry.ttl): that class is the Smart-Agent-signed bundle of
|
|
37
|
+
# the CANONICAL PROFILE (spec 347 §0.3 renames the TS type SignedAgentCardBundleV1 →
|
|
38
|
+
# SignedCanonicalProfileBundleV1). It is not the A2A card; the two are related through
|
|
39
|
+
# ap:CanonicalAgentProfile rdfs:seeAlso below.
|
|
40
|
+
|
|
41
|
+
@prefix ap: <https://agenticprimitives.dev/ns/core#> .
|
|
42
|
+
@prefix apreg: <https://agenticprimitives.dev/ns/registry#> .
|
|
43
|
+
@prefix aps: <https://agenticprimitives.dev/ns/skill#> .
|
|
44
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
45
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
46
|
+
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
47
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
48
|
+
@prefix prov: <http://www.w3.org/ns/prov#> .
|
|
49
|
+
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
|
|
50
|
+
|
|
51
|
+
# ─── Classes ──────────────────────────────────────────────────────────────
|
|
52
|
+
|
|
53
|
+
ap:CanonicalAgentProfile a owl:Class ;
|
|
54
|
+
rdfs:subClassOf prov:Entity ;
|
|
55
|
+
rdfs:label "CanonicalAgentProfile" ;
|
|
56
|
+
rdfs:seeAlso apreg:SignedAgentCard ;
|
|
57
|
+
rdfs:comment "The registry-neutral facts and claims about ONE ap:Agent (the 'canonical agent' — that phrase always means ap:Agent; no separate class exists): names, provider/operator relationships, deployments, public capability claims, taxonomy mappings, trust claims, disclosure policy. TS: CanonicalAgentProfileV1 (formerly agent-profile.AgentCard). Its immutable, content-addressed snapshot is an ap:CanonicalAgentProfileRelease (atl:metadataHash). Not a card, not a registry entry (spec 347 §2)." .
|
|
58
|
+
|
|
59
|
+
ap:CanonicalAgentProfileRelease a owl:Class ;
|
|
60
|
+
rdfs:subClassOf prov:Entity ;
|
|
61
|
+
rdfs:label "CanonicalAgentProfileRelease" ;
|
|
62
|
+
rdfs:comment "An immutable, content-addressed release of an ap:CanonicalAgentProfile (profileContentHash; on-chain atl:metadataHash). What a card base and a projection input bundle pin, never the mutable profile." .
|
|
63
|
+
|
|
64
|
+
ap:A2AAgentCard a owl:Class ;
|
|
65
|
+
rdfs:label "A2AAgentCard" ;
|
|
66
|
+
rdfs:comment "The managed A2A 1.0 Agent Card resource of one ap:Agent: identity/presentation, supportedInterfaces (ordered; first = preferred), capabilities, skills, media types, security schemes, signatures. TS: A2AAgentCardResourceV1 (the managed object) whose draft carries FieldBindingV1 provenance. A first-class OPERATIONAL description — never the identity (ADR-0010) and never a registry entry (ADR-0062 §2). One production deployment designates ONE primary public card; staging/development cards are never projected into public registries unless explicitly enabled (spec 347 §3)." .
|
|
67
|
+
|
|
68
|
+
ap:A2AAgentCardRelease a owl:Class ;
|
|
69
|
+
rdfs:subClassOf prov:Entity ;
|
|
70
|
+
rdfs:label "A2AAgentCardRelease" ;
|
|
71
|
+
rdfs:comment "An immutable release of an ap:A2AAgentCard, identified by release id AND content digest (ap:cardDigest over RFC 8785 canonical bytes), signed with a standard A2A JWS (ES256 default) and separately bound to the Smart Agent by EIP-712 SmartAgentCardBindingV1 verified through ERC-1271. Lifecycle: ap:cardReleaseStateScheme. A REVOKED release is not projection-ready; every registry projection consumes a released card, never a draft. TS: A2AAgentCardReleaseV1." .
|
|
72
|
+
|
|
73
|
+
ap:ProjectionDefinition a owl:Class ;
|
|
74
|
+
rdfs:subClassOf prov:Entity ;
|
|
75
|
+
rdfs:label "ProjectionDefinition" ;
|
|
76
|
+
rdfs:comment "The versioned transformation for ONE target family: target specification (pinned by the ap:StandardsLock), adapter + adapter version, input/output schemas, capabilities. A projector is PURE — deterministic, credential- and network-free, and always emits a loss report (ADR-0062 §5). TS: ProjectionDefinitionV1 (registry-kit/projection)." .
|
|
77
|
+
|
|
78
|
+
ap:ProjectionInstance a owl:Class ;
|
|
79
|
+
rdfs:label "ProjectionInstance" ;
|
|
80
|
+
rdfs:comment "One CONFIGURED projection per agent × target: which ap:ProjectionDefinition, which released card, which configuration. Lifecycle: ap:projectionInstanceStateScheme (unconfigured → … → published → drifted | stale | failed | retired). A remote change produces an IMPORT PROPOSAL, never a canonical write (spec 347 §6.4)." .
|
|
81
|
+
|
|
82
|
+
ap:ProjectionArtifact a owl:Class ;
|
|
83
|
+
rdfs:subClassOf prov:Entity ;
|
|
84
|
+
rdfs:label "ProjectionArtifact" ;
|
|
85
|
+
rdfs:comment "The deterministic payload a projector emitted for one ap:ProjectionInstance, plus its digests, diagnostics and LOSS REPORT (ap:hasLoss). Carries all EIGHT digests (source bundle, definition, target specification, adapter, configuration, artifact, canonical profile, selected card) — ap:ProjectionProvenanceShape refuses one that omits any. prov:wasGeneratedBy an ap:ProjectionGeneration. Marked public (ap:disclosureScope 'public') it must carry no private endpoint and no vault reference (ap:PublicDisclosureBoundaryShape). TS: ProjectionResultV1.artifact (+ digests)." .
|
|
86
|
+
|
|
87
|
+
ap:ProjectionLoss a owl:Class ;
|
|
88
|
+
rdfs:label "ProjectionLoss" ;
|
|
89
|
+
rdfs:comment "One thing the target could not represent faithfully: category from ap:lossCategoryScheme (unsupported | truncated | approximateMapping | omittedByPolicy | targetDefault | manualActionRequired), severity, source/target pointers, explanation. A projection with no losses says so with an EMPTY report, never by omitting the report. TS: ProjectionLossV1." .
|
|
90
|
+
|
|
91
|
+
ap:Publication a owl:Class ;
|
|
92
|
+
rdfs:subClassOf prov:Entity ;
|
|
93
|
+
rdfs:label "Publication" ;
|
|
94
|
+
rdfs:comment "The RECORD of an effectful deployment of a card release or projection artifact: where (uri / transactions / external ids), when, verified how. prov:wasGeneratedBy an ap:PublicationActivity that was approval-gated (ApprovalRefV1 names the exact digest approved), idempotent and audited. TS: PublicationReceiptV1. Publishing is the ONLY effectful step; it never rewrites the canonical record." .
|
|
95
|
+
|
|
96
|
+
ap:StandardsLock a owl:Class ;
|
|
97
|
+
rdfs:subClassOf prov:Entity ;
|
|
98
|
+
rdfs:label "StandardsLock" ;
|
|
99
|
+
rdfs:comment "The machine-readable pin of every target specification version + digest (docs/standards-lock.json; TS StandardsLockV1). A lock change marks dependent projections review-required — it never rewrites them silently (ADR-0062 §6)." .
|
|
100
|
+
|
|
101
|
+
ap:ExternalIdentityBinding a owl:Class ;
|
|
102
|
+
rdfs:subClassOf prov:Entity ;
|
|
103
|
+
rdfs:label "ExternalIdentityBinding" ;
|
|
104
|
+
rdfs:comment "An external record/identifier (an ERC-8004 entry, an HCS topic, an ANS name, an OASF record…) that REPRESENTS one ap:Agent, bound back to the canonical id with a verification state (ap:bindingVerificationStateScheme) and a lifecycle (ap:bindingLifecycleStateScheme: pendingVerification → active → stale | suspended | superseded | revoked). The external id is a POINTER AT the canonical address, never the identity (ADR-0010). Evidence, never authority. TS: ExternalIdentityBindingV1." .
|
|
105
|
+
|
|
106
|
+
ap:NamingBinding a owl:Class ;
|
|
107
|
+
rdfs:subClassOf ap:ExternalIdentityBinding ;
|
|
108
|
+
rdfs:label "NamingBinding" ;
|
|
109
|
+
rdfs:comment "The first-party binding the AP Naming projection establishes: a name record set (a2aEndpoint, metadataUri/Hash, atl:agentType) plus atl:cardDigest pointing at the released card (spec 347 §8.3). The name stays a facet pointing AT the SA — no second record type (§0.4)." .
|
|
110
|
+
|
|
111
|
+
# ─── PROV-O activities and agents ─────────────────────────────────────────
|
|
112
|
+
|
|
113
|
+
ap:ProjectionGeneration a owl:Class ;
|
|
114
|
+
rdfs:subClassOf prov:Activity ;
|
|
115
|
+
rdfs:label "ProjectionGeneration" ;
|
|
116
|
+
rdfs:comment "The pure activity that produced an ap:ProjectionArtifact. prov:used the input bundle, the definition and the selected card release; prov:wasAssociatedWith the ap:ProjectionAdapter. No credential, no network — if it needed either, it was not a projection." .
|
|
117
|
+
|
|
118
|
+
ap:PublicationActivity a owl:Class ;
|
|
119
|
+
rdfs:subClassOf prov:Activity ;
|
|
120
|
+
rdfs:label "PublicationActivity" ;
|
|
121
|
+
rdfs:comment "The effectful, approval-gated activity that deployed an artifact or card release and generated an ap:Publication. prov:used the artifact; prov:wasAssociatedWith the ap:Publisher (and, through the approval, the approving ap:Agent). Editor ≠ approver ≠ signer ≠ publisher (ADR-0062 §7)." .
|
|
122
|
+
|
|
123
|
+
ap:ProjectionAdapter a owl:Class ;
|
|
124
|
+
rdfs:subClassOf prov:SoftwareAgent ;
|
|
125
|
+
rdfs:label "ProjectionAdapter" ;
|
|
126
|
+
rdfs:comment "The software that implements one ap:ProjectionDefinition (a projector, optionally paired with a publisher). First-party adapters (AP Registry, AP Naming) live in Ring 0; every external adapter lives in the sibling repo agent-projections (ADR-0037). Named by ap:hasAdapterVersion." .
|
|
127
|
+
|
|
128
|
+
ap:Publisher a owl:Class ;
|
|
129
|
+
rdfs:subClassOf prov:SoftwareAgent ;
|
|
130
|
+
rdfs:label "Publisher" ;
|
|
131
|
+
rdfs:comment "The server-side software that performs an ap:PublicationActivity: credential-REFERENCE based (key-custody), idempotent, dry-run capable, audited. It holds no stored registry credential of its own (ADR-0062 refused alternatives)." .
|
|
132
|
+
|
|
133
|
+
# ─── Properties ───────────────────────────────────────────────────────────
|
|
134
|
+
|
|
135
|
+
ap:describesAgent a owl:ObjectProperty ;
|
|
136
|
+
rdfs:range ap:Agent ;
|
|
137
|
+
rdfs:label "describesAgent" ;
|
|
138
|
+
rdfs:comment "Profile / card / artifact / binding → the ONE canonical ap:Agent it is about. Every one of these nodes points AT the SA; none of them IS it (ADR-0010)." .
|
|
139
|
+
|
|
140
|
+
ap:hasAgentCard a owl:ObjectProperty ;
|
|
141
|
+
rdfs:domain ap:Agent ; rdfs:range ap:A2AAgentCard ;
|
|
142
|
+
rdfs:label "hasAgentCard" ;
|
|
143
|
+
rdfs:comment "Agent → its card resources (0..n). Separate cards only for a materially different deployment, audience, security boundary, skill set or persona (spec 347 §3)." .
|
|
144
|
+
|
|
145
|
+
ap:primaryPublicCard a owl:ObjectProperty ;
|
|
146
|
+
rdfs:subPropertyOf ap:hasAgentCard ;
|
|
147
|
+
rdfs:domain ap:Agent ; rdfs:range ap:A2AAgentCard ;
|
|
148
|
+
rdfs:label "primaryPublicCard" ;
|
|
149
|
+
rdfs:comment "The ONE card a production deployment designates as primary and public." .
|
|
150
|
+
|
|
151
|
+
ap:hasRelease a owl:ObjectProperty ;
|
|
152
|
+
rdfs:label "hasRelease" ;
|
|
153
|
+
rdfs:comment "Card → its immutable releases; profile → its releases. Superseding never erases (spec 347 §3)." .
|
|
154
|
+
|
|
155
|
+
ap:releaseOf a owl:ObjectProperty ;
|
|
156
|
+
owl:inverseOf ap:hasRelease ;
|
|
157
|
+
rdfs:label "releaseOf" .
|
|
158
|
+
|
|
159
|
+
ap:supersedesRelease a owl:ObjectProperty ;
|
|
160
|
+
rdfs:label "supersedesRelease" ;
|
|
161
|
+
rdfs:comment "Release → the release it replaces. A revoked release records reason, authority, date and successor." .
|
|
162
|
+
|
|
163
|
+
ap:derivedFromSnapshot a owl:ObjectProperty ;
|
|
164
|
+
rdfs:range prov:Entity ;
|
|
165
|
+
rdfs:label "derivedFromSnapshot" ;
|
|
166
|
+
rdfs:comment "Card release / artifact → the IMMUTABLE snapshot it was computed from (a profile release, a card release, a projection input bundle). 'current' / 'latest' are forbidden here for the same reason apix:ContextSnapshotShape forbids them: a floating pointer makes the record unreplayable." .
|
|
167
|
+
|
|
168
|
+
ap:usesProjectionDefinition a owl:ObjectProperty ;
|
|
169
|
+
rdfs:domain ap:ProjectionInstance ; rdfs:range ap:ProjectionDefinition ;
|
|
170
|
+
rdfs:label "usesProjectionDefinition" .
|
|
171
|
+
|
|
172
|
+
ap:usesCardRelease a owl:ObjectProperty ;
|
|
173
|
+
rdfs:domain ap:ProjectionInstance ; rdfs:range ap:A2AAgentCardRelease ;
|
|
174
|
+
rdfs:label "usesCardRelease" ;
|
|
175
|
+
rdfs:comment "The SPECIFIC released card this instance projects — never a draft." .
|
|
176
|
+
|
|
177
|
+
ap:generatedArtifact a owl:ObjectProperty ;
|
|
178
|
+
rdfs:domain ap:ProjectionInstance ; rdfs:range ap:ProjectionArtifact ;
|
|
179
|
+
rdfs:label "generatedArtifact" .
|
|
180
|
+
|
|
181
|
+
ap:projectsTo a owl:DatatypeProperty ;
|
|
182
|
+
rdfs:range xsd:string ;
|
|
183
|
+
rdfs:label "projectsTo" ;
|
|
184
|
+
rdfs:comment "Definition / instance / artifact → the target FAMILY it is for ('ap-registry', 'ap-naming', 'a2a-well-known', 'oasf', 'erc8004', 'hcs11', 'hcs14', 'ans', …). A string on purpose: target families are pinned by the StandardsLock, not modelled as Ring-0 classes (ADR-0038)." .
|
|
185
|
+
|
|
186
|
+
ap:hasTargetSpecification a owl:DatatypeProperty ;
|
|
187
|
+
rdfs:range xsd:string ;
|
|
188
|
+
rdfs:label "hasTargetSpecification" ;
|
|
189
|
+
rdfs:comment "Definition / artifact → the pinned target specification id + version ('oasf@1.1.0', 'a2a@1.0.0'); resolvable in the ap:StandardsLock." .
|
|
190
|
+
|
|
191
|
+
ap:hasAdapterVersion a owl:DatatypeProperty ;
|
|
192
|
+
rdfs:range xsd:string ;
|
|
193
|
+
rdfs:label "hasAdapterVersion" ;
|
|
194
|
+
rdfs:comment "Definition / artifact → the adapter name@version that produced it. An adapter upgrade makes an instance adapter-stale (review-required), never silently regenerated." .
|
|
195
|
+
|
|
196
|
+
ap:hasLoss a owl:ObjectProperty ;
|
|
197
|
+
rdfs:domain ap:ProjectionArtifact ; rdfs:range ap:ProjectionLoss ;
|
|
198
|
+
rdfs:label "hasLoss" ;
|
|
199
|
+
rdfs:comment "Artifact → each loss in its report. Zero losses is an empty set on a node that still exists as an artifact, not a missing report." .
|
|
200
|
+
|
|
201
|
+
ap:lossCategory a owl:DatatypeProperty ;
|
|
202
|
+
rdfs:domain ap:ProjectionLoss ; rdfs:range xsd:string ;
|
|
203
|
+
rdfs:label "lossCategory" ;
|
|
204
|
+
rdfs:comment "An ap:lossCategoryScheme prefLabel (cbox/controlled-vocabularies.ttl)." .
|
|
205
|
+
|
|
206
|
+
ap:lossSeverity a owl:DatatypeProperty ;
|
|
207
|
+
rdfs:domain ap:ProjectionLoss ; rdfs:range xsd:string ;
|
|
208
|
+
rdfs:label "lossSeverity" .
|
|
209
|
+
|
|
210
|
+
ap:lossExplanation a owl:DatatypeProperty ;
|
|
211
|
+
rdfs:domain ap:ProjectionLoss ; rdfs:range xsd:string ;
|
|
212
|
+
rdfs:label "lossExplanation" .
|
|
213
|
+
|
|
214
|
+
ap:sourcePointer a owl:DatatypeProperty ;
|
|
215
|
+
rdfs:range xsd:string ;
|
|
216
|
+
rdfs:label "sourcePointer" ;
|
|
217
|
+
rdfs:comment "RFC 6901 JSON Pointer into the SOURCE document (card / input bundle)." .
|
|
218
|
+
|
|
219
|
+
ap:targetPointer a owl:DatatypeProperty ;
|
|
220
|
+
rdfs:range xsd:string ;
|
|
221
|
+
rdfs:label "targetPointer" ;
|
|
222
|
+
rdfs:comment "JSON Pointer into the target artifact." .
|
|
223
|
+
|
|
224
|
+
ap:publishedAs a owl:ObjectProperty ;
|
|
225
|
+
rdfs:range ap:Publication ;
|
|
226
|
+
rdfs:label "publishedAs" ;
|
|
227
|
+
rdfs:comment "Card release / artifact → the publication(s) that deployed it. One artifact may be published more than once (a retry, a second registry); each publication is its own receipt." .
|
|
228
|
+
|
|
229
|
+
ap:publishedArtifact a owl:ObjectProperty ;
|
|
230
|
+
rdfs:domain ap:Publication ;
|
|
231
|
+
rdfs:label "publishedArtifact" ;
|
|
232
|
+
rdfs:comment "Publication → the artifact or card release it deployed (the digest named in ap:hasArtifactDigest is what was actually sent)." .
|
|
233
|
+
|
|
234
|
+
ap:establishesBinding a owl:ObjectProperty ;
|
|
235
|
+
rdfs:domain ap:Publication ; rdfs:range ap:ExternalIdentityBinding ;
|
|
236
|
+
rdfs:label "establishesBinding" ;
|
|
237
|
+
rdfs:comment "Publication → the external identity binding(s) it created or refreshed. A binding born here starts pendingVerification; the publisher's re-fetch moves it." .
|
|
238
|
+
|
|
239
|
+
ap:bindsExternalIdentity a owl:ObjectProperty ;
|
|
240
|
+
rdfs:domain ap:Agent ; rdfs:range ap:ExternalIdentityBinding ;
|
|
241
|
+
rdfs:label "bindsExternalIdentity" ;
|
|
242
|
+
rdfs:comment "Agent → the external identities that represent it (0..n). Read with ap:describesAgent on the binding (the inverse direction) — both point the same way: external id AT canonical agent." .
|
|
243
|
+
|
|
244
|
+
ap:targetFamily a owl:DatatypeProperty ;
|
|
245
|
+
rdfs:domain ap:ExternalIdentityBinding ; rdfs:range xsd:string ;
|
|
246
|
+
rdfs:label "targetFamily" ;
|
|
247
|
+
rdfs:comment "The target family the external id lives in (same value space as ap:projectsTo)." .
|
|
248
|
+
|
|
249
|
+
ap:targetRegistry a owl:DatatypeProperty ;
|
|
250
|
+
rdfs:domain ap:ExternalIdentityBinding ; rdfs:range xsd:string ;
|
|
251
|
+
rdfs:label "targetRegistry" ;
|
|
252
|
+
rdfs:comment "The specific registry / network within the family (a contract address, a topic id, a zone)." .
|
|
253
|
+
|
|
254
|
+
ap:externalId a owl:DatatypeProperty ;
|
|
255
|
+
rdfs:domain ap:ExternalIdentityBinding ; rdfs:range xsd:string ;
|
|
256
|
+
rdfs:label "externalId" ;
|
|
257
|
+
rdfs:comment "The external record identifier. A pointer AT the SA — never the identity." .
|
|
258
|
+
|
|
259
|
+
ap:verificationState a owl:DatatypeProperty ;
|
|
260
|
+
rdfs:domain ap:ExternalIdentityBinding ; rdfs:range xsd:string ;
|
|
261
|
+
rdfs:label "verificationState" ;
|
|
262
|
+
rdfs:comment "An ap:bindingVerificationStateScheme prefLabel: unverified | verified | failed. Unverified is RECORDED, never read as verified." .
|
|
263
|
+
|
|
264
|
+
ap:verificationMethod a owl:DatatypeProperty ;
|
|
265
|
+
rdfs:domain ap:ExternalIdentityBinding ; rdfs:range xsd:string ;
|
|
266
|
+
rdfs:label "verificationMethod" .
|
|
267
|
+
|
|
268
|
+
ap:verifiedAt a owl:DatatypeProperty ;
|
|
269
|
+
rdfs:range xsd:dateTime ;
|
|
270
|
+
rdfs:label "verifiedAt" .
|
|
271
|
+
|
|
272
|
+
ap:lifecycleState a owl:DatatypeProperty ;
|
|
273
|
+
rdfs:range xsd:string ;
|
|
274
|
+
rdfs:label "lifecycleState" ;
|
|
275
|
+
rdfs:comment "The subject's lifecycle state; the value space depends on the class: ap:cardReleaseStateScheme (card release), ap:projectionInstanceStateScheme (instance), ap:bindingLifecycleStateScheme (binding)." .
|
|
276
|
+
|
|
277
|
+
ap:disclosureScope a owl:DatatypeProperty ;
|
|
278
|
+
rdfs:range xsd:string ;
|
|
279
|
+
rdfs:label "disclosureScope" ;
|
|
280
|
+
rdfs:comment "'public' | 'private'. A card or artifact marked public is subject to ap:PublicDisclosureBoundaryShape. ABSENCE IS PRIVATE — no shape reads a missing scope as public." .
|
|
281
|
+
|
|
282
|
+
ap:cardDigest a owl:DatatypeProperty ;
|
|
283
|
+
rdfs:range xsd:string ;
|
|
284
|
+
rdfs:label "cardDigest" ;
|
|
285
|
+
rdfs:comment "sha256:<hex> of the released card's RFC 8785 canonical bytes. Also the value the AP Naming projection writes as atl:cardDigest, and the value the well-known publisher's re-fetch must reproduce (ADR-0059 live-truth check)." .
|
|
286
|
+
|
|
287
|
+
ap:cardUri a owl:DatatypeProperty ;
|
|
288
|
+
rdfs:range xsd:anyURI ;
|
|
289
|
+
rdfs:label "cardUri" ;
|
|
290
|
+
rdfs:comment "Where the released card is served (the /.well-known/agent-card.json URL). On a PUBLIC card or artifact it must be a public address: loopback, private-range, link-local and *.local/*.internal hosts are refused." .
|
|
291
|
+
|
|
292
|
+
ap:cardName a owl:DatatypeProperty ;
|
|
293
|
+
rdfs:domain ap:A2AAgentCard ; rdfs:range xsd:string ;
|
|
294
|
+
rdfs:label "cardName" ;
|
|
295
|
+
rdfs:comment "The A2A card's human-readable name (A2A 1.0 AgentCard.name)." .
|
|
296
|
+
|
|
297
|
+
ap:protocolVersion a owl:DatatypeProperty ;
|
|
298
|
+
rdfs:range xsd:string ;
|
|
299
|
+
rdfs:label "protocolVersion" ;
|
|
300
|
+
rdfs:comment "The A2A protocol version the card conforms to (A2A 1.0 AgentCard.protocolVersion)." .
|
|
301
|
+
|
|
302
|
+
ap:interfaceUrl a owl:DatatypeProperty ;
|
|
303
|
+
rdfs:range xsd:anyURI ;
|
|
304
|
+
rdfs:label "interfaceUrl" ;
|
|
305
|
+
rdfs:comment "One entry of the card's supportedInterfaces (its URL). The ORDER (first = preferred) is a property of the released JSON, not of this graph; the graph records the set." .
|
|
306
|
+
|
|
307
|
+
ap:interfaceTransport a owl:DatatypeProperty ;
|
|
308
|
+
rdfs:range xsd:string ;
|
|
309
|
+
rdfs:label "interfaceTransport" ;
|
|
310
|
+
rdfs:comment "The transport of one supported interface (JSONRPC | HTTP+JSON | GRPC …)." .
|
|
311
|
+
|
|
312
|
+
# ─── The eight digests (spec 347 §6.4 'every artifact records the eight digests') ──
|
|
313
|
+
# MODELLING CHOICE: eight named DATATYPE sub-properties of one abstract ap:hasDigest, rather than a
|
|
314
|
+
# reified digest node with a role. The shape needs 'minCount 1 for each of eight roles', and eight
|
|
315
|
+
# sh:property blocks say that in SHACL-Core with no SPARQL; a role-node model would need a
|
|
316
|
+
# qualifiedValueShape per role and read worse. The roles ALSO exist as a codelist
|
|
317
|
+
# (ap:digestRoleScheme) so a reified form can be mapped to these if a store prefers it.
|
|
318
|
+
|
|
319
|
+
ap:hasDigest a owl:DatatypeProperty ;
|
|
320
|
+
rdfs:range xsd:string ;
|
|
321
|
+
rdfs:label "hasDigest" ;
|
|
322
|
+
rdfs:comment "Abstract parent of the eight artifact digests. Values are 'sha256:<64 hex>'. Never used directly on an artifact — the sub-property names the role." .
|
|
323
|
+
|
|
324
|
+
ap:hasSourceDigest a owl:DatatypeProperty ; rdfs:subPropertyOf ap:hasDigest ; rdfs:range xsd:string ;
|
|
325
|
+
rdfs:label "hasSourceDigest" ;
|
|
326
|
+
rdfs:comment "Digest of the ProjectionInputBundleV1 the artifact was computed from." .
|
|
327
|
+
ap:hasDefinitionDigest a owl:DatatypeProperty ; rdfs:subPropertyOf ap:hasDigest ; rdfs:range xsd:string ;
|
|
328
|
+
rdfs:label "hasDefinitionDigest" ;
|
|
329
|
+
rdfs:comment "Digest of the ap:ProjectionDefinition used." .
|
|
330
|
+
ap:hasTargetSpecificationDigest a owl:DatatypeProperty ; rdfs:subPropertyOf ap:hasDigest ; rdfs:range xsd:string ;
|
|
331
|
+
rdfs:label "hasTargetSpecificationDigest" ;
|
|
332
|
+
rdfs:comment "Digest of the pinned target specification (from the ap:StandardsLock)." .
|
|
333
|
+
ap:hasAdapterDigest a owl:DatatypeProperty ; rdfs:subPropertyOf ap:hasDigest ; rdfs:range xsd:string ;
|
|
334
|
+
rdfs:label "hasAdapterDigest" ;
|
|
335
|
+
rdfs:comment "Digest identifying the adapter build (name@version + code digest)." .
|
|
336
|
+
ap:hasConfigurationDigest a owl:DatatypeProperty ; rdfs:subPropertyOf ap:hasDigest ; rdfs:range xsd:string ;
|
|
337
|
+
rdfs:label "hasConfigurationDigest" ;
|
|
338
|
+
rdfs:comment "Digest of the instance configuration." .
|
|
339
|
+
ap:hasArtifactDigest a owl:DatatypeProperty ; rdfs:subPropertyOf ap:hasDigest ; rdfs:range xsd:string ;
|
|
340
|
+
rdfs:label "hasArtifactDigest" ;
|
|
341
|
+
rdfs:comment "Digest of the emitted payload — what a Publication actually sent and what an approval names." .
|
|
342
|
+
ap:hasCanonicalProfileDigest a owl:DatatypeProperty ; rdfs:subPropertyOf ap:hasDigest ; rdfs:range xsd:string ;
|
|
343
|
+
rdfs:label "hasCanonicalProfileDigest" ;
|
|
344
|
+
rdfs:comment "Digest of the ap:CanonicalAgentProfileRelease in the input bundle." .
|
|
345
|
+
ap:hasSelectedCardDigest a owl:DatatypeProperty ; rdfs:subPropertyOf ap:hasDigest ; rdfs:range xsd:string ;
|
|
346
|
+
rdfs:label "hasSelectedCardDigest" ;
|
|
347
|
+
rdfs:comment "ap:cardDigest of the released card the projection consumed." .
|
|
348
|
+
|
|
349
|
+
# ─── Taxonomy mappings live in skills.ttl (aps:SkillTaxonomyMapping); referenced here ──
|
|
350
|
+
ap:CanonicalAgentProfile rdfs:seeAlso aps:SkillTaxonomyMapping .
|
package/tbox/contact.ttl
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# T-box — the PRIVATE contact profile (spec 371 §2.2: a record edit is shaped by the record).
|
|
2
|
+
#
|
|
3
|
+
# What this module owns: the person's own contact record — name, email, telephone, organization and a
|
|
4
|
+
# postal address — held in THEIR vault (`vault:impact-profile`, sealed under their own KEK) and shared only
|
|
5
|
+
# with apps they have granted. It is NOT the public profile facet (approf:, on chain, world-readable) and
|
|
6
|
+
# NOT the naming record (apnam:). Three records answer to the word "profile"; this is the private one.
|
|
7
|
+
#
|
|
8
|
+
# Why it exists as a T-box: the fields a person may change by asking ("set street address to …") are read
|
|
9
|
+
# FROM this declaration — the Ask's edit tool, the record's write allow-list and the contract's inputs are
|
|
10
|
+
# all projections of these properties. Before this file the fields lived in three hand-kept lists, and
|
|
11
|
+
# "street address" was in none of them: the agent could change a name and not an address, and said so.
|
|
12
|
+
#
|
|
13
|
+
# Local names follow schema.org's PostalAddress / Person vocabulary so a reader recognises them; the IRIs
|
|
14
|
+
# are ours, because the record is ours. Never projected to the discovery KB (ADR-0040: PII).
|
|
15
|
+
|
|
16
|
+
@prefix apcon: <https://agenticprimitives.dev/ns/contact#> .
|
|
17
|
+
@prefix ap: <https://agenticprimitives.dev/ns/core#> .
|
|
18
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
19
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
20
|
+
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
21
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
22
|
+
@prefix prov: <http://www.w3.org/ns/prov#> .
|
|
23
|
+
|
|
24
|
+
apcon: a owl:Ontology ;
|
|
25
|
+
rdfs:label "Agentic Primitives — private contact profile" ;
|
|
26
|
+
owl:versionInfo "0.1.0" ;
|
|
27
|
+
rdfs:comment "The person's own contact record, in their own vault. Private tier; never on chain, never in the discovery KB." .
|
|
28
|
+
|
|
29
|
+
apcon:ContactProfile a owl:Class ;
|
|
30
|
+
rdfs:subClassOf prov:Entity ;
|
|
31
|
+
rdfs:label "ContactProfile" ;
|
|
32
|
+
rdfs:comment "ONE person's private contact record: how they are named, reached and where they are. Owner-written; read by apps under a granted scope. Not the public AgentProfile facet, not the naming record." .
|
|
33
|
+
|
|
34
|
+
apcon:givenName a owl:DatatypeProperty ; rdfs:domain apcon:ContactProfile ; rdfs:range xsd:string ; rdfs:label "first name" ;
|
|
35
|
+
rdfs:comment "The person's given name, as they write it. Not the agent's public display name." .
|
|
36
|
+
apcon:familyName a owl:DatatypeProperty ; rdfs:domain apcon:ContactProfile ; rdfs:range xsd:string ; rdfs:label "last name" ;
|
|
37
|
+
rdfs:comment "The person's family name." .
|
|
38
|
+
apcon:email a owl:DatatypeProperty ; rdfs:domain apcon:ContactProfile ; rdfs:range xsd:string ; rdfs:label "email" ;
|
|
39
|
+
rdfs:comment "Where their mail goes. A wrong one is worse than none." .
|
|
40
|
+
apcon:telephone a owl:DatatypeProperty ; rdfs:domain apcon:ContactProfile ; rdfs:range xsd:string ; rdfs:label "phone" ;
|
|
41
|
+
rdfs:comment "A telephone number, as written." .
|
|
42
|
+
apcon:organizationName a owl:DatatypeProperty ; rdfs:domain apcon:ContactProfile ; rdfs:range xsd:string ; rdfs:label "organization" ;
|
|
43
|
+
rdfs:comment "The organization they say they work with — words, not a link to an OrganizationAgent." .
|
|
44
|
+
apcon:organizationCountry a owl:DatatypeProperty ; rdfs:domain apcon:ContactProfile ; rdfs:range xsd:string ; rdfs:label "organization country" ;
|
|
45
|
+
rdfs:comment "Where that organization is." .
|
|
46
|
+
|
|
47
|
+
# ── The postal address, at the precision the person chose to share ──────────────────────────────────
|
|
48
|
+
apcon:streetAddress a owl:DatatypeProperty ; rdfs:domain apcon:ContactProfile ; rdfs:range xsd:string ; rdfs:label "street address" ;
|
|
49
|
+
rdfs:comment "Street and number (\"2445 Walters Drive\"). Sharing it means the record's precision is 'address'." .
|
|
50
|
+
apcon:streetAddressLine2 a owl:DatatypeProperty ; rdfs:domain apcon:ContactProfile ; rdfs:range xsd:string ; rdfs:label "address line 2" ;
|
|
51
|
+
rdfs:comment "Apartment, suite, unit." .
|
|
52
|
+
apcon:addressLocality a owl:DatatypeProperty ; rdfs:domain apcon:ContactProfile ; rdfs:range xsd:string ; rdfs:label "city" ;
|
|
53
|
+
rdfs:comment "City, town or equivalent locality." .
|
|
54
|
+
apcon:addressRegion a owl:DatatypeProperty ; rdfs:domain apcon:ContactProfile ; rdfs:range xsd:string ; rdfs:label "state or province" ;
|
|
55
|
+
rdfs:comment "State, province or equivalent region." .
|
|
56
|
+
apcon:postalCode a owl:DatatypeProperty ; rdfs:domain apcon:ContactProfile ; rdfs:range xsd:string ; rdfs:label "postal code" ;
|
|
57
|
+
rdfs:comment "Postal or ZIP code." .
|
|
58
|
+
apcon:addressCountry a owl:DatatypeProperty ; rdfs:domain apcon:ContactProfile ; rdfs:range xsd:string ; rdfs:label "country" ;
|
|
59
|
+
rdfs:comment "The country of the address — the coarsest precision, and required for any finer one." .
|
|
60
|
+
apcon:locationPrecision a owl:DatatypeProperty ; rdfs:domain apcon:ContactProfile ; rdfs:range xsd:string ; rdfs:label "location precision" ;
|
|
61
|
+
rdfs:comment "How much of the address the person chose to share: country | region | locality | address. Derived from what is filled; never finer than what they gave." .
|
package/tbox/context.ttl
CHANGED
|
@@ -18,6 +18,9 @@
|
|
|
18
18
|
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
19
19
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
20
20
|
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
|
|
21
|
+
# `prov:` was USED (LearnedPreference ⊑ prov:Entity) and never declared, so this file did not parse.
|
|
22
|
+
@prefix prov: <http://www.w3.org/ns/prov#> .
|
|
23
|
+
@prefix ap: <https://agenticprimitives.dev/ns/core#> .
|
|
21
24
|
|
|
22
25
|
apctx: a owl:Ontology ;
|
|
23
26
|
rdfs:label "Agentic Primitives — context facet ontology" ;
|
|
@@ -122,3 +125,114 @@ apctx:levelInMap a owl:DatatypeProperty ;
|
|
|
122
125
|
rdfs:domain apctx:CapabilityMapEntry ; rdfs:range xsd:integer ;
|
|
123
126
|
rdfs:label "levelInMap" ;
|
|
124
127
|
rdfs:comment "Presentation level within one map. Asserting this on an aps:Capability is a SHACL violation (cbox/capability-catalog-shapes.shacl.ttl NoLevelOnCapabilityShape)." .
|
|
128
|
+
|
|
129
|
+
# ── Learned context: what an agent has been TOLD, kept in the owner's own vault ────────────────────
|
|
130
|
+
# Spec 358 W5. Memory in this substrate is not a platform blob: it is ontology-shaped records in the
|
|
131
|
+
# OWNER's vault, read by the same selector as everything else and shown in an answer's evidence. A
|
|
132
|
+
# learned preference — "when I say alice, I mean alice2.treasury" — is a RECORD the owner holds, deletes
|
|
133
|
+
# like any other, and carries to another Home. It is never authority: it steers what a resolver PROPOSES,
|
|
134
|
+
# and the mandate still decides. The distinction from a profile: a profile is what an agent SAYS ABOUT
|
|
135
|
+
# ITSELF; a learned preference is what it was TOLD, by whom, and when.
|
|
136
|
+
|
|
137
|
+
apctx:LearnedPreference a owl:Class ;
|
|
138
|
+
rdfs:subClassOf prov:Entity ;
|
|
139
|
+
rdfs:label "LearnedPreference" ;
|
|
140
|
+
rdfs:comment """A statement the agent was TOLD and keeps, in the owner's own vault (spec 358 W5) — "when I say X, I mean Y", "pay me into this treasury by default". Steers what a resolver proposes; NEVER authority (a preference to pay a treasury is not a grant to pay it), and NEVER a fact about the world (it records what the owner said, which may be wrong or stale). Carries what was learned, whom it is about, when, and — because provenance is the whole difference between memory and a guess — that the OWNER asserted it.""" .
|
|
141
|
+
|
|
142
|
+
apctx:preferenceSubject a owl:ObjectProperty ;
|
|
143
|
+
rdfs:domain apctx:LearnedPreference ; rdfs:range ap:Agent ;
|
|
144
|
+
rdfs:label "preferenceSubject" ;
|
|
145
|
+
rdfs:comment "Who or what the preference is ABOUT — the agent the owner's shorthand resolves to." .
|
|
146
|
+
|
|
147
|
+
apctx:preferenceTrigger a owl:DatatypeProperty ;
|
|
148
|
+
rdfs:domain apctx:LearnedPreference ; rdfs:range xsd:string ;
|
|
149
|
+
rdfs:label "preferenceTrigger" ;
|
|
150
|
+
rdfs:comment "The words that invoke it — the shorthand the owner uses (\"alice\", \"my treasury\"). Matched against an ask, never against the world." .
|
|
151
|
+
|
|
152
|
+
apctx:learnedAt a owl:DatatypeProperty ;
|
|
153
|
+
rdfs:domain apctx:LearnedPreference ; rdfs:range xsd:dateTime ;
|
|
154
|
+
rdfs:label "learnedAt" ;
|
|
155
|
+
rdfs:comment "When the owner said it. A stale preference is still a real record; age is shown so a person can judge it." .
|
|
156
|
+
|
|
157
|
+
# ── Confirmation memory (spec 385) ──────────────────────────────────────────────────────────────────
|
|
158
|
+
# Which "David" the owner CHOSE when asked, per (word, capability, argument) — and, since spec 394, per the room
|
|
159
|
+
# they were standing in. Evidence the resolver cites; never a grant a verifier reads.
|
|
160
|
+
|
|
161
|
+
apctx:ConfirmationMemory a owl:Class ;
|
|
162
|
+
rdfs:subClassOf prov:Entity ;
|
|
163
|
+
rdfs:label "ConfirmationMemory" ;
|
|
164
|
+
rdfs:comment "The owner's confirmed choices, in their own vault: for THIS word, filling THIS argument of THIS capability (in THIS room), the agent they picked when asked. Prefills or ranks the next ambiguous resolution of the same word in the same place, revalidated against the candidates found then. Correctable, cited, never authority." .
|
|
165
|
+
|
|
166
|
+
apctx:confirmedParty a owl:ObjectProperty ;
|
|
167
|
+
rdfs:domain apctx:ConfirmationMemory ; rdfs:range ap:Agent ;
|
|
168
|
+
rdfs:label "confirmedParty" ;
|
|
169
|
+
rdfs:comment "The agent the owner confirmed for the word." .
|
|
170
|
+
|
|
171
|
+
apctx:confirmedWords a owl:DatatypeProperty ;
|
|
172
|
+
rdfs:domain apctx:ConfirmationMemory ; rdfs:range xsd:string ;
|
|
173
|
+
rdfs:label "confirmedWords" ;
|
|
174
|
+
rdfs:comment "The word the owner used ('david')." .
|
|
175
|
+
|
|
176
|
+
apctx:confirmedFor a owl:DatatypeProperty ;
|
|
177
|
+
rdfs:domain apctx:ConfirmationMemory ; rdfs:range xsd:string ;
|
|
178
|
+
rdfs:label "confirmedFor" ;
|
|
179
|
+
rdfs:comment "The capability the choice was made for (an ADR-0051 id) — the scope that keeps the payee 'David' out of the invitee 'David'." .
|
|
180
|
+
|
|
181
|
+
# ── Standing instructions (spec 394) ────────────────────────────────────────────────────────────────
|
|
182
|
+
# A DECLARED DEFAULT with no word in it: "from now on, pay from alice3.treasury". Fills an argument the owner
|
|
183
|
+
# did not speak, never one they did; scoped to the room (the organization acted for, or any); never authority.
|
|
184
|
+
|
|
185
|
+
apctx:StandingInstruction a owl:Class ;
|
|
186
|
+
rdfs:subClassOf prov:Entity ;
|
|
187
|
+
rdfs:label "StandingInstruction" ;
|
|
188
|
+
rdfs:comment "The owner's declared default for one argument of one capability, in their own vault, scoped to the acting context they declared it in. Written only from the owner's confirmation of the read-back; revalidated at every use; cited on the binding as 'standing'. It is NOT a caveat, NOT a policy and NOT a grant: the mandate for the act is asked and signed as if nothing were remembered, and it can never lower a step's requirement." .
|
|
189
|
+
|
|
190
|
+
apctx:instructionCapability a owl:DatatypeProperty ;
|
|
191
|
+
rdfs:domain apctx:StandingInstruction ; rdfs:range xsd:string ;
|
|
192
|
+
rdfs:label "instructionCapability" ;
|
|
193
|
+
rdfs:comment "The capability the default is for (an ADR-0051 id)." .
|
|
194
|
+
|
|
195
|
+
apctx:instructionArgument a owl:DatatypeProperty ;
|
|
196
|
+
rdfs:domain apctx:StandingInstruction ; rdfs:range xsd:string ;
|
|
197
|
+
rdfs:label "instructionArgument" ;
|
|
198
|
+
rdfs:comment "The argument it fills ('payer', 'org')." .
|
|
199
|
+
|
|
200
|
+
apctx:instructionValue a owl:ObjectProperty ;
|
|
201
|
+
rdfs:domain apctx:StandingInstruction ; rdfs:range ap:Agent ;
|
|
202
|
+
rdfs:label "instructionValue" ;
|
|
203
|
+
rdfs:comment "The agent the argument defaults to." .
|
|
204
|
+
|
|
205
|
+
apctx:instructionContext a owl:DatatypeProperty ;
|
|
206
|
+
rdfs:domain apctx:StandingInstruction ; rdfs:range xsd:string ;
|
|
207
|
+
rdfs:label "instructionContext" ;
|
|
208
|
+
rdfs:comment "The room: 'any', or the address of the organization the owner was acting for when they declared it. Read for the exact room first, then 'any'; a default for one organization is never read in another." .
|
|
209
|
+
|
|
210
|
+
apctx:declaredAt a owl:DatatypeProperty ;
|
|
211
|
+
rdfs:domain apctx:StandingInstruction ; rdfs:range xsd:dateTime ;
|
|
212
|
+
rdfs:label "declaredAt" ;
|
|
213
|
+
rdfs:comment "When the owner declared it." .
|
|
214
|
+
|
|
215
|
+
# ── Conversation memory (spec 370 P7) ───────────────────────────────────────────────────────────────
|
|
216
|
+
# What the agent RESOLVED for its owner in the last few asks, kept in the owner's own vault so "send him
|
|
217
|
+
# 2 USDC" after "send nathan 1 USDC" means the Nathan they just meant, and "which Nathan?" is not asked
|
|
218
|
+
# twice in one afternoon. Memory fills WHERE; it is never authority: the mandate still decides.
|
|
219
|
+
|
|
220
|
+
apctx:ConversationMemory a owl:Class ;
|
|
221
|
+
rdfs:subClassOf prov:Entity ;
|
|
222
|
+
rdfs:label "ConversationMemory" ;
|
|
223
|
+
rdfs:comment "The owner's recent asks and what each party word resolved to, in their own vault. A short window (a dozen turns), read by the resolver to answer a pronoun or a repeated name; steers what is PROPOSED, never what is permitted." .
|
|
224
|
+
|
|
225
|
+
apctx:recalledParty a owl:ObjectProperty ;
|
|
226
|
+
rdfs:domain apctx:ConversationMemory ; rdfs:range ap:Agent ;
|
|
227
|
+
rdfs:label "recalledParty" ;
|
|
228
|
+
rdfs:comment "An agent a recent ask resolved a word to." .
|
|
229
|
+
|
|
230
|
+
apctx:recalledWords a owl:DatatypeProperty ;
|
|
231
|
+
rdfs:domain apctx:ConversationMemory ; rdfs:range xsd:string ;
|
|
232
|
+
rdfs:label "recalledWords" ;
|
|
233
|
+
rdfs:comment "The words the owner used for that party ('nathan', 'the somali team')." .
|
|
234
|
+
|
|
235
|
+
apctx:recalledAt a owl:DatatypeProperty ;
|
|
236
|
+
rdfs:domain apctx:ConversationMemory ; rdfs:range xsd:dateTime ;
|
|
237
|
+
rdfs:label "recalledAt" ;
|
|
238
|
+
rdfs:comment "When the ask was made; the newest recall wins a pronoun." .
|
package/tbox/coordination.ttl
CHANGED
|
@@ -112,6 +112,23 @@ apcoord:ContributionCommitment a owl:Class ;
|
|
|
112
112
|
rdfs:label "ContributionCommitment" ;
|
|
113
113
|
rdfs:comment "The participant's SIGNED acceptance of bounded responsibility, binding the EXACT adopted plan revision hash. Signed via the universal signature paths (ERC-1271/6492/ECDSA/WebAuthn), fail-closed. STILL grants nothing: authorized remains a separate fact evaluated at the gate." .
|
|
114
114
|
|
|
115
|
+
# ═══ Decisions by declared approvers (spec 333 §3, shipped by spec 393; reader: @agenticprimitives/coordination /decisions) ═══
|
|
116
|
+
|
|
117
|
+
apcoord:ApprovalRequirement a owl:Class ;
|
|
118
|
+
rdfs:subClassOf prov:Entity ;
|
|
119
|
+
rdfs:label "ApprovalRequirement" ;
|
|
120
|
+
rdfs:comment "Declares WHO must approve: the addresses that may decide (the managing principal's address names the organization — a steward decides AS it), and a quorum. Quorum references organization/custody machinery (spec 333 §10 rule 3) — coordination never implements voting. Not authority: it names who may RECORD a decision, never what any step may do." .
|
|
121
|
+
|
|
122
|
+
apcoord:DecisionRequest a owl:Class ;
|
|
123
|
+
rdfs:subClassOf prov:Entity ;
|
|
124
|
+
rdfs:label "DecisionRequest" ;
|
|
125
|
+
rdfs:comment "A decision that must be supplied before something proceeds, raised for its ApprovalRequirement by the organization or an active participant, scoped to plan steps when it concerns them, with an optional window (dueAt). Pending until an approver records approved or rejected; a deferral leaves it pending." .
|
|
126
|
+
|
|
127
|
+
apcoord:DecisionRecord a owl:Class ;
|
|
128
|
+
rdfs:subClassOf prov:Entity ;
|
|
129
|
+
rdfs:label "DecisionRecord" ;
|
|
130
|
+
rdfs:comment "IMMUTABLE: who decided (the actor), on whose behalf (the organization when a steward decided as it), the outcome, the rationale, evidence refs, the scope, when. Never edited — a reversal is a new DecisionRequest citing the old. Admitted by the reducer only for an actor the requirement names: steward standing never substitutes for being named (spec 393 §1)." .
|
|
131
|
+
|
|
115
132
|
# ═══ Agent triage (spec 333 §3 — W4 minimal slice; reader: @agenticprimitives/coordination /decisions) ═══
|
|
116
133
|
|
|
117
134
|
apcoord:Recommendation a owl:Class ;
|