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

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.
@@ -0,0 +1,77 @@
1
+ # T-box — agreement vocabulary (spine Layer 8).
2
+ # Hyperledger Indy commitments + Sidetree anchor pattern; W3C VC envelope.
3
+ # Spec 225 §11.5; ADR-0024 Decision 2 (single-row commitment-only).
4
+ # Owning runtime SHACL: packages/agreements/src/shapes/agreement.shacl.ttl.
5
+
6
+ @prefix apagr: <https://agenticprimitives.dev/ns/agreement#> .
7
+ @prefix apvc: <https://agenticprimitives.dev/ns/credential#> .
8
+ @prefix apint: <https://agenticprimitives.dev/ns/intent#> .
9
+ @prefix ap: <https://agenticprimitives.dev/ns/core#> .
10
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
11
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
12
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
13
+ @prefix vf: <https://w3id.org/valueflows#> .
14
+ @prefix prov: <http://www.w3.org/ns/prov#> .
15
+
16
+ apagr: a owl:Ontology ;
17
+ rdfs:label "Agentic Primitives — agreement ontology" ;
18
+ owl:versionInfo "0.1.0" ;
19
+ rdfs:comment "Layer 8 of the spine. Commitment-only on chain; body in vaults." .
20
+
21
+ apagr:AgreementCommitment a owl:Class ;
22
+ rdfs:subClassOf vf:Commitment ;
23
+ rdfs:label "AgreementCommitment" ;
24
+ rdfs:comment "On-chain commitment-only row in AgreementRegistry.sol. Body in vaults; only commitment hash + issuer + schema + status + epoch on chain. AR-12: party SA addresses never in calldata." .
25
+
26
+ apagr:AgreementCredential a owl:Class ;
27
+ rdfs:subClassOf apvc:VerifiableCredential ;
28
+ rdfs:label "AgreementCredential" ;
29
+ rdfs:comment "DOLCE+DnS Situation — the off-chain VC describing a two-party agreement. Issued by an issuer Agent (e.g. Global Church). Held in each party's PV. Per PD-22 — lives in agreements package." .
30
+
31
+ apagr:AgreementStatus a owl:Class ;
32
+ rdfs:label "AgreementStatus" ;
33
+ rdfs:comment "Status state-machine codelist: ACTIVE | COMPLETED | DISPUTED | REVOKED (per spec 241 §5.4.1)." .
34
+
35
+ # ─── Properties ───────────────────────────────────────────────────────
36
+
37
+ apagr:hasIssuer a owl:ObjectProperty ;
38
+ rdfs:domain apagr:AgreementCommitment ;
39
+ rdfs:range ap:Agent ;
40
+ rdfs:label "hasIssuer" ;
41
+ rdfs:comment "The issuer SA whose EIP-712 attestation backs the commitment." .
42
+
43
+ apagr:hasParty a owl:ObjectProperty ;
44
+ rdfs:domain apagr:AgreementCredential ;
45
+ rdfs:range ap:Agent ;
46
+ rdfs:label "hasParty" ;
47
+ rdfs:comment "The two parties to the agreement. Cardinality 2 (enforced by SHACL in agreements package)." .
48
+
49
+ apagr:agreementCommitmentHash a owl:DatatypeProperty ;
50
+ rdfs:domain apagr:AgreementCommitment ;
51
+ rdfs:range xsd:hexBinary ;
52
+ rdfs:label "agreementCommitmentHash" ;
53
+ rdfs:comment "The canonical commitment hash (per spec 241 §3 + IA §10)." .
54
+
55
+ apagr:schemaHash a owl:DatatypeProperty ;
56
+ rdfs:domain apagr:AgreementCommitment ;
57
+ rdfs:range xsd:hexBinary ;
58
+ rdfs:label "schemaHash" ;
59
+ rdfs:comment "Reference to the on-chain ShapeRegistry SHACL shape (PD-12)." .
60
+
61
+ apagr:status a owl:DatatypeProperty ;
62
+ rdfs:domain apagr:AgreementCommitment ;
63
+ rdfs:range xsd:string ;
64
+ rdfs:label "status" ;
65
+ rdfs:comment "ACTIVE | COMPLETED | DISPUTED | REVOKED. Bilateral signing for ACTIVE→COMPLETED/REVOKED; either party for ACTIVE→DISPUTED." .
66
+
67
+ apagr:createdEpochBucket a owl:DatatypeProperty ;
68
+ rdfs:domain apagr:AgreementCommitment ;
69
+ rdfs:range xsd:integer ;
70
+ rdfs:label "createdEpochBucket" ;
71
+ rdfs:comment "Creation time in EPOCH_SECONDS buckets. Raw block.timestamp never stored." .
72
+
73
+ apagr:fromIntentMatch a owl:ObjectProperty ;
74
+ rdfs:domain apagr:AgreementCommitment ;
75
+ rdfs:range apint:IntentMatch ;
76
+ rdfs:label "fromIntentMatch" ;
77
+ rdfs:comment "Optional reference to the IntentMatch (Layer 7) that produced the Commitment input." .
@@ -0,0 +1,135 @@
1
+ # T-box — attestation vocabulary (spine Layers 12–15 credential types).
2
+ # EAS-aligned per ADR-0023. Spec 225 §11.5.
3
+ # Owning runtime SHACL: packages/attestations/src/shapes/credentials.shacl.ttl.
4
+ # All credential types share AttestationRegistry.sol per ADR-0024 Decision 2
5
+ # (architectural inverse of the smart-contract-per-credential anti-pattern).
6
+
7
+ @prefix apatt: <https://agenticprimitives.dev/ns/attestation#> .
8
+ @prefix apvc: <https://agenticprimitives.dev/ns/credential#> .
9
+ @prefix apint: <https://agenticprimitives.dev/ns/intent#> .
10
+ @prefix apagr: <https://agenticprimitives.dev/ns/agreement#> .
11
+ @prefix apful: <https://agenticprimitives.dev/ns/fulfillment#> .
12
+ @prefix ap: <https://agenticprimitives.dev/ns/core#> .
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
+
18
+ apatt: a owl:Ontology ;
19
+ rdfs:label "Agentic Primitives — attestation ontology" ;
20
+ owl:versionInfo "0.1.0" ;
21
+ rdfs:comment "Credential types for layers 12–15. All share one on-chain AttestationRegistry per ADR-0024 Decision 2." .
22
+
23
+ # ─── On-chain row type ────────────────────────────────────────────────
24
+
25
+ apatt:Attestation a owl:Class ;
26
+ rdfs:subClassOf prov:Entity ;
27
+ rdfs:label "Attestation" ;
28
+ rdfs:comment "On-chain row in AttestationRegistry.sol. EAS-aligned: deterministic UID + refUID + EIP-712 + ERC-1271. Per-credential-class discrimination via credentialType. ADR-0023." .
29
+
30
+ # ─── Credential types (Layer 12: Evidence) ────────────────────────────
31
+
32
+ apatt:EvidenceCredential a owl:Class ;
33
+ rdfs:subClassOf apvc:VerifiableCredential ;
34
+ rdfs:label "EvidenceCredential" ;
35
+ rdfs:comment "Holder-asserted evidence credential bound to an Artifact. Holder-only on-chain revoke (D-18 + AR-10). Layer 12." .
36
+
37
+ # ─── Credential types (Layer 13: Outcome) ─────────────────────────────
38
+
39
+ apatt:OutcomeCredential a owl:Class ;
40
+ rdfs:subClassOf apvc:VerifiableCredential ;
41
+ rdfs:label "OutcomeCredential" ;
42
+ rdfs:comment "Outcome credential bound to an Intent. FLF-OUT-1: MUST cite at least one EvidenceCredential UID. Holder-only revoke. Layer 13." .
43
+
44
+ # ─── Credential types (Layer 14: Validation) ──────────────────────────
45
+
46
+ apatt:ValidationCredential a owl:Class ;
47
+ rdfs:subClassOf apvc:VerifiableCredential ;
48
+ rdfs:label "ValidationCredential" ;
49
+ rdfs:comment "Validator's attestation of an Outcome. Validator-type discriminated (human | agent | oracle | TEE | zkML | re-execution per ERC-8004). Validator-only revoke. Layer 14." .
50
+
51
+ apatt:Validator a owl:Class ;
52
+ rdfs:subClassOf ap:Agent ;
53
+ rdfs:label "Validator" ;
54
+ rdfs:comment "An Agent that produces ValidationCredentials. Independence requirement: validator SA ≠ executor SA." .
55
+
56
+ apatt:ValidatorKind a owl:Class ;
57
+ rdfs:label "ValidatorKind" ;
58
+ rdfs:comment "Discriminator: human | agent | oracle | TEE | zkML | re-execution." .
59
+
60
+ # ─── Credential types (Layer 15: TrustUpdate) ─────────────────────────
61
+
62
+ apatt:TrustUpdate a owl:Class ;
63
+ rdfs:subClassOf apvc:VerifiableCredential ;
64
+ rdfs:label "TrustUpdate" ;
65
+ rdfs:comment "Reputation mutation. D-40 hard substrate invariant: MUST cite at least one ValidationCredential UID. Sybil resistance via credential-cost, never KYC. Validator-only revoke. Layer 15." .
66
+
67
+ apatt:AssociationCredential a owl:Class ;
68
+ rdfs:subClassOf apvc:VerifiableCredential ;
69
+ rdfs:label "AssociationCredential" ;
70
+ rdfs:comment "Holder asserts membership/association with an issuer. Holder-only revoke. Substrate-generic; vertical instances (JpAssociationCredential, etc.) compose on top." .
71
+
72
+ # ─── Properties ───────────────────────────────────────────────────────
73
+
74
+ apatt:uid a owl:DatatypeProperty ;
75
+ rdfs:domain apatt:Attestation ;
76
+ rdfs:range xsd:hexBinary ;
77
+ rdfs:label "uid" ;
78
+ rdfs:comment "Deterministic UID per EAS pattern." .
79
+
80
+ apatt:credentialType a owl:DatatypeProperty ;
81
+ rdfs:domain apatt:Attestation ;
82
+ rdfs:range xsd:hexBinary ;
83
+ rdfs:label "credentialType" ;
84
+ rdfs:comment "keccak256 hash discriminator (AssociationCredential / EvidenceCredential / OutcomeCredential / ValidationCredential / TrustUpdate / PaymentReceipt)." .
85
+
86
+ apatt:credentialHash a owl:DatatypeProperty ;
87
+ rdfs:domain apatt:Attestation ;
88
+ rdfs:range xsd:hexBinary ;
89
+ rdfs:label "credentialHash" ;
90
+ rdfs:comment "RFC 8785 JCS canonical hash of off-chain VC body." .
91
+
92
+ apatt:refUID a owl:DatatypeProperty ;
93
+ rdfs:domain apatt:Attestation ;
94
+ rdfs:range xsd:hexBinary ;
95
+ rdfs:label "refUID" ;
96
+ rdfs:comment "EAS-style single back-pointer. Used by JointAgreement to reference AgreementCommitment." .
97
+
98
+ apatt:bilateralConsentRef a owl:DatatypeProperty ;
99
+ rdfs:domain apatt:Attestation ;
100
+ rdfs:range xsd:hexBinary ;
101
+ rdfs:label "bilateralConsentRef" ;
102
+ rdfs:comment "References signatures-bundle hash OR pinned-delegation hash for joint attestations. 0 for unilateral." .
103
+
104
+ apatt:basedOnIntent a owl:ObjectProperty ;
105
+ rdfs:domain apatt:OutcomeCredential ;
106
+ rdfs:range apint:Intent ;
107
+ rdfs:label "basedOnIntent" .
108
+
109
+ apatt:basedOnArtifact a owl:ObjectProperty ;
110
+ rdfs:domain apatt:EvidenceCredential ;
111
+ rdfs:range apful:Artifact ;
112
+ rdfs:label "basedOnArtifact" .
113
+
114
+ apatt:citesEvidence a owl:ObjectProperty ;
115
+ rdfs:domain apatt:OutcomeCredential ;
116
+ rdfs:range apatt:EvidenceCredential ;
117
+ rdfs:label "citesEvidence" ;
118
+ rdfs:comment "FLF-OUT-1: MANDATORY. At least one EvidenceCredential UID citation required." .
119
+
120
+ apatt:citesValidation a owl:ObjectProperty ;
121
+ rdfs:domain apatt:TrustUpdate ;
122
+ rdfs:range apatt:ValidationCredential ;
123
+ rdfs:label "citesValidation" ;
124
+ rdfs:comment "D-40: MANDATORY. TrustUpdate cannot precede ValidationCredential." .
125
+
126
+ apatt:validatorKind a owl:DatatypeProperty ;
127
+ rdfs:domain apatt:ValidationCredential ;
128
+ rdfs:range xsd:string ;
129
+ rdfs:label "validatorKind" .
130
+
131
+ apatt:offchainCredentialStatusList a owl:DatatypeProperty ;
132
+ rdfs:domain apatt:Attestation ;
133
+ rdfs:range xsd:anyURI ;
134
+ rdfs:label "offchainCredentialStatusList" ;
135
+ rdfs:comment "W3C VC StatusList2021 pointer. Holder revocation on-chain ≠ issuer revocation off-chain — independently meaningful." .
@@ -0,0 +1,150 @@
1
+ # T-box — constraint + assumption vocabulary (spine Layer 3).
2
+ # Anoma CSP-shaped + ERC-7683 resolver-assumption pattern.
3
+ # Spec 225 §11.5; D-38 + D-39 + D-43.
4
+ # Owning runtime SHACL: packages/intent-marketplace/src/shapes/constraints.shacl.ttl.
5
+
6
+ @prefix ap: <https://agenticprimitives.dev/ns/core#> .
7
+ @prefix apcst: <https://agenticprimitives.dev/ns/constraint#> .
8
+ @prefix apint: <https://agenticprimitives.dev/ns/intent#> .
9
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
10
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
11
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
12
+ @prefix prov: <http://www.w3.org/ns/prov#> .
13
+
14
+ apcst: a owl:Ontology ;
15
+ rdfs:label "Agentic Primitives — constraint + assumption ontology" ;
16
+ owl:versionInfo "0.1.0" ;
17
+ rdfs:comment "First-class typed constraints (Anoma CSP-shape) + resolver-assumption set (ERC-7683 parallel). Spec 225 §11.5." .
18
+
19
+ # ─── ConstraintSet classes ────────────────────────────────────────────
20
+
21
+ apcst:ConstraintSet a owl:Class ;
22
+ rdfs:label "ConstraintSet" ;
23
+ rdfs:comment "A typed bag of Constraints (hard + soft) + per-field DisclosurePolicy. CSP-shaped. NOT freeform payload (D-38)." .
24
+
25
+ apcst:Constraint a owl:Class ;
26
+ rdfs:label "Constraint" ;
27
+ rdfs:comment "A single typed constraint: variable + domain + source + rationale. Discriminated by domain.kind." .
28
+
29
+ apcst:HardConstraint a owl:Class ;
30
+ rdfs:subClassOf apcst:Constraint ;
31
+ rdfs:label "HardConstraint" ;
32
+ rdfs:comment "Enforceable invariant; matchmaker MUST reject if violated." .
33
+
34
+ apcst:SoftConstraint a owl:Class ;
35
+ rdfs:subClassOf apcst:Constraint ;
36
+ rdfs:label "SoftConstraint" ;
37
+ rdfs:comment "Scorer preference; contributes to composite score (per spec 239 §7.2)." .
38
+
39
+ # ─── Constraint domain classes (CSP-shaped) ───────────────────────────
40
+
41
+ apcst:ConstraintDomain a owl:Class ;
42
+ rdfs:label "ConstraintDomain" ;
43
+ rdfs:comment "Abstract CSP domain. Subclasses: EnumDomain, RangeDomain, SetDomain, PredicateDomain." .
44
+
45
+ apcst:EnumDomain a owl:Class ;
46
+ rdfs:subClassOf apcst:ConstraintDomain ;
47
+ rdfs:label "EnumDomain" ;
48
+ rdfs:comment "Constraint domain over a fixed enumeration of allowed string values." .
49
+
50
+ apcst:RangeDomain a owl:Class ;
51
+ rdfs:subClassOf apcst:ConstraintDomain ;
52
+ rdfs:label "RangeDomain" ;
53
+ rdfs:comment "Constraint domain over a numeric/temporal range [min, max] in a named unit." .
54
+
55
+ apcst:SetDomain a owl:Class ;
56
+ rdfs:subClassOf apcst:ConstraintDomain ;
57
+ rdfs:label "SetDomain" ;
58
+ rdfs:comment "Constraint domain over an allowed-set (optionally with a denied-set)." .
59
+
60
+ apcst:PredicateDomain a owl:Class ;
61
+ rdfs:subClassOf apcst:ConstraintDomain ;
62
+ rdfs:label "PredicateDomain" ;
63
+ rdfs:comment "Constraint domain expressed as a SHACL or JSONPath predicate body." .
64
+
65
+ # ─── AssumptionSet classes (ERC-7683 parallel) ────────────────────────
66
+
67
+ apcst:AssumptionSet a owl:Class ;
68
+ rdfs:label "AssumptionSet" ;
69
+ rdfs:comment "Resolver-asserted assumptions + risks + required validations. Solvers MUST validate before bidding. ERC-7683 pattern." .
70
+
71
+ apcst:NamedAssumption a owl:Class ;
72
+ rdfs:label "NamedAssumption" ;
73
+ rdfs:comment "A specific resolver assumption: name + trustLevel + optional evidence ref." .
74
+
75
+ apcst:ValidationRequirement a owl:Class ;
76
+ rdfs:label "ValidationRequirement" ;
77
+ rdfs:comment "Something that MUST be validated before commitment / payment / fulfillment. Links to Layer 14 (Validation)." .
78
+
79
+ # ─── Properties ───────────────────────────────────────────────────────
80
+
81
+ apcst:variable a owl:DatatypeProperty ;
82
+ rdfs:domain apcst:Constraint ;
83
+ rdfs:range xsd:string ;
84
+ rdfs:label "variable" ;
85
+ rdfs:comment "The CSP variable name (e.g. 'geo', 'requiredCredential', 'capacity')." .
86
+
87
+ apcst:domain a owl:ObjectProperty ;
88
+ rdfs:domain apcst:Constraint ;
89
+ rdfs:range apcst:ConstraintDomain ;
90
+ rdfs:label "domain" .
91
+
92
+ apcst:source a owl:DatatypeProperty ;
93
+ rdfs:domain apcst:Constraint ;
94
+ rdfs:range xsd:string ;
95
+ rdfs:label "source" ;
96
+ rdfs:comment "Constraint source provenance (D-43): 'user-asserted' | 'llm-inferred' | 'policy-imposed'. Inferred + sensitive constraints redactable before publication." .
97
+
98
+ apcst:rationale a owl:DatatypeProperty ;
99
+ rdfs:domain apcst:Constraint ;
100
+ rdfs:range xsd:string ;
101
+ rdfs:label "rationale" ;
102
+ rdfs:comment "Human-readable explanation (esp. for llm-inferred / policy-imposed constraints)." .
103
+
104
+ apcst:strength a owl:DatatypeProperty ;
105
+ rdfs:domain apcst:Constraint ;
106
+ rdfs:range xsd:string ;
107
+ rdfs:label "strength" ;
108
+ rdfs:comment "'hard' | 'soft' — discriminator for HardConstraint vs SoftConstraint subclassing." .
109
+
110
+ apcst:enforcement a owl:DatatypeProperty ;
111
+ rdfs:domain apcst:Constraint ;
112
+ rdfs:range xsd:string ;
113
+ rdfs:label "enforcement" ;
114
+ rdfs:comment "Where the constraint is enforced: 'pre-execution' | 'agreement' | 'ranking' (per AI-engagement-model semantic-caveats pattern)." .
115
+
116
+ apcst:fieldDisclosure a owl:DatatypeProperty ;
117
+ rdfs:domain apcst:ConstraintSet ;
118
+ rdfs:range xsd:string ;
119
+ rdfs:label "fieldDisclosure" ;
120
+ rdfs:comment "JSON-encoded { fieldPath → VisibilityTier } map. Per-field DisclosurePolicy (D-42)." .
121
+
122
+ apcst:resolverId a owl:DatatypeProperty ;
123
+ rdfs:domain apcst:AssumptionSet ;
124
+ rdfs:range xsd:string ;
125
+ rdfs:label "resolverId" ;
126
+ rdfs:comment "The Resolver agent's identifier (version-pinned)." .
127
+
128
+ apcst:trustLevel a owl:DatatypeProperty ;
129
+ rdfs:domain apcst:NamedAssumption ;
130
+ rdfs:range xsd:string ;
131
+ rdfs:label "trustLevel" ;
132
+ rdfs:comment "'asserted' | 'verified' | 'oracle' | 'zkp'." .
133
+
134
+ apcst:risk a owl:DatatypeProperty ;
135
+ rdfs:domain apcst:NamedAssumption ;
136
+ rdfs:range xsd:string ;
137
+ rdfs:label "risk" ;
138
+ rdfs:comment "Human-readable risk tag (e.g. 'inventory', 'sla', 'merchant-trust')." .
139
+
140
+ apcst:evidenceRef a owl:ObjectProperty ;
141
+ rdfs:domain apcst:NamedAssumption ;
142
+ rdfs:range prov:Entity ;
143
+ rdfs:label "evidenceRef" ;
144
+ rdfs:comment "Optional pointer to a VC / attestation backing the assumption." .
145
+
146
+ apcst:expiresAt a owl:DatatypeProperty ;
147
+ rdfs:domain apcst:NamedAssumption ;
148
+ rdfs:range xsd:dateTime ;
149
+ rdfs:label "expiresAt" ;
150
+ rdfs:comment "Assumption validity expiration. Downstream consumers MUST recheck if expired." .
@@ -0,0 +1,140 @@
1
+ # T-box — fulfillment vocabulary (spine Layers 10–12).
2
+ # A2A Task + Message + Artifact aligned; spec 244 + spec 245.
3
+ # Spec 225 §11.5.
4
+ # Owning runtime SHACL: packages/fulfillment/src/shapes/fulfillment.shacl.ttl.
5
+
6
+ @prefix apful: <https://agenticprimitives.dev/ns/fulfillment#> .
7
+ @prefix apagr: <https://agenticprimitives.dev/ns/agreement#> .
8
+ @prefix appay: <https://agenticprimitives.dev/ns/payment#> .
9
+ @prefix apvc: <https://agenticprimitives.dev/ns/credential#> .
10
+ @prefix ap: <https://agenticprimitives.dev/ns/core#> .
11
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
12
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
13
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
14
+ @prefix prov: <http://www.w3.org/ns/prov#> .
15
+
16
+ apful: a owl:Ontology ;
17
+ rdfs:label "Agentic Primitives — fulfillment ontology" ;
18
+ owl:versionInfo "0.1.0" ;
19
+ rdfs:comment "Layers 10–12 of the spine. FulfillmentCase + Task + Message + Artifact + HandoffPolicy + IntentTraceSpan." .
20
+
21
+ # ─── Operational containers (Layer 10) ────────────────────────────────
22
+
23
+ apful:FulfillmentCase a owl:Class ;
24
+ rdfs:subClassOf prov:Activity ;
25
+ rdfs:label "FulfillmentCase" ;
26
+ rdfs:comment "Operational container per-Agreement. Lifecycle: drafted → clarified → expressed → acknowledged → proposed → accepted → committed → in_progress → fulfilled → validated → archived. FLF-INV-01: lifecycle synced with AgreementRegistry status." .
27
+
28
+ apful:FulfillmentTopology a owl:Class ;
29
+ rdfs:label "FulfillmentTopology" ;
30
+ rdfs:comment "Task composition discriminator: 'linear' | 'parallel' | 'dag'." .
31
+
32
+ # ─── Tasks (Layer 11; A2A-canonical) ──────────────────────────────────
33
+
34
+ apful:Task a owl:Class ;
35
+ rdfs:subClassOf prov:Activity ;
36
+ rdfs:label "Task" ;
37
+ rdfs:comment "Executable unit of work inside a FulfillmentCase. A2A state machine: submitted | working | completed | failed | canceled | input-required | rejected | auth-required. Spec 245 + spec 244 §5." .
38
+
39
+ apful:HandoffPolicy a owl:Class ;
40
+ rdfs:label "HandoffPolicy" ;
41
+ rdfs:comment "First-class authority binding for cross-agent handoffs. allowedTargets + allowedClasses + requiresUserApproval + preservePrivacyTier + allowedScopes + maxHopCount. FLF-6." .
42
+
43
+ # ─── Communication vs deliverables (Layer 12 separation) ─────────────
44
+
45
+ apful:Message a owl:Class ;
46
+ rdfs:label "Message" ;
47
+ rdfs:comment "A2A-style communication artifact. Bodies in JV per D-46.1. A2A-INV-04 + FLF-INV-04: NEVER in public registry." .
48
+
49
+ apful:Artifact a owl:Class ;
50
+ rdfs:subClassOf prov:Entity ;
51
+ rdfs:label "Artifact" ;
52
+ rdfs:comment "A2A-style deliverable. Hash-anchored; body in vault. FLF-INV-05: bodies vault-resident; only hashes in registry. Promotable to EvidenceCredential." .
53
+
54
+ apful:ArtifactKind a owl:Class ;
55
+ rdfs:label "ArtifactKind" ;
56
+ rdfs:comment "Kind discriminator: document | signed-tx | validation-report | receipt | summary | proof | generated-file | attestation | custom." .
57
+
58
+ # ─── Provenance tree (cross-cutting, Decision 7 of ADR-0024) ─────────
59
+
60
+ apful:IntentTraceSpan a owl:Class ;
61
+ rdfs:subClassOf prov:Activity ;
62
+ rdfs:label "IntentTraceSpan" ;
63
+ rdfs:comment "Typed trace span emitted on layer-cross transitions. Parent/child tree forms case audit (FLF-INV-15). spanType: parse | clarify | resolve | match | handoff | tool_call | wallet_simulation | user_approval | execution | validation | task_state_change | lifecycle_transition." .
64
+
65
+ # ─── Properties ───────────────────────────────────────────────────────
66
+
67
+ apful:hasParentAgreement a owl:ObjectProperty ;
68
+ rdfs:domain apful:FulfillmentCase ;
69
+ rdfs:range apagr:AgreementCommitment ;
70
+ rdfs:label "hasParentAgreement" .
71
+
72
+ apful:topology a owl:DatatypeProperty ;
73
+ rdfs:domain apful:FulfillmentCase ;
74
+ rdfs:range xsd:string ;
75
+ rdfs:label "topology" .
76
+
77
+ apful:taskState a owl:DatatypeProperty ;
78
+ rdfs:domain apful:Task ;
79
+ rdfs:range xsd:string ;
80
+ rdfs:label "taskState" ;
81
+ rdfs:comment "A2A canonical states. FLF-INV-13: no backward transitions except input-required→working and auth-required→submitted." .
82
+
83
+ apful:assignee a owl:ObjectProperty ;
84
+ rdfs:domain apful:Task ;
85
+ rdfs:range ap:Agent ;
86
+ rdfs:label "assignee" .
87
+
88
+ apful:assigneeKind a owl:DatatypeProperty ;
89
+ rdfs:domain apful:Task ;
90
+ rdfs:range xsd:string ;
91
+ rdfs:label "assigneeKind" ;
92
+ rdfs:comment "'person' | 'org' | 'agent' | 'oracle' | 'hybrid'." .
93
+
94
+ apful:permissionGrantRef a owl:DatatypeProperty ;
95
+ rdfs:domain apful:Task ;
96
+ rdfs:range xsd:string ;
97
+ rdfs:label "permissionGrantRef" ;
98
+ rdfs:comment "FLF-INV-02: every Task has an authorizing delegation reference." .
99
+
100
+ apful:paymentMandateRef a owl:ObjectProperty ;
101
+ rdfs:domain apful:Task ;
102
+ rdfs:range appay:PaymentMandate ;
103
+ rdfs:label "paymentMandateRef" ;
104
+ rdfs:comment "FLF-INV-11: payment mandate bound to this task via PMT-3 context binding (taskId)." .
105
+
106
+ apful:sender a owl:ObjectProperty ;
107
+ rdfs:domain apful:Message ;
108
+ rdfs:range ap:Agent ;
109
+ rdfs:label "sender" .
110
+
111
+ apful:bodyRef a owl:DatatypeProperty ;
112
+ rdfs:domain apful:Message ;
113
+ rdfs:range xsd:anyURI ;
114
+ rdfs:label "bodyRef" .
115
+
116
+ apful:bodyHash a owl:DatatypeProperty ;
117
+ rdfs:domain apful:Artifact ;
118
+ rdfs:range xsd:hexBinary ;
119
+ rdfs:label "bodyHash" .
120
+
121
+ apful:artifactKind a owl:DatatypeProperty ;
122
+ rdfs:domain apful:Artifact ;
123
+ rdfs:range xsd:string ;
124
+ rdfs:label "artifactKind" .
125
+
126
+ apful:disclosurePolicy a owl:DatatypeProperty ;
127
+ rdfs:domain apful:Artifact ;
128
+ rdfs:range xsd:string ;
129
+ rdfs:label "disclosurePolicy" ;
130
+ rdfs:comment "Per-field DisclosurePolicy (D-42). JSON-encoded." .
131
+
132
+ apful:spanType a owl:DatatypeProperty ;
133
+ rdfs:domain apful:IntentTraceSpan ;
134
+ rdfs:range xsd:string ;
135
+ rdfs:label "spanType" .
136
+
137
+ apful:parentSpan a owl:ObjectProperty ;
138
+ rdfs:domain apful:IntentTraceSpan ;
139
+ rdfs:range apful:IntentTraceSpan ;
140
+ rdfs:label "parentSpan" .
package/tbox/geo.ttl ADDED
@@ -0,0 +1,28 @@
1
+ # T-box — generic geo substrate (spec 251). The geo FEATURE is a public on-chain
2
+ # definition (GeoFeatureRegistry; geometry hash + roots + coarse bbox, exact GeoJSON off
3
+ # chain). The geo CLAIM (agent↔feature association) is an off-chain vault credential.
4
+ # NEUTRAL public geography only — never operational/sensitivity data on chain; no on-chain
5
+ # skill↔geo mapping.
6
+
7
+ @prefix apg: <https://agenticprimitives.dev/ns/geo#> .
8
+ @prefix ap: <https://agenticprimitives.dev/ns/core#> .
9
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
10
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
11
+
12
+ apg:GeoFeature a rdfs:Class ;
13
+ rdfs:label "GeoFeature" ;
14
+ rdfs:comment "A versioned, PUBLIC, generic geographic feature. Anchored on chain by GeoFeatureRegistry (geometryHash + coverage/source roots + coarse bbox; exact geometry off chain via metadataURI). Neutral public geography only." .
15
+
16
+ apg:GeoClaim a rdfs:Class ;
17
+ rdfs:label "GeoClaim" ;
18
+ rdfs:comment "An OFF-CHAIN verifiable credential asserting a subject Smart Agent's relation to an apg:GeoFeature (pinned featureId+version). Private vault credential; the association is NEVER on chain (it would leak operational data)." .
19
+
20
+ apg:featureId a rdf:Property ; rdfs:domain apg:GeoClaim ; rdfs:range apg:GeoFeature ;
21
+ rdfs:comment "The on-chain (featureId, version) this claim credential references." .
22
+ apg:hasGeoKind a rdf:Property ; rdfs:domain apg:GeoFeature ;
23
+ rdfs:comment "An apg:geoKind value (C-box codelist; on-chain-bound)." .
24
+ apg:geometryHash a rdf:Property ; rdfs:domain apg:GeoFeature ;
25
+ rdfs:comment "keccak256 of the canonical GeoJSON (which lives off chain)." .
26
+ apg:claimSubject a rdf:Property ; rdfs:domain apg:GeoClaim ; rdfs:range ap:CanonicalAgentId .
27
+ apg:claimRelation a rdf:Property ; rdfs:domain apg:GeoClaim ;
28
+ rdfs:comment "An apg:geoRelation value (C-box codelist)." .
@@ -0,0 +1,137 @@
1
+ # T-box — intent vocabulary (spine Layer 2 + 7).
2
+ # Anoma CSP alignment + ERC-7521 + UFO-C/ValueFlows.
3
+ # Spec 225 §11.5 (substrate spine vocabulary scope expansion).
4
+ # Owning runtime SHACL shapes: packages/intent-marketplace/src/shapes/ (PD-19).
5
+
6
+ @prefix ap: <https://agenticprimitives.dev/ns/core#> .
7
+ @prefix apint: <https://agenticprimitives.dev/ns/intent#> .
8
+ @prefix apcst: <https://agenticprimitives.dev/ns/constraint#> .
9
+ @prefix apres: <https://agenticprimitives.dev/ns/resolution#> .
10
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
11
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
12
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
13
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
14
+ @prefix prov: <http://www.w3.org/ns/prov#> .
15
+ @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
16
+ @prefix vf: <https://w3id.org/valueflows#> .
17
+ @prefix ufo-c: <http://purl.org/nemo/ufo-c#> .
18
+
19
+ apint: a owl:Ontology ;
20
+ rdfs:label "Agentic Primitives — intent ontology" ;
21
+ owl:versionInfo "0.1.0" ;
22
+ rdfs:comment "T-box for the intent-marketplace substrate. Anoma CSP-aligned + ERC-7521 + ERC-7683 + UFO-C/ValueFlows. Spec 225 §11.5." .
23
+
24
+ # ─── Intent + lifecycle classes ────────────────────────────────────────
25
+
26
+ apint:Desire a owl:Class ;
27
+ rdfs:subClassOf ufo-c:Intention ;
28
+ rdfs:label "Desire" ;
29
+ rdfs:comment "An actor's latent want — internal BDI state. NOT addressable; NOT a commitment. Becomes actionable only when committed to an Intent. Layer 1 of the spine; out-of-scope for W1 substrate (engagement plane only)." .
30
+
31
+ apint:Intent a owl:Class ;
32
+ rdfs:subClassOf ufo-c:Intention , vf:Intent ;
33
+ rdfs:label "Intent" ;
34
+ rdfs:comment "An actor's signed declarative statement of a desired end-state — direction + object (SKOS) + topic + constraints + expectedOutcome. NOT a plan; not a transaction; not a task. CSP-shaped per Anoma alignment. Layer 2 of the spine." .
35
+
36
+ apint:ReceiveIntent a owl:Class ;
37
+ rdfs:subClassOf apint:Intent ;
38
+ rdfs:label "ReceiveIntent" ;
39
+ rdfs:comment "Intent with direction='receive': actor wants to be the recipient of the object." .
40
+
41
+ apint:GiveIntent a owl:Class ;
42
+ rdfs:subClassOf apint:Intent ;
43
+ rdfs:label "GiveIntent" ;
44
+ rdfs:comment "Intent with direction='give': actor wants to be the provider of the object." .
45
+
46
+ apint:MatchInitiation a owl:Class ;
47
+ rdfs:subClassOf prov:Activity ;
48
+ rdfs:label "MatchInitiation" ;
49
+ rdfs:comment "A broker's act of initiating a match between two compatible Intents. Distinct from IntentMatch (the accepted relation). Smart-agent SS-03 invariant." .
50
+
51
+ apint:IntentMatch a owl:Class ;
52
+ rdfs:subClassOf prov:Activity ;
53
+ rdfs:label "IntentMatch" ;
54
+ rdfs:comment "An accepted compatibility relation between two Intents. Layer 7 of the spine. Smart-agent SS-02 invariant: both parties signal acceptance before promotion." .
55
+
56
+ apint:Commitment a owl:Class ;
57
+ rdfs:subClassOf vf:Commitment ;
58
+ rdfs:label "Commitment" ;
59
+ rdfs:comment "A dual-signed envelope produced from an IntentMatch; the input to the Agreement layer (spec 241). Layer 7→8 bridge." .
60
+
61
+ apint:Proposal a owl:Class ;
62
+ rdfs:subClassOf prov:Entity ;
63
+ rdfs:label "Proposal" ;
64
+ rdfs:comment "A signed candidate solution to an expressed Intent. UniswapX-Order / CoW-Order-book-entry shape. Layer 5 of the spine. Pool Lane (W2)." .
65
+
66
+ apint:SolverBid a owl:Class ;
67
+ rdfs:subClassOf apint:Proposal ;
68
+ rdfs:label "SolverBid" ;
69
+ rdfs:comment "A solver's competitive bid + match score + reason + predicted outcome + cost estimate + trust certificate. Layer 6 of the spine. CoW / UniswapX / ERC-7683 solver competition. Pool/Proposal Lane (W2)." .
70
+
71
+ # ─── Intent properties ────────────────────────────────────────────────
72
+
73
+ apint:direction a owl:DatatypeProperty ;
74
+ rdfs:domain apint:Intent ;
75
+ rdfs:range xsd:string ;
76
+ rdfs:label "direction" ;
77
+ rdfs:comment "'receive' or 'give'. Single-class on Intent (Smart-agent SS-01 invariant). Matching rule: direction MUST be opposite + object MUST be equal." .
78
+
79
+ apint:object a owl:ObjectProperty ;
80
+ rdfs:domain apint:Intent ;
81
+ rdfs:range skos:Concept ;
82
+ rdfs:label "object" ;
83
+ rdfs:comment "The SKOS concept (e.g. apint:NeedCoaching) describing WHAT is wanted/offered. Matching rule: must be exactly equal between matched pair." .
84
+
85
+ apint:topic a owl:DatatypeProperty ;
86
+ rdfs:domain apint:Intent ;
87
+ rdfs:range xsd:string ;
88
+ rdfs:label "topic" ;
89
+ rdfs:comment "Free-text topic refinement; matched by topicSimilarity score (not equality)." .
90
+
91
+ apint:expressedBy a owl:ObjectProperty ;
92
+ rdfs:domain apint:Intent ;
93
+ rdfs:range ap:Agent ;
94
+ rdfs:label "expressedBy" ;
95
+ rdfs:comment "The Agent SA address that signed the Intent." .
96
+
97
+ apint:addressedTo a owl:ObjectProperty ;
98
+ rdfs:domain apint:Intent ;
99
+ rdfs:range ap:Agent ;
100
+ rdfs:label "addressedTo" ;
101
+ rdfs:comment "The intended recipients/audience of the Intent (broker, counterparty class, etc.)." .
102
+
103
+ apint:hasConstraintSet a owl:ObjectProperty ;
104
+ rdfs:domain apint:Intent ;
105
+ rdfs:range apcst:ConstraintSet ;
106
+ rdfs:label "hasConstraintSet" ;
107
+ rdfs:comment "Anoma-CSP-shaped constraints. First-class typed structure, NOT freeform payload (D-38)." .
108
+
109
+ apint:hasAssumptionSet a owl:ObjectProperty ;
110
+ rdfs:domain apint:Intent ;
111
+ rdfs:range apcst:AssumptionSet ;
112
+ rdfs:label "hasAssumptionSet" ;
113
+ rdfs:comment "Resolver-asserted assumptions (ERC-7683 pattern). Solvers MUST validate before bidding." .
114
+
115
+ apint:expectedOutcome a owl:ObjectProperty ;
116
+ rdfs:domain apint:Intent ;
117
+ rdfs:range prov:Entity ;
118
+ rdfs:label "expectedOutcome" ;
119
+ rdfs:comment "What success looks like — referenced when constructing OutcomeCredential at Layer 13." .
120
+
121
+ apint:visibility a owl:DatatypeProperty ;
122
+ rdfs:domain apint:Intent ;
123
+ rdfs:range xsd:string ;
124
+ rdfs:label "visibility" ;
125
+ rdfs:comment "Five-tier visibility: Public | PublicCoarse | PrivateCommitment | PrivateZK | OffchainOnly. Per privacy doc §4 Layer 2." .
126
+
127
+ apint:status a owl:DatatypeProperty ;
128
+ rdfs:domain apint:Intent ;
129
+ rdfs:range xsd:string ;
130
+ rdfs:label "status" ;
131
+ rdfs:comment "Intent state-machine status (per spec 239 §5)." .
132
+
133
+ apint:matchedWith a owl:ObjectProperty ;
134
+ rdfs:domain apint:IntentMatch ;
135
+ rdfs:range apint:Intent ;
136
+ rdfs:label "matchedWith" ;
137
+ rdfs:comment "An IntentMatch links exactly two compatible Intents (cardinality 2; enforced by SHACL in intent-marketplace)." .