@agenticprimitives/ontology 1.0.0-alpha.4 → 1.0.0-alpha.41
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 +59 -21
- package/cbox/agent-facet-shapes.shacl.ttl +130 -0
- package/cbox/capability-catalog-shapes.shacl.ttl +284 -0
- package/cbox/card-projection-shapes.shacl.ttl +216 -0
- package/cbox/consultation-shapes.shacl.ttl +85 -0
- package/cbox/content-vocabulary.ttl +52 -0
- package/cbox/controlled-vocabularies.ttl +224 -4
- package/cbox/discovery-graph-shapes.shacl.ttl +284 -0
- package/cbox/familyoffice-shapes.shacl.ttl +92 -0
- package/cbox/familyoffice-vocabulary.ttl +48 -0
- package/cbox/geo-vocabulary.ttl +36 -0
- package/cbox/guidance-vocabulary.ttl +22 -0
- package/cbox/interaction-shapes.shacl.ttl +218 -0
- package/cbox/interaction-vocabulary.ttl +159 -0
- package/cbox/judgment-shapes.shacl.ttl +83 -0
- package/cbox/naming-registry-shapes.shacl.ttl +272 -0
- package/cbox/org-team-shapes.shacl.ttl +184 -0
- package/cbox/privacy-credential-shapes.shacl.ttl +187 -0
- package/cbox/profile-facet-vocabulary.ttl +50 -0
- package/cbox/registry-vocabulary.ttl +86 -0
- package/cbox/run-measures-shapes.shacl.ttl +59 -0
- package/cbox/run-provenance-shapes.shacl.ttl +264 -0
- package/cbox/scope-vocabulary.ttl +112 -0
- package/cbox/skill-grounding-vocabulary.ttl +18 -0
- package/cbox/skill-vocabulary.ttl +50 -0
- package/context.jsonld +37 -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 +9 -2
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +153 -2
- 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/evaluation-context.d.ts +134 -0
- package/dist/evaluation-context.d.ts.map +1 -0
- package/dist/evaluation-context.js +136 -0
- package/dist/evaluation-context.js.map +1 -0
- package/dist/governance.d.ts +84 -0
- package/dist/governance.d.ts.map +1 -0
- package/dist/governance.js +88 -0
- package/dist/governance.js.map +1 -0
- package/dist/grounded-vocabulary.d.ts +29 -0
- package/dist/grounded-vocabulary.d.ts.map +1 -0
- package/dist/grounded-vocabulary.js +110 -0
- package/dist/grounded-vocabulary.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 +1091 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1323 -5
- package/dist/index.js.map +1 -1
- package/dist/outcomes.d.ts +47 -0
- package/dist/outcomes.d.ts.map +1 -0
- package/dist/outcomes.js +40 -0
- package/dist/outcomes.js.map +1 -0
- package/dist/participant-vocabulary.d.ts +57 -0
- package/dist/participant-vocabulary.d.ts.map +1 -0
- package/dist/participant-vocabulary.js +66 -0
- package/dist/participant-vocabulary.js.map +1 -0
- package/dist/party-roles.d.ts +115 -0
- package/dist/party-roles.d.ts.map +1 -0
- package/dist/party-roles.js +343 -0
- package/dist/party-roles.js.map +1 -0
- package/dist/payload-classes.d.ts +22 -0
- package/dist/payload-classes.d.ts.map +1 -0
- package/dist/payload-classes.js +30 -0
- package/dist/payload-classes.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/principles.generated.d.ts +11 -0
- package/dist/principles.generated.d.ts.map +1 -0
- package/dist/principles.generated.js +293 -0
- package/dist/principles.generated.js.map +1 -0
- package/dist/published-works.d.ts +13 -0
- package/dist/published-works.d.ts.map +1 -0
- package/dist/published-works.js +18 -0
- package/dist/published-works.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-measures-context.d.ts +74 -0
- package/dist/run-measures-context.d.ts.map +1 -0
- package/dist/run-measures-context.js +77 -0
- package/dist/run-measures-context.js.map +1 -0
- package/dist/run-provenance-context.d.ts +315 -0
- package/dist/run-provenance-context.d.ts.map +1 -0
- package/dist/run-provenance-context.js +323 -0
- package/dist/run-provenance-context.js.map +1 -0
- package/dist/transitions.d.ts +42 -0
- package/dist/transitions.d.ts.map +1 -0
- package/dist/transitions.js +100 -0
- package/dist/transitions.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 +777 -0
- package/dist/vault-records.js.map +1 -0
- package/dist/versions.generated.d.ts +262 -0
- package/dist/versions.generated.d.ts.map +1 -0
- package/dist/versions.generated.js +318 -0
- package/dist/versions.generated.js.map +1 -0
- package/evaluation.jsonld +133 -0
- package/mappings/actor-context-standards.ttl +89 -0
- package/mappings/agent-discovery-standards.ttl +127 -0
- package/mappings/collaboration-crosswalk-actors.ttl +30 -0
- package/mappings/collaboration-crosswalk-authority.ttl +31 -0
- package/mappings/collaboration-crosswalk-guidance.ttl +29 -0
- package/mappings/collaboration-crosswalk-intent.ttl +29 -0
- package/mappings/collaboration-crosswalk-messaging.ttl +37 -0
- package/mappings/collaboration-crosswalk-organization.ttl +66 -0
- package/mappings/collaboration-crosswalk-protocols.ttl +49 -0
- package/mappings/collaboration-crosswalk-skills.ttl +50 -0
- package/mappings/collaboration-profile.ttl +82 -0
- package/mappings/commerce-engagement-crosswalk.ttl +83 -0
- package/mappings/spine-standards.ttl +83 -0
- package/package.json +31 -9
- package/run-measures.jsonld +34 -0
- package/run-provenance.jsonld +314 -0
- package/tbox/actor-context.ttl +145 -0
- package/tbox/agent-resolution.ttl +308 -0
- package/tbox/agreement.ttl +77 -0
- package/tbox/attestation.ttl +156 -0
- package/tbox/card-projection.ttl +350 -0
- package/tbox/constraints.ttl +150 -0
- package/tbox/contact.ttl +61 -0
- package/tbox/content.ttl +76 -0
- package/tbox/context.ttl +508 -0
- package/tbox/coordination.ttl +263 -0
- package/tbox/core.ttl +325 -7
- package/tbox/dcat-imports.ttl +19 -0
- package/tbox/discovery.ttl +273 -0
- package/tbox/dqv-imports.ttl +29 -0
- package/tbox/earl-imports.ttl +32 -0
- package/tbox/engagement.ttl +349 -0
- package/tbox/entitlement.ttl +41 -0
- package/tbox/estate.ttl +78 -0
- package/tbox/evaluation.ttl +330 -0
- package/tbox/execution.ttl +720 -0
- package/tbox/familyoffice.ttl +87 -0
- package/tbox/fulfillment.ttl +140 -0
- package/tbox/geo.ttl +28 -0
- package/tbox/governance.ttl +67 -0
- package/tbox/guidance.ttl +40 -0
- package/tbox/household.ttl +142 -0
- package/tbox/identity.ttl +133 -6
- package/tbox/inference.ttl +177 -0
- package/tbox/intents.ttl +241 -0
- package/tbox/interaction.ttl +297 -0
- package/tbox/messaging.ttl +244 -0
- package/tbox/naming.ttl +114 -0
- package/tbox/org.ttl +410 -0
- package/tbox/payload.ttl +94 -0
- package/tbox/payment.ttl +124 -0
- package/tbox/plan.ttl +169 -0
- package/tbox/principles.ttl +212 -0
- package/tbox/privacy-credential.ttl +436 -0
- package/tbox/profile.ttl +107 -0
- package/tbox/prov-imports.ttl +73 -0
- package/tbox/registry.ttl +382 -0
- package/tbox/resolution.ttl +108 -0
- package/tbox/scope.ttl +59 -0
- package/tbox/security-exposure.ttl +102 -0
- package/tbox/situation.ttl +56 -0
- package/tbox/skills.ttl +316 -0
- package/tbox/skos-imports.ttl +54 -0
- package/tbox/transition.ttl +63 -0
- package/tbox/trust.ttl +210 -0
- package/tbox/values.ttl +81 -0
- package/tbox/verification-receipt.ttl +134 -0
- package/versions.adoption.json +173 -0
|
@@ -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 .
|
|
@@ -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." .
|
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/content.ttl
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# T-box — generic verifiable-content substrate (spec 266). Names, resolves, and
|
|
2
|
+
# verifies CONTENT that lives off-platform and is controlled by third-party rights
|
|
3
|
+
# holders. NEUTRAL substrate — NO domain/faith/vertical vocabulary (ADR-0033 R4).
|
|
4
|
+
#
|
|
5
|
+
# FRBR-aligned: CanonicalLocus = Work (edition-independent coordinate, scheme-
|
|
6
|
+
# anchored, never an Agent); CorpusManifest = Expression/Manifestation (issuer-
|
|
7
|
+
# owned, committed); ContentDescriptor = Item (the deliverable leaf — points AT
|
|
8
|
+
# off-chain text, NEVER contains it; ADR-0033 R3).
|
|
9
|
+
|
|
10
|
+
@prefix apcnt: <https://agenticprimitives.dev/ns/content#> .
|
|
11
|
+
@prefix ap: <https://agenticprimitives.dev/ns/core#> .
|
|
12
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
13
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
14
|
+
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
|
15
|
+
|
|
16
|
+
apcnt:CanonicalLocus a rdfs:Class ;
|
|
17
|
+
rdfs:label "CanonicalLocus" ;
|
|
18
|
+
rdfs:comment "FRBR Work. An edition-independent coordinate into a structured corpus (a passage address). Identified by a deterministic locusId computed from a normalized (scheme, path) reference. SCHEME-anchored: never registered, never an Agent, has no owner (ADR-0033)." .
|
|
19
|
+
|
|
20
|
+
apcnt:CorpusManifest a rdfs:Class ;
|
|
21
|
+
rdfs:label "CorpusManifest" ;
|
|
22
|
+
rdfs:comment "FRBR Expression/Manifestation. A versioned body of renderings published by an issuer Smart Agent, committed by a Merkle corpusRoot + a signed manifestHash. Public anchor; the rendering text stays off-platform." .
|
|
23
|
+
|
|
24
|
+
apcnt:ContentDescriptor a rdfs:Class ;
|
|
25
|
+
rdfs:label "ContentDescriptor" ;
|
|
26
|
+
rdfs:comment "FRBR Item. The deliverable trust leaf for one (corpus, locus): commitment + retrievalPointer + issuer signature + access policy. Points AT off-chain text; NEVER contains it (ADR-0033 R3). Trust = issuer signature, not platform claim (R5)." .
|
|
27
|
+
|
|
28
|
+
apcnt:CitationAssertion a rdfs:Class ;
|
|
29
|
+
rdfs:label "CitationAssertion" ;
|
|
30
|
+
rdfs:comment "A provenance credential: a party cited a locus from a corpus, the rendering commitment matched, under a given entitlement. The AI-safe citation record (W3C VC 2.0 + PROV-O)." .
|
|
31
|
+
|
|
32
|
+
apcnt:Entitlement a rdfs:Class ;
|
|
33
|
+
rdfs:label "Entitlement" ;
|
|
34
|
+
rdfs:comment "A credential asserting a subject Smart Agent may access a corpus under stated terms. Gates the resolve/retrieve path for licensed/private corpora; optional for public ones." .
|
|
35
|
+
|
|
36
|
+
apcnt:locusOf a rdf:Property ; rdfs:domain apcnt:ContentDescriptor ; rdfs:range apcnt:CanonicalLocus ;
|
|
37
|
+
rdfs:comment "The CanonicalLocus (by locusId) this descriptor renders." .
|
|
38
|
+
apcnt:renderedBy a rdf:Property ; rdfs:domain apcnt:ContentDescriptor ; rdfs:range apcnt:CorpusManifest ;
|
|
39
|
+
rdfs:comment "The CorpusManifest (by corpusRef) this descriptor belongs to." .
|
|
40
|
+
apcnt:commitsTo a rdf:Property ; rdfs:domain apcnt:ContentDescriptor ;
|
|
41
|
+
rdfs:comment "keccak256 of the canonicalized off-chain rendering text. Binds the descriptor to a specific rendering WITHOUT revealing it." .
|
|
42
|
+
apcnt:retrievalPointer a rdf:Property ; rdfs:domain apcnt:ContentDescriptor ;
|
|
43
|
+
rdfs:comment "A URI/locator for the off-chain rendering text. NEVER the text itself (ADR-0033 R3)." .
|
|
44
|
+
apcnt:corpusRoot a rdf:Property ; rdfs:domain apcnt:CorpusManifest ;
|
|
45
|
+
rdfs:comment "Merkle root over the per-locus descriptor commitments of the corpus." .
|
|
46
|
+
apcnt:issuedBy a rdf:Property ; rdfs:domain apcnt:CorpusManifest ; rdfs:range ap:CanonicalAgentId ;
|
|
47
|
+
rdfs:comment "The issuer Smart Agent (Address) that published + signed the corpus/descriptors." .
|
|
48
|
+
apcnt:accessPolicy a rdf:Property ;
|
|
49
|
+
rdfs:comment "An apcnt:accessPolicy value (C-box codelist): public | licensed | private." .
|
|
50
|
+
apcnt:proofPolicy a rdf:Property ;
|
|
51
|
+
rdfs:comment "An apcnt:proofPolicy value (C-box codelist): signature | merkle-inclusion | zk." .
|
|
52
|
+
apcnt:citesLocus a rdf:Property ; rdfs:domain apcnt:CitationAssertion ; rdfs:range apcnt:CanonicalLocus .
|
|
53
|
+
apcnt:underEntitlement a rdf:Property ; rdfs:domain apcnt:CitationAssertion ; rdfs:range apcnt:Entitlement .
|
|
54
|
+
|
|
55
|
+
# ── Spec 413 — a PUBLISHED WORK, as the discovery knowledge base holds it (ADR-0040 amendment 2026-09-24). ──
|
|
56
|
+
# A document its owner made public on her Library's shelf (spec 412) AND released with her signature, projected by the
|
|
57
|
+
# indexer after it verified both, from the owner's on-chain A2A endpoint. A CACHE of an owner-published, signed,
|
|
58
|
+
# world-readable artifact — never the record (the record is in her vault) and never evidence of anything beyond "this
|
|
59
|
+
# text was served publicly under this signed release at observedAt". Withdrawn on the next observation that fails.
|
|
60
|
+
apcnt:PublishedWork a rdfs:Class ;
|
|
61
|
+
rdfs:label "PublishedWork" ;
|
|
62
|
+
rdfs:comment "A public, owner-released Library document projected into the discovery KB (spec 413). Owner-published, provenance-typed, stale-allowed; NOT a private record, NOT authority." .
|
|
63
|
+
apcnt:publisher a rdf:Property ; rdfs:domain apcnt:PublishedWork ;
|
|
64
|
+
rdfs:comment "The owner Smart Agent (Address) whose shelf serves the work and whose signature the release carries." .
|
|
65
|
+
apcnt:title a rdf:Property ; rdfs:domain apcnt:PublishedWork ;
|
|
66
|
+
rdfs:comment "The document's name on the owner's shelf." .
|
|
67
|
+
apcnt:releaseId a rdf:Property ; rdfs:domain apcnt:PublishedWork ;
|
|
68
|
+
rdfs:comment "The release id (spec 335 §6) the owner signed; reproduces from the content core." .
|
|
69
|
+
apcnt:contentCommitment a rdf:Property ; rdfs:domain apcnt:PublishedWork ;
|
|
70
|
+
rdfs:comment "sha256 of the served bytes — equal to the release's committed root when projected." .
|
|
71
|
+
apcnt:sourceEndpoint a rdf:Property ; rdfs:domain apcnt:PublishedWork ;
|
|
72
|
+
rdfs:comment "The owner's A2A interface the work was read from (resolved from the owner's on-chain a2aEndpoint)." .
|
|
73
|
+
apcnt:observedAt a rdf:Property ; rdfs:domain apcnt:PublishedWork ;
|
|
74
|
+
rdfs:comment "When the indexer last read and verified the work (ISO 8601). A row is a cache as of this time." .
|
|
75
|
+
apcnt:vectorId a rdf:Property ; rdfs:domain apcnt:PublishedWork ;
|
|
76
|
+
rdfs:comment "The id of one retrieval passage (Vectorize) derived from the work — how a withdrawal removes exactly what was written." .
|