@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.
Files changed (183) hide show
  1. package/README.md +59 -21
  2. package/cbox/agent-facet-shapes.shacl.ttl +130 -0
  3. package/cbox/capability-catalog-shapes.shacl.ttl +284 -0
  4. package/cbox/card-projection-shapes.shacl.ttl +216 -0
  5. package/cbox/consultation-shapes.shacl.ttl +85 -0
  6. package/cbox/content-vocabulary.ttl +52 -0
  7. package/cbox/controlled-vocabularies.ttl +224 -4
  8. package/cbox/discovery-graph-shapes.shacl.ttl +284 -0
  9. package/cbox/familyoffice-shapes.shacl.ttl +92 -0
  10. package/cbox/familyoffice-vocabulary.ttl +48 -0
  11. package/cbox/geo-vocabulary.ttl +36 -0
  12. package/cbox/guidance-vocabulary.ttl +22 -0
  13. package/cbox/interaction-shapes.shacl.ttl +218 -0
  14. package/cbox/interaction-vocabulary.ttl +159 -0
  15. package/cbox/judgment-shapes.shacl.ttl +83 -0
  16. package/cbox/naming-registry-shapes.shacl.ttl +272 -0
  17. package/cbox/org-team-shapes.shacl.ttl +184 -0
  18. package/cbox/privacy-credential-shapes.shacl.ttl +187 -0
  19. package/cbox/profile-facet-vocabulary.ttl +50 -0
  20. package/cbox/registry-vocabulary.ttl +86 -0
  21. package/cbox/run-measures-shapes.shacl.ttl +59 -0
  22. package/cbox/run-provenance-shapes.shacl.ttl +264 -0
  23. package/cbox/scope-vocabulary.ttl +112 -0
  24. package/cbox/skill-grounding-vocabulary.ttl +18 -0
  25. package/cbox/skill-vocabulary.ttl +50 -0
  26. package/context.jsonld +37 -1
  27. package/dist/arg-types.d.ts +60 -0
  28. package/dist/arg-types.d.ts.map +1 -0
  29. package/dist/arg-types.js +143 -0
  30. package/dist/arg-types.js.map +1 -0
  31. package/dist/artifacts.d.ts +9 -2
  32. package/dist/artifacts.d.ts.map +1 -1
  33. package/dist/artifacts.js +153 -2
  34. package/dist/artifacts.js.map +1 -1
  35. package/dist/contact-fields.d.ts +28 -0
  36. package/dist/contact-fields.d.ts.map +1 -0
  37. package/dist/contact-fields.js +38 -0
  38. package/dist/contact-fields.js.map +1 -0
  39. package/dist/decisions.d.ts +69 -0
  40. package/dist/decisions.d.ts.map +1 -0
  41. package/dist/decisions.js +98 -0
  42. package/dist/decisions.js.map +1 -0
  43. package/dist/evaluation-context.d.ts +134 -0
  44. package/dist/evaluation-context.d.ts.map +1 -0
  45. package/dist/evaluation-context.js +136 -0
  46. package/dist/evaluation-context.js.map +1 -0
  47. package/dist/governance.d.ts +84 -0
  48. package/dist/governance.d.ts.map +1 -0
  49. package/dist/governance.js +88 -0
  50. package/dist/governance.js.map +1 -0
  51. package/dist/grounded-vocabulary.d.ts +29 -0
  52. package/dist/grounded-vocabulary.d.ts.map +1 -0
  53. package/dist/grounded-vocabulary.js +110 -0
  54. package/dist/grounded-vocabulary.js.map +1 -0
  55. package/dist/household.d.ts +19 -0
  56. package/dist/household.d.ts.map +1 -0
  57. package/dist/household.js +41 -0
  58. package/dist/household.js.map +1 -0
  59. package/dist/index.d.ts +1091 -3
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +1323 -5
  62. package/dist/index.js.map +1 -1
  63. package/dist/outcomes.d.ts +47 -0
  64. package/dist/outcomes.d.ts.map +1 -0
  65. package/dist/outcomes.js +40 -0
  66. package/dist/outcomes.js.map +1 -0
  67. package/dist/participant-vocabulary.d.ts +57 -0
  68. package/dist/participant-vocabulary.d.ts.map +1 -0
  69. package/dist/participant-vocabulary.js +66 -0
  70. package/dist/participant-vocabulary.js.map +1 -0
  71. package/dist/party-roles.d.ts +115 -0
  72. package/dist/party-roles.d.ts.map +1 -0
  73. package/dist/party-roles.js +343 -0
  74. package/dist/party-roles.js.map +1 -0
  75. package/dist/payload-classes.d.ts +22 -0
  76. package/dist/payload-classes.d.ts.map +1 -0
  77. package/dist/payload-classes.js +30 -0
  78. package/dist/payload-classes.js.map +1 -0
  79. package/dist/plan-shapes.d.ts +18 -0
  80. package/dist/plan-shapes.d.ts.map +1 -0
  81. package/dist/plan-shapes.js +38 -0
  82. package/dist/plan-shapes.js.map +1 -0
  83. package/dist/principles.generated.d.ts +11 -0
  84. package/dist/principles.generated.d.ts.map +1 -0
  85. package/dist/principles.generated.js +293 -0
  86. package/dist/principles.generated.js.map +1 -0
  87. package/dist/published-works.d.ts +13 -0
  88. package/dist/published-works.d.ts.map +1 -0
  89. package/dist/published-works.js +18 -0
  90. package/dist/published-works.js.map +1 -0
  91. package/dist/relations.d.ts +44 -0
  92. package/dist/relations.d.ts.map +1 -0
  93. package/dist/relations.js +104 -0
  94. package/dist/relations.js.map +1 -0
  95. package/dist/run-measures-context.d.ts +74 -0
  96. package/dist/run-measures-context.d.ts.map +1 -0
  97. package/dist/run-measures-context.js +77 -0
  98. package/dist/run-measures-context.js.map +1 -0
  99. package/dist/run-provenance-context.d.ts +315 -0
  100. package/dist/run-provenance-context.d.ts.map +1 -0
  101. package/dist/run-provenance-context.js +323 -0
  102. package/dist/run-provenance-context.js.map +1 -0
  103. package/dist/transitions.d.ts +42 -0
  104. package/dist/transitions.d.ts.map +1 -0
  105. package/dist/transitions.js +100 -0
  106. package/dist/transitions.js.map +1 -0
  107. package/dist/vault-records.d.ts +74 -0
  108. package/dist/vault-records.d.ts.map +1 -0
  109. package/dist/vault-records.js +777 -0
  110. package/dist/vault-records.js.map +1 -0
  111. package/dist/versions.generated.d.ts +262 -0
  112. package/dist/versions.generated.d.ts.map +1 -0
  113. package/dist/versions.generated.js +318 -0
  114. package/dist/versions.generated.js.map +1 -0
  115. package/evaluation.jsonld +133 -0
  116. package/mappings/actor-context-standards.ttl +89 -0
  117. package/mappings/agent-discovery-standards.ttl +127 -0
  118. package/mappings/collaboration-crosswalk-actors.ttl +30 -0
  119. package/mappings/collaboration-crosswalk-authority.ttl +31 -0
  120. package/mappings/collaboration-crosswalk-guidance.ttl +29 -0
  121. package/mappings/collaboration-crosswalk-intent.ttl +29 -0
  122. package/mappings/collaboration-crosswalk-messaging.ttl +37 -0
  123. package/mappings/collaboration-crosswalk-organization.ttl +66 -0
  124. package/mappings/collaboration-crosswalk-protocols.ttl +49 -0
  125. package/mappings/collaboration-crosswalk-skills.ttl +50 -0
  126. package/mappings/collaboration-profile.ttl +82 -0
  127. package/mappings/commerce-engagement-crosswalk.ttl +83 -0
  128. package/mappings/spine-standards.ttl +83 -0
  129. package/package.json +31 -9
  130. package/run-measures.jsonld +34 -0
  131. package/run-provenance.jsonld +314 -0
  132. package/tbox/actor-context.ttl +145 -0
  133. package/tbox/agent-resolution.ttl +308 -0
  134. package/tbox/agreement.ttl +77 -0
  135. package/tbox/attestation.ttl +156 -0
  136. package/tbox/card-projection.ttl +350 -0
  137. package/tbox/constraints.ttl +150 -0
  138. package/tbox/contact.ttl +61 -0
  139. package/tbox/content.ttl +76 -0
  140. package/tbox/context.ttl +508 -0
  141. package/tbox/coordination.ttl +263 -0
  142. package/tbox/core.ttl +325 -7
  143. package/tbox/dcat-imports.ttl +19 -0
  144. package/tbox/discovery.ttl +273 -0
  145. package/tbox/dqv-imports.ttl +29 -0
  146. package/tbox/earl-imports.ttl +32 -0
  147. package/tbox/engagement.ttl +349 -0
  148. package/tbox/entitlement.ttl +41 -0
  149. package/tbox/estate.ttl +78 -0
  150. package/tbox/evaluation.ttl +330 -0
  151. package/tbox/execution.ttl +720 -0
  152. package/tbox/familyoffice.ttl +87 -0
  153. package/tbox/fulfillment.ttl +140 -0
  154. package/tbox/geo.ttl +28 -0
  155. package/tbox/governance.ttl +67 -0
  156. package/tbox/guidance.ttl +40 -0
  157. package/tbox/household.ttl +142 -0
  158. package/tbox/identity.ttl +133 -6
  159. package/tbox/inference.ttl +177 -0
  160. package/tbox/intents.ttl +241 -0
  161. package/tbox/interaction.ttl +297 -0
  162. package/tbox/messaging.ttl +244 -0
  163. package/tbox/naming.ttl +114 -0
  164. package/tbox/org.ttl +410 -0
  165. package/tbox/payload.ttl +94 -0
  166. package/tbox/payment.ttl +124 -0
  167. package/tbox/plan.ttl +169 -0
  168. package/tbox/principles.ttl +212 -0
  169. package/tbox/privacy-credential.ttl +436 -0
  170. package/tbox/profile.ttl +107 -0
  171. package/tbox/prov-imports.ttl +73 -0
  172. package/tbox/registry.ttl +382 -0
  173. package/tbox/resolution.ttl +108 -0
  174. package/tbox/scope.ttl +59 -0
  175. package/tbox/security-exposure.ttl +102 -0
  176. package/tbox/situation.ttl +56 -0
  177. package/tbox/skills.ttl +316 -0
  178. package/tbox/skos-imports.ttl +54 -0
  179. package/tbox/transition.ttl +63 -0
  180. package/tbox/trust.ttl +210 -0
  181. package/tbox/values.ttl +81 -0
  182. package/tbox/verification-receipt.ttl +134 -0
  183. package/versions.adoption.json +173 -0
@@ -0,0 +1,508 @@
1
+ # T-box — orthogonal context facets + capability-map views (spec 330 W0 §4; spec 331).
2
+ #
3
+ # Implements docs/architecture/capability-architecture.md §3. The governing rule:
4
+ #
5
+ # A capability participates in SEVERAL facets of SEVERAL kinds. There is no forced
6
+ # single-parent hierarchy, and a capability MAP is a VIEW projected from the graph —
7
+ # never the class hierarchy. Presentation level lives on a CapabilityMapEntry, never
8
+ # on the capability.
9
+ #
10
+ # "Vertical" and "horizontal" are diagram orientations, not ontology. Nothing here
11
+ # authorizes anything: a facet is classification, and classification is never possession
12
+ # and never permission (capability-architecture.md §2 axiom 4).
13
+
14
+ @prefix apctx: <https://agenticprimitives.dev/ns/context#> .
15
+ @prefix aps: <https://agenticprimitives.dev/ns/skill#> .
16
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
17
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
18
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
19
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
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#> .
24
+
25
+ apctx: a owl:Ontology ;
26
+ rdfs:label "Agentic Primitives — context facet ontology" ;
27
+ owl:versionInfo "0.2.0" ;
28
+ rdfs:seeAlso <https://agenticprimitives.dev/docs/architecture/capability-architecture.md> ;
29
+ rdfs:comment "Orthogonal classification facets for capabilities and executions, plus the capability-map VIEW vocabulary. Classification only — never identity, never authority." .
30
+
31
+ # ─── The facets (orthogonal; a capability may bear many of many kinds) ──────
32
+
33
+ apctx:ContextFacet a owl:Class ;
34
+ rdfs:label "ContextFacet" ;
35
+ rdfs:comment "Abstract parent of the orthogonal classification facets. NOT a taxonomy root: facets of different kinds are independent axes, and bearing one never implies bearing another." .
36
+
37
+ apctx:IndustryDomain a owl:Class ; rdfs:subClassOf apctx:ContextFacet ;
38
+ rdfs:label "IndustryDomain" ;
39
+ rdfs:comment "Economic or professional field (e.g. family-office advisory; agent-trust infrastructure)." .
40
+
41
+ apctx:KnowledgeDomain a owl:Class ; rdfs:subClassOf apctx:ContextFacet ;
42
+ rdfs:label "KnowledgeDomain" ;
43
+ rdfs:comment "Subject-matter partition (e.g. taxation; wealth transfer; discovery). A SUBJECT domain is never a capability — conflating them re-opens ADR-0051. This is the facet atl:focusAreas projects onto." .
44
+
45
+ apctx:ValueStreamStage a owl:Class ; rdfs:subClassOf apctx:ContextFacet ;
46
+ rdfs:label "ValueStreamStage" ;
47
+ rdfs:comment "Stage in an outcome lifecycle (assess → design → implement → monitor). A stage is never a separate capability from the ability it stages." .
48
+
49
+ apctx:BoundedContext a owl:Class ; rdfs:subClassOf apctx:ContextFacet ;
50
+ rdfs:label "BoundedContext" ;
51
+ rdfs:comment "Boundary of a consistent model + vocabulary with ONE accountable owner. Every capability has exactly one owning bounded context (architecture invariant 2) and may participate in many others." .
52
+
53
+ apctx:SharedSemanticDomain a owl:Class ; rdfs:subClassOf apctx:ContextFacet ;
54
+ rdfs:label "SharedSemanticDomain" ;
55
+ rdfs:comment "Semantics reused across most contexts: party, money/units, time, agreements, provenance." .
56
+
57
+ # The ONE bounded context THIS repo owns. Every capability needs exactly one accountable owner
58
+ # (invariant 2), and the substrate's own capabilities — Member Consultation, Consultation Routing,
59
+ # and the advisory-consult realization PARAMETER — are owned here, not by any downstream domain
60
+ # catalog. Advisory capabilities (adv:*) are owned by the New City catalog's own context, declared
61
+ # in that downstream repo (architecture §4, §9); they never point here.
62
+ apctx:SubstrateContext a apctx:BoundedContext ;
63
+ rdfs:label "Agentic-primitives substrate" ;
64
+ rdfs:comment "The bounded context of this repo's own coordination-substrate capabilities (spec 329 consult path and its realization machinery). Distinct from any downstream domain catalog: the substrate ships the machinery, a domain catalog owns its own capabilities in its own context." .
65
+
66
+ apctx:ControlDomain a owl:Class ; rdfs:subClassOf apctx:ContextFacet ;
67
+ rdfs:label "ControlDomain" ;
68
+ rdfs:comment "Cross-cutting governance: privacy (ADR-0040), audit, authority separation. A control domain constrains realizations; it never grants them." .
69
+
70
+ apctx:JurisdictionFacet a owl:Class ; rdfs:subClassOf apctx:ContextFacet ;
71
+ rdfs:label "JurisdictionFacet" ;
72
+ rdfs:comment "The legal/regulatory space a realization is scoped to, drawn from the GeoFeatureRegistry controlled vocabulary (spec 251). A jurisdiction is a CONTEXT of a capability, never a specialization of it: 'Spanish wealth tax' is wealth-and-transfer-tax analysis IN the ES jurisdiction facet, not a distinct ability." .
73
+
74
+ apctx:LanguageFacet a owl:Class ; rdfs:subClassOf apctx:ContextFacet ;
75
+ rdfs:label "LanguageFacet" ;
76
+ rdfs:comment "A natural language a realization can be conducted in, as a BCP-47 tag. Delivery context, never an ability: an advisor does not have a 'Spanish' capability." .
77
+
78
+ apctx:ContextProfile a owl:Class ;
79
+ rdfs:label "ContextProfile" ;
80
+ rdfs:comment "A named composition of facets scoping a capability or an execution (e.g. jurisdiction + knowledge domains + controls)." .
81
+
82
+ apctx:composedOfFacet a owl:ObjectProperty ;
83
+ rdfs:domain apctx:ContextProfile ; rdfs:range apctx:ContextFacet ;
84
+ rdfs:label "composedOfFacet" .
85
+
86
+ # ─── Classification (navigational; NEVER structural) ────────────────────────
87
+
88
+ apctx:classifiedBy a owl:ObjectProperty ;
89
+ rdfs:range apctx:ContextFacet ;
90
+ rdfs:label "classifiedBy" ;
91
+ rdfs:comment "Subject → facet. Navigational/reporting classification. Deliberately NOT rdfs:subClassOf: a capability bearing a facet is not a subclass of anything, and stacking facets must never produce a hierarchy." .
92
+
93
+ apctx:inJurisdiction a owl:ObjectProperty ;
94
+ rdfs:subPropertyOf apctx:classifiedBy ; rdfs:range apctx:JurisdictionFacet ;
95
+ rdfs:label "inJurisdiction" .
96
+
97
+ apctx:inLanguage a owl:ObjectProperty ;
98
+ rdfs:subPropertyOf apctx:classifiedBy ; rdfs:range apctx:LanguageFacet ;
99
+ rdfs:label "inLanguage" .
100
+
101
+ apctx:ownedByContext a owl:ObjectProperty ;
102
+ rdfs:range apctx:BoundedContext ;
103
+ rdfs:label "ownedByContext" ;
104
+ rdfs:comment "The ONE accountable owning bounded context. Exactly one per capability; sh:maxCount 1 in cbox/capability-catalog-shapes.shacl.ttl." .
105
+
106
+ # ─── Capability maps are VIEWS ──────────────────────────────────────────────
107
+
108
+ apctx:CapabilityMap a owl:Class ;
109
+ rdfs:label "CapabilityMap" ;
110
+ rdfs:comment "A named view projected from the architecture graph for presentation or reporting. A map is never the class hierarchy and never the source of composition." .
111
+
112
+ apctx:CapabilityMapEntry a owl:Class ;
113
+ rdfs:label "CapabilityMapEntry" ;
114
+ rdfs:comment "One capability's placement in ONE map. apctx:levelInMap lives HERE — the same capability may sit at different levels in different maps." .
115
+
116
+ apctx:hasMapEntry a owl:ObjectProperty ;
117
+ rdfs:domain apctx:CapabilityMap ; rdfs:range apctx:CapabilityMapEntry ;
118
+ rdfs:label "hasMapEntry" .
119
+
120
+ apctx:entryCapability a owl:ObjectProperty ;
121
+ rdfs:domain apctx:CapabilityMapEntry ; rdfs:range aps:Capability ;
122
+ rdfs:label "entryCapability" .
123
+
124
+ apctx:levelInMap a owl:DatatypeProperty ;
125
+ rdfs:domain apctx:CapabilityMapEntry ; rdfs:range xsd:integer ;
126
+ rdfs:label "levelInMap" ;
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
+ # ── Remembered facts (spec 402 W1 — memory that follows the person) ────────────────────────────────
158
+ # What the person's agent knows about HER, in her own vault: her own words, or what her agent learned from a source it
159
+ # names. Read by her own agent alone; shown on Today and the Memory page; forgettable one fact at a time. Memory, never
160
+ # truth — an answer that rests on it says "you told me"; never authority — no verifier reads it (memory.ts's three lines).
161
+
162
+ apctx:RememberedFact a owl:Class ;
163
+ rdfs:subClassOf prov:Entity ;
164
+ rdfs:label "RememberedFact" ;
165
+ rdfs:comment "One thing the owner's agent remembers about the owner — in words, dated, with who said it (the owner, the agent, a connected account). The owner's alone: kept in her vault, read by her own agent, forgettable. Evidence an answer cites as memory; never a fact about the world and never a basis for an act." .
166
+
167
+ apctx:factWords a owl:DatatypeProperty ;
168
+ rdfs:domain apctx:RememberedFact ; rdfs:range xsd:string ;
169
+ rdfs:label "factWords" ;
170
+ rdfs:comment "The fact, in words." .
171
+
172
+ apctx:factSource a owl:DatatypeProperty ;
173
+ rdfs:domain apctx:RememberedFact ; rdfs:range xsd:string ;
174
+ rdfs:label "factSource" ;
175
+ rdfs:comment "Who said it: you · agent · connector." .
176
+
177
+ apctx:learnedAt a owl:DatatypeProperty ;
178
+ rdfs:domain apctx:RememberedFact ; rdfs:range xsd:dateTime ;
179
+ rdfs:label "learnedAt" ;
180
+ rdfs:comment "When it was learned; shown so a person can judge a stale memory." .
181
+
182
+ apctx:learnedFrom a owl:DatatypeProperty ;
183
+ rdfs:domain apctx:RememberedFact ; rdfs:range xsd:string ;
184
+ rdfs:label "learnedFrom" ;
185
+ rdfs:comment "Where it was learned — a connector's name, an organization's address. Provenance, never a basis." .
186
+
187
+ # ── Declared routines (spec 402 W3 · spec 323 W6 — a routine that travels) ────────────────────────
188
+ # The person's own routines, in her words with the clock she said, in her vault. The schedule row on her agent's object
189
+ # is a PROJECTION of this record (when it next fires, what it last reached, paused) — rebuilt from it at any deployment.
190
+ # An intention, never a grant: each firing runs as her agent holding nothing.
191
+
192
+ apctx:DeclaredRoutine a owl:Class ;
193
+ rdfs:subClassOf prov:Entity ;
194
+ rdfs:label "DeclaredRoutine" ;
195
+ rdfs:comment "One routine the owner declared from a sentence — what to do, how often (a clock or a connector poll), in whose words and zone. The owner's alone: kept in her vault; her agent's schedule row is a projection of it. Never authority — a firing acts under nothing but what she signs then." .
196
+
197
+ apctx:routineAsk a owl:DatatypeProperty ;
198
+ rdfs:domain apctx:DeclaredRoutine ; rdfs:range xsd:string ;
199
+ rdfs:label "routineAsk" ;
200
+ rdfs:comment "What her agent asks of itself each time — the sentence with the clock removed." .
201
+
202
+ apctx:routineEvery a owl:DatatypeProperty ;
203
+ rdfs:domain apctx:DeclaredRoutine ; rdfs:range xsd:string ;
204
+ rdfs:label "routineEvery" ;
205
+ rdfs:comment "The cadence (1d, 7d, 15m…)." .
206
+
207
+ apctx:routineSaidAs a owl:DatatypeProperty ;
208
+ rdfs:domain apctx:DeclaredRoutine ; rdfs:range xsd:string ;
209
+ rdfs:label "routineSaidAs" ;
210
+ rdfs:comment "The whole sentence as she said it, clock and all — the record a deployment re-compiles the row from." .
211
+
212
+ apctx:routineZone a owl:DatatypeProperty ;
213
+ rdfs:domain apctx:DeclaredRoutine ; rdfs:range xsd:string ;
214
+ rdfs:label "routineZone" ;
215
+ rdfs:comment "The IANA zone the clock is read in — hers, never the server's." .
216
+
217
+ # ── The person's preferences (spec 403 W2/W4) ─────────────────────────────────────────────────────
218
+ # How her agent reaches her when she is away (a nudge by email — allowed or not, and for which kinds) and how it
219
+ # answers (brief or full, which language, what to call her). A record she owns; never authority — a nudge is a message
220
+ # about a run, never the run.
221
+
222
+ apctx:PersonPreferences a owl:Class ;
223
+ rdfs:subClassOf prov:Entity ;
224
+ rdfs:label "PersonPreferences" ;
225
+ rdfs:comment "The owner's own settings for her agent: whether it may email her (reminders, acts awaiting her signature; routine answers only if she says so) and how it answers. Kept in her vault; read by her own agent; no verifier reads it." .
226
+
227
+ apctx:nudgeByEmail a owl:DatatypeProperty ;
228
+ rdfs:domain apctx:PersonPreferences ; rdfs:range xsd:boolean ;
229
+ rdfs:label "nudgeByEmail" ;
230
+ rdfs:comment "May her agent email her when something waits for her." .
231
+
232
+ apctx:answerStyle a owl:DatatypeProperty ;
233
+ rdfs:domain apctx:PersonPreferences ; rdfs:range xsd:string ;
234
+ rdfs:label "answerStyle" ;
235
+ rdfs:comment "brief · full." .
236
+
237
+ apctx:answerLanguage a owl:DatatypeProperty ;
238
+ rdfs:domain apctx:PersonPreferences ; rdfs:range xsd:string ;
239
+ rdfs:label "answerLanguage" ;
240
+ rdfs:comment "The language answers come in." .
241
+
242
+ # ── Confirmation memory (spec 385) ──────────────────────────────────────────────────────────────────
243
+ # Which "David" the owner CHOSE when asked, per (word, capability, argument) — and, since spec 394, per the room
244
+ # they were standing in. Evidence the resolver cites; never a grant a verifier reads.
245
+
246
+ apctx:ConfirmationMemory a owl:Class ;
247
+ rdfs:subClassOf prov:Entity ;
248
+ rdfs:label "ConfirmationMemory" ;
249
+ 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." .
250
+
251
+ apctx:confirmedParty a owl:ObjectProperty ;
252
+ rdfs:domain apctx:ConfirmationMemory ; rdfs:range ap:Agent ;
253
+ rdfs:label "confirmedParty" ;
254
+ rdfs:comment "The agent the owner confirmed for the word." .
255
+
256
+ apctx:confirmedWords a owl:DatatypeProperty ;
257
+ rdfs:domain apctx:ConfirmationMemory ; rdfs:range xsd:string ;
258
+ rdfs:label "confirmedWords" ;
259
+ rdfs:comment "The word the owner used ('david')." .
260
+
261
+ apctx:confirmedFor a owl:DatatypeProperty ;
262
+ rdfs:domain apctx:ConfirmationMemory ; rdfs:range xsd:string ;
263
+ rdfs:label "confirmedFor" ;
264
+ 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'." .
265
+
266
+ # ── Standing instructions (spec 394) ────────────────────────────────────────────────────────────────
267
+ # A DECLARED DEFAULT with no word in it: "from now on, pay from alice3.treasury". Fills an argument the owner
268
+ # did not speak, never one they did; scoped to the room (the organization acted for, or any); never authority.
269
+
270
+ apctx:StandingInstruction a owl:Class ;
271
+ rdfs:subClassOf prov:Entity ;
272
+ rdfs:label "StandingInstruction" ;
273
+ 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." .
274
+
275
+ apctx:instructionCapability a owl:DatatypeProperty ;
276
+ rdfs:domain apctx:StandingInstruction ; rdfs:range xsd:string ;
277
+ rdfs:label "instructionCapability" ;
278
+ rdfs:comment "The capability the default is for (an ADR-0051 id)." .
279
+
280
+ apctx:instructionArgument a owl:DatatypeProperty ;
281
+ rdfs:domain apctx:StandingInstruction ; rdfs:range xsd:string ;
282
+ rdfs:label "instructionArgument" ;
283
+ rdfs:comment "The argument it fills ('payer', 'org')." .
284
+
285
+ apctx:instructionValue a owl:ObjectProperty ;
286
+ rdfs:domain apctx:StandingInstruction ; rdfs:range ap:Agent ;
287
+ rdfs:label "instructionValue" ;
288
+ rdfs:comment "The agent the argument defaults to." .
289
+
290
+ apctx:instructionContext a owl:DatatypeProperty ;
291
+ rdfs:domain apctx:StandingInstruction ; rdfs:range xsd:string ;
292
+ rdfs:label "instructionContext" ;
293
+ 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." .
294
+
295
+ apctx:declaredAt a owl:DatatypeProperty ;
296
+ rdfs:domain apctx:StandingInstruction ; rdfs:range xsd:dateTime ;
297
+ rdfs:label "declaredAt" ;
298
+ rdfs:comment "When the owner declared it." .
299
+
300
+ # ── Playbook memory ─────────────────────────────────────────────────────────────────────────────────
301
+ # WHAT THE PLAYBOOK REMEMBERS about the subjects of one skill family: counts, folded in from the rounds an
302
+ # asker reported (`poker.review`), read back when the same asker asks for advice. Never cards, never amounts,
303
+ # never authority — a memory of how somebody plays grants nothing and is cited nowhere a verifier reads.
304
+
305
+ apctx:PlaybookMemory a owl:Class ;
306
+ rdfs:subClassOf prov:Entity ;
307
+ rdfs:label "PlaybookMemory" ;
308
+ rdfs:comment "The agent's own counts on the subjects of one skill family (playbook.memory:<family>), in its own vault. A review folds one round's observation in without a model; advice reads the subjects present in the material back, with their rates. Behaviour, not authority: it moves no grant and lowers no requirement." .
309
+
310
+ apctx:memoryFamily a owl:DatatypeProperty ;
311
+ rdfs:domain apctx:PlaybookMemory ; rdfs:range xsd:string ;
312
+ rdfs:label "memoryFamily" ;
313
+ rdfs:comment "The skill family the counts belong to ('poker', 'canasta')." .
314
+
315
+ apctx:memoryRounds a owl:DatatypeProperty ;
316
+ rdfs:domain apctx:PlaybookMemory ; rdfs:range xsd:integer ;
317
+ rdfs:label "memoryRounds" ;
318
+ rdfs:comment "How many rounds have been folded in." .
319
+
320
+ apctx:memorySubject a owl:DatatypeProperty ;
321
+ rdfs:domain apctx:PlaybookMemory ; rdfs:range xsd:string ;
322
+ rdfs:label "memorySubject" ;
323
+ rdfs:comment "A subject's id as the asker's material names it — a seat's player id, say." .
324
+
325
+ # ── Card-room study records ─────────────────────────────────────────────────────────────────────────
326
+ # WHAT A PERSON KEEPS ABOUT THEIR OWN PLAY, in their own vault, for the coach service they named to read
327
+ # under a study grant (a vault-record-scope delegation: delegator the person, delegate the SERVICE, reads
328
+ # on hand/style/read, append on note). The card room's texas-holdem ontology names the same things as
329
+ # th:HandRecord, th:StyleRecord, th:PlayerRead and th:CoachNote (skills.faithnet.io/ontology/texas-holdem);
330
+ # these are the Home's vault bindings of them. Never authority: a coach's note lowers no requirement.
331
+
332
+ apctx:CardRoomHandRecord a owl:Class ;
333
+ rdfs:subClassOf prov:Entity ;
334
+ rdfs:label "CardRoomHandRecord" ;
335
+ rdfs:comment "The person's finished hands as their seat saw them (cardroom.hand): each hand's final view and the game's counts per player, folded into running totals. Written by the person's own agent at the end of each hand (poker.record) — a vault put, no model. Read by the coach service under the study grant." .
336
+
337
+ apctx:CardRoomStyleRecord a owl:Class ;
338
+ rdfs:subClassOf prov:Entity ;
339
+ rdfs:label "CardRoomStyleRecord" ;
340
+ rdfs:comment "How the person wants to play, in their own words (cardroom.style). Written by the person at their Home; outranks the coach's craft." .
341
+
342
+ apctx:CardRoomPlayerRead a owl:Class ;
343
+ rdfs:subClassOf prov:Entity ;
344
+ rdfs:label "CardRoomPlayerRead" ;
345
+ rdfs:comment "The person's own notes on players they keep meeting (cardroom.read). Evidence about how somebody plays cards, never a dossier." .
346
+
347
+ apctx:CardRoomCoachNote a owl:Class ;
348
+ rdfs:subClassOf prov:Entity ;
349
+ rdfs:label "CardRoomCoachNote" ;
350
+ rdfs:comment "The coach service's own notes after a consultation or a review (cardroom.note): short, dated, checkable against a hand. Appended by the service under the grant's append scope into the PERSON's vault, so that revoking the grant leaves nothing of theirs on the coach." .
351
+
352
+ apctx:CardRoomCoachClient a owl:Class ;
353
+ rdfs:subClassOf prov:Entity ;
354
+ rdfs:label "CardRoomCoachClient" ;
355
+ rdfs:comment "What a coach SERVICE keeps about a client, in its own vault (cardroom.client): pointers only — whose agent, which grant hash, when it last ran. Never a hand, a style line, a read or a copy of a note; the vault refuses cardroom.hand/style/read/note on a service's own principal." .
356
+
357
+ apctx:CardRoomPreferences a owl:Class ;
358
+ rdfs:subClassOf prov:Entity ;
359
+ rdfs:label "CardRoomPreferences" ;
360
+ rdfs:comment "The person's own card-room preferences (cardroom.prefs): whether they have been asked about hiring a coach and what they said, so the card room asks once. Written by their own agent when they answer." .
361
+
362
+ apctx:CardRoomPlayerProfile a owl:Class ;
363
+ rdfs:subClassOf prov:Entity ;
364
+ rdfs:label "Card-room player profile" ;
365
+ rdfs:comment "Who the person is as a player, in their own words, ONE record across games (cardroom.profile; cr:PlayerProfile in the card-room ontology): how experienced they are at each game, what they want to get better at, how they want to be coached, anything else they told their coach to know. Written by the person at their Home; read by every coach they hire under that coach's grant; never written by a coach. Steers how a coach speaks and what a review looks for first; never authority, never a verdict." .
366
+
367
+ # ── A card-room CLUB, kept by its own workspace agent ───────────────────────────────────────────────
368
+ # A club is an ORGANIZATION whose workspace is coordinated by a `.workspace` agent its host custodies
369
+ # (ap:WorkspaceAgent ⊑ ap:ServiceAgent, aporg:coordinatedBy — a SERVICE, never an organization by kind, 2026-10-02)
370
+ # and governed by the club's own organization agent (aporg:Workspace aporg:governedBy <org>). Who belongs is
371
+ # the GOVERNING ORGANIZATION's membership (aporg:OrganizationMembership, `org.membership:member:<sa>` in the
372
+ # organization's vault, written at the join ceremony) — a workspace agent holds no members; it names its
373
+ # governor in its own `workspace.governor` pointer, and a club chartered before the pairing (no pointer) still
374
+ # keeps its own records. Everything else the club IS — what it calls itself, when it meets, which nights are on
375
+ # and who is coming — are these three records in the WORKSPACE agent's own vault, written by the club's agent
376
+ # when the card room acts as it under a service-agent wire. The card room keeps no copy: a club exists at its
377
+ # Home or not at all (cr:Club, cr:ClubSchedule, cr:ClubNight in the card-room ontology at
378
+ # skills.faithnet.io/ontology/card-room). Never authority: a night on the calendar seats nobody.
379
+
380
+ apctx:CardRoomClub a owl:Class ;
381
+ rdfs:subClassOf prov:Entity ;
382
+ rdfs:label "Card-room club" ;
383
+ rdfs:comment "What a club says about itself, in its workspace agent's own vault (cardroom.club.profile; cr:Club): its name, the host's welcome — the invitation's own words — which games it plays, when it was chartered. Written by the club's agent when the card room acts as the club under the wire its host signed; the host is whoever stewards the workspace, derived, never a field here." .
384
+
385
+ apctx:CardRoomClubSchedule a owl:Class ;
386
+ rdfs:subClassOf prov:Entity ;
387
+ rdfs:label "Card-room club schedule" ;
388
+ rdfs:comment "WHEN THE CLUB MEETS — the rule, not the occasions (cardroom.club.schedule; cr:ClubSchedule): a wall-clock start, a timezone, a recurrence (weekly, every other week, the nth weekday of the month) and the night's defaults (game, seat cap, title). Occasions are derived from it at read time; a changed rule leaves past nights as they were." .
389
+
390
+ apctx:CardRoomClubNights a owl:Class ;
391
+ rdfs:subClassOf prov:Entity ;
392
+ rdfs:label "Card-room club nights" ;
393
+ rdfs:comment "THE OCCASIONS AS THEY DIVERGE FROM THE RULE (cardroom.club.nights; cr:ClubNight): a night called off and why, a one-off night the host added, and each member's answer (yes, no, maybe) with when they gave it. Keyed by the night's id (schedule + local date). A night that follows the rule and that nobody has answered has no entry here; it exists because the schedule says so." .
394
+
395
+ apctx:CardRoomMission a owl:Class ;
396
+ rdfs:subClassOf prov:Entity ;
397
+ rdfs:label "Card-room mission presence" ;
398
+ rdfs:comment "What a mission organization says about itself for a card room's map (cardroom.mission.presence; cr:MissionPresence): its name, what it does, its website, its languages and its place. Written by the organization's own agent at the Home in the registration ceremony; the org's account then registers the record's hash as a claim on its entry in the card room's registry (a kit-built registry on AgentRegistryBase). What a map SHOWS of the place is decided by the country ceiling at every read, never by this record." .
399
+
400
+ apctx:CardRoomMissionCovenant a owl:Class ;
401
+ rdfs:subClassOf prov:Entity ;
402
+ rdfs:label "Card-room mission covenant" ;
403
+ rdfs:comment "The steward's signed affirmation of the three-clause mission covenant (cardroom.mission.covenant; cr:MissionCovenant), bound to the organization and the registry; its hash is the covenant claim on the registry entry." .
404
+
405
+ apctx:CardRoomMissionContact a owl:Class ;
406
+ rdfs:subClassOf prov:Entity ;
407
+ rdfs:label "Card-room mission contact" ;
408
+ rdfs:comment "CONFIDENTIAL: how a card room's operators reach the mission (cardroom.mission.contact). Never a claim, never public, never on a map." .
409
+
410
+ apctx:handsRecorded a owl:DatatypeProperty ;
411
+ rdfs:domain apctx:CardRoomHandRecord ; rdfs:range xsd:integer ;
412
+ rdfs:label "handsRecorded" ;
413
+ rdfs:comment "How many hands the record holds (the most recent are kept in full; the counts fold in every one)." .
414
+
415
+ apctx:coachedBy a owl:DatatypeProperty ;
416
+ rdfs:domain apctx:CardRoomCoachNote ; rdfs:range xsd:string ;
417
+ rdfs:label "coachedBy" ;
418
+ rdfs:comment "The coach service that wrote the note, by name." .
419
+
420
+ # ── Conversation memory (spec 370 P7) ───────────────────────────────────────────────────────────────
421
+ # What the agent RESOLVED for its owner in the last few asks, kept in the owner's own vault so "send him
422
+ # 2 USDC" after "send nathan 1 USDC" means the Nathan they just meant, and "which Nathan?" is not asked
423
+ # twice in one afternoon. Memory fills WHERE; it is never authority: the mandate still decides.
424
+
425
+ apctx:ConversationMemory a owl:Class ;
426
+ rdfs:subClassOf prov:Entity ;
427
+ rdfs:label "ConversationMemory" ;
428
+ 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." .
429
+
430
+ apctx:recalledParty a owl:ObjectProperty ;
431
+ rdfs:domain apctx:ConversationMemory ; rdfs:range ap:Agent ;
432
+ rdfs:label "recalledParty" ;
433
+ rdfs:comment "An agent a recent ask resolved a word to." .
434
+
435
+ apctx:recalledWords a owl:DatatypeProperty ;
436
+ rdfs:domain apctx:ConversationMemory ; rdfs:range xsd:string ;
437
+ rdfs:label "recalledWords" ;
438
+ rdfs:comment "The words the owner used for that party ('nathan', 'the somali team')." .
439
+
440
+ apctx:recalledAt a owl:DatatypeProperty ;
441
+ rdfs:domain apctx:ConversationMemory ; rdfs:range xsd:dateTime ;
442
+ rdfs:label "recalledAt" ;
443
+ rdfs:comment "When the ask was made; the newest recall wins a pronoun." .
444
+
445
+ # ═══ External MCP servers as connectors — spec 404 ═══
446
+ # A server the holder attached: its tools compiled into capabilities that run under HER mandate (an act) or her
447
+ # standing (a read); the credential is the runtime's, never in this record. What the record is NOT: an authorization —
448
+ # the holder's grant per act is; and NOT a claim about the server's honesty — what it returns is evidence.
449
+
450
+ apctx:McpConnector a owl:Class ;
451
+ rdfs:subClassOf prov:Entity ;
452
+ rdfs:label "McpConnector" ;
453
+ rdfs:comment "An external MCP server the owner attached as a connector (`connector.mcp:<id>` in her vault): its name, URL, self-description, and its tool list AS COMPILED — each tool a read (the server's readOnlyHint or the owner's declaration) or an act at risk high under the owner's mandate. The token is kept beside it by the runtime, never in it. Offered to the owner's own agent only; rebuilt on another Home from the record (the token re-entered)." .
454
+
455
+ apctx:connectorName a owl:DatatypeProperty ;
456
+ rdfs:domain apctx:McpConnector ; rdfs:range xsd:string ;
457
+ rdfs:label "connectorName" ;
458
+ rdfs:comment "What the owner calls the server — the word the Ask uses (\"search on Ligonier\")." .
459
+
460
+ apctx:connectorUrl a owl:DatatypeProperty ;
461
+ rdfs:domain apctx:McpConnector ; rdfs:range xsd:anyURI ;
462
+ rdfs:label "connectorUrl" .
463
+
464
+ apctx:serverName a owl:DatatypeProperty ;
465
+ rdfs:domain apctx:McpConnector ; rdfs:range xsd:string ;
466
+ rdfs:label "serverName" ;
467
+ rdfs:comment "The server's own name from `initialize` — what it says it is, recorded as said." .
468
+
469
+ apctx:attachedAt a owl:DatatypeProperty ;
470
+ rdfs:domain apctx:McpConnector ; rdfs:range xsd:dateTime ;
471
+ rdfs:label "attachedAt" .
472
+
473
+ apctx:toolKind a owl:DatatypeProperty ;
474
+ rdfs:domain apctx:McpConnector ; rdfs:range xsd:string ;
475
+ rdfs:label "toolKind" ;
476
+ rdfs:comment "Per compiled tool: `read` (the owner's standing) or `act` (the owner's mandate, risk high) — and `why`: the server's annotation, the owner's declaration, or the default (act)." .
477
+
478
+ # ═══ The agent's budget — gap analysis P1.4 (spec 396's numbers made a limit) ═══
479
+
480
+ apctx:AgentBudget a owl:Class ;
481
+ rdfs:subClassOf prov:Entity ;
482
+ rdfs:label "AgentBudget" ;
483
+ rdfs:comment "What an agent may DO in a day, declared by its steward as a record in the agent's own vault (`agent.budget`): fresh asks, and vault calls (the unit every run's bill counts). Enforced at the door of an ask before a model is called; the day's counters are the serving plane's (rebuilt from the run records). NOT authority — a budget bounds how much, never what; a mandate still decides each act. NOT a value limit — money is bounded by mandate caveats on the treasury." .
484
+
485
+ apctx:asksPerDay a owl:DatatypeProperty ;
486
+ rdfs:domain apctx:AgentBudget ; rdfs:range xsd:integer ;
487
+ rdfs:label "asksPerDay" .
488
+
489
+ apctx:vaultCallsPerDay a owl:DatatypeProperty ;
490
+ rdfs:domain apctx:AgentBudget ; rdfs:range xsd:integer ;
491
+ rdfs:label "vaultCallsPerDay" .
492
+
493
+ # ─── Spec 435 §4 / spec 436 — the TOWN and the ESTATE as contexts (prov:Entity, like aporg:Workspace) ───────────
494
+ # An agent is IN an estate by derivation from public bindings (a live TownStanding naming it; its name under the
495
+ # estate's roots; its A2A host the estate's) — attested or inferred, labelled, never promoted — and never by the town's
496
+ # assertion. Classification only: no gate reads ap:inEstate.
497
+ apctx:Town a owl:Class ;
498
+ rdfs:subClassOf prov:Entity ;
499
+ rdfs:label "Town" ;
500
+ rdfs:comment "One chain, the estates on it, and the services they share (spec 429/436). Holds no record of anyone; a context, never an authority." .
501
+ apctx:Estate a owl:Class ;
502
+ rdfs:subClassOf prov:Entity ;
503
+ rdfs:label "Estate" ;
504
+ rdfs:comment "One deployment by one operating entity for its residents: identity (the Home), capability (endpoint apps), data (the vaults), the edge (spec 436 C2)." .
505
+ ap:inEstate a owl:ObjectProperty ;
506
+ rdfs:domain ap:Agent ; rdfs:range apctx:Estate ;
507
+ rdfs:label "inEstate" ;
508
+ rdfs:comment "DERIVED from public bindings (spec 435 §4): attested by a live TownStanding, or inferred from the name's root or the A2A host. Never authority; inferred is never promoted to attested." .