@agenticprimitives/ontology 1.0.0-alpha.16 → 1.0.0-alpha.17

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 (39) hide show
  1. package/cbox/guidance-vocabulary.ttl +22 -0
  2. package/cbox/interaction-vocabulary.ttl +102 -0
  3. package/cbox/scope-vocabulary.ttl +112 -0
  4. package/cbox/skill-grounding-vocabulary.ttl +18 -0
  5. package/context.jsonld +6 -0
  6. package/dist/artifacts.d.ts +3 -3
  7. package/dist/artifacts.d.ts.map +1 -1
  8. package/dist/artifacts.js +33 -0
  9. package/dist/artifacts.js.map +1 -1
  10. package/dist/grounded-vocabulary.d.ts +29 -0
  11. package/dist/grounded-vocabulary.d.ts.map +1 -0
  12. package/dist/grounded-vocabulary.js +110 -0
  13. package/dist/grounded-vocabulary.js.map +1 -0
  14. package/dist/index.d.ts +157 -2
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +193 -4
  17. package/dist/index.js.map +1 -1
  18. package/mappings/actor-context-standards.ttl +89 -0
  19. package/mappings/collaboration-crosswalk-actors.ttl +30 -0
  20. package/mappings/collaboration-crosswalk-authority.ttl +31 -0
  21. package/mappings/collaboration-crosswalk-guidance.ttl +29 -0
  22. package/mappings/collaboration-crosswalk-intent.ttl +29 -0
  23. package/mappings/collaboration-crosswalk-messaging.ttl +37 -0
  24. package/mappings/collaboration-crosswalk-organization.ttl +44 -0
  25. package/mappings/collaboration-crosswalk-protocols.ttl +46 -0
  26. package/mappings/collaboration-crosswalk-skills.ttl +45 -0
  27. package/mappings/collaboration-profile.ttl +74 -0
  28. package/package.json +1 -1
  29. package/tbox/actor-context.ttl +134 -0
  30. package/tbox/entitlement.ttl +41 -0
  31. package/tbox/fabric.ttl +59 -0
  32. package/tbox/guidance.ttl +40 -0
  33. package/tbox/intents.ttl +66 -11
  34. package/tbox/messaging.ttl +134 -0
  35. package/tbox/org.ttl +122 -0
  36. package/tbox/scope.ttl +59 -0
  37. package/tbox/situation.ttl +56 -0
  38. package/tbox/skills.ttl +104 -12
  39. package/tbox/verification-receipt.ttl +127 -0
@@ -0,0 +1,41 @@
1
+ # T-box — generic runtime entitlement vocabulary (spec 324 §11).
2
+ # Distinct from apcnt:ContentEntitlement (spec 266) and delegation Caveats.
3
+ # Runtime credentials map credentialSubject → apent:AccessEntitlement.
4
+
5
+ @prefix apent: <https://agenticprimitives.dev/ns/entitlement#> .
6
+ @prefix ap: <https://agenticprimitives.dev/ns/core#> .
7
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
8
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
9
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
10
+ @prefix prov: <http://www.w3.org/ns/prov#> .
11
+
12
+ apent: a owl:Ontology ;
13
+ rdfs:label "Agentic Primitives — entitlement ontology" ;
14
+ owl:versionInfo "0.2.0" ;
15
+ rdfs:comment "Field/purpose/classification access predicates (spec 277/324). Delegation = who may act; Entitlement = what may be read/used." .
16
+
17
+ apent:Entitlement a owl:Class ;
18
+ rdfs:subClassOf prov:Entity ;
19
+ rdfs:label "Entitlement" ;
20
+ rdfs:comment "Resource/action/field/purpose/classification access an Agent holds. ≠ Delegation." .
21
+
22
+ apent:AccessEntitlement a owl:Class ;
23
+ rdfs:subClassOf apent:Entitlement ;
24
+ rdfs:label "AccessEntitlement" .
25
+
26
+ apent:ConsumableEntitlement a owl:Class ;
27
+ rdfs:subClassOf apent:Entitlement ;
28
+ rdfs:label "ConsumableEntitlement" .
29
+
30
+ apent:EligibilityEntitlement a owl:Class ;
31
+ rdfs:subClassOf apent:Entitlement ;
32
+ rdfs:label "EligibilityEntitlement" ;
33
+ rdfs:comment "May satisfy an EnrollmentRequirement — does not create membership." .
34
+
35
+ apent:entitlementSubject a owl:ObjectProperty ;
36
+ rdfs:domain apent:Entitlement ; rdfs:range ap:Agent ;
37
+ rdfs:label "entitlementSubject" .
38
+
39
+ apent:entitlementPrincipal a owl:ObjectProperty ;
40
+ rdfs:domain apent:Entitlement ; rdfs:range ap:Agent ;
41
+ rdfs:label "entitlementPrincipal" .
@@ -0,0 +1,59 @@
1
+ # T-box — fabric / interaction-exchange vocabulary (spec 324 §5, §9; ADR-0047).
2
+ # InteractionExchange = ExchangeRecordV1 on the wire. ExchangeEnvelope carries CommunicativeAct.
3
+
4
+ @prefix apfab: <https://agenticprimitives.dev/ns/fabric#> .
5
+ @prefix apmsg: <https://agenticprimitives.dev/ns/messaging#> .
6
+ @prefix apint: <https://agenticprimitives.dev/ns/intent#> .
7
+ @prefix ap: <https://agenticprimitives.dev/ns/core#> .
8
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
9
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
10
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
11
+ @prefix prov: <http://www.w3.org/ns/prov#> .
12
+
13
+ apfab: a owl:Ontology ;
14
+ rdfs:label "Agentic Primitives — fabric / interaction exchange" ;
15
+ owl:versionInfo "0.2.0" ;
16
+ rdfs:comment "Ontology names for packages/fabric ExchangeRecordV1 + envelope lifecycle (spec 316/324)." .
17
+
18
+ apfab:InteractionExchange a owl:Class ;
19
+ rdfs:subClassOf prov:Entity ;
20
+ rdfs:label "InteractionExchange" ;
21
+ rdfs:comment "Aggregate lifecycle (`ap.exchange.v1` / ExchangeRecordV1): envelopes, events, exec/case state, refs. ≠ value-exchange ExchangeOrder." .
22
+
23
+ apfab:ExchangeEnvelope a owl:Class ;
24
+ rdfs:subClassOf prov:Entity ;
25
+ rdfs:label "ExchangeEnvelope" ;
26
+ rdfs:comment "Signed transport artifact (`ap.message.v1`). IntentEnvelopeV1 is a deprecated alias — not every envelope carries an Intent." .
27
+
28
+ apfab:ExchangeEvent a owl:Class ;
29
+ rdfs:subClassOf prov:Activity ;
30
+ rdfs:label "ExchangeEvent" ;
31
+ rdfs:comment "Append-only event on an InteractionExchange stream." .
32
+
33
+ apfab:IntentInvocation a owl:Class ;
34
+ rdfs:subClassOf prov:Activity ;
35
+ rdfs:label "IntentInvocation" ;
36
+ rdfs:comment "Fabric-grounded execution activity (ADR-0047 §7 provenance)." .
37
+
38
+ apfab:containsEnvelope a owl:ObjectProperty ;
39
+ rdfs:domain apfab:InteractionExchange ; rdfs:range apfab:ExchangeEnvelope ;
40
+ rdfs:label "containsEnvelope" .
41
+
42
+ apfab:carriesAct a owl:ObjectProperty ;
43
+ rdfs:domain apfab:ExchangeEnvelope ; rdfs:range apmsg:CommunicativeAct ;
44
+ rdfs:label "carriesAct" .
45
+
46
+ apfab:exchangeActor a owl:ObjectProperty ;
47
+ rdfs:domain apfab:InteractionExchange ; rdfs:range ap:Agent ;
48
+ rdfs:label "exchangeActor" ;
49
+ rdfs:comment "Who performed the act." .
50
+
51
+ apfab:exchangePrincipal a owl:ObjectProperty ;
52
+ rdfs:domain apfab:InteractionExchange ; rdfs:range ap:Agent ;
53
+ rdfs:label "exchangePrincipal" ;
54
+ rdfs:comment "On whose behalf (normally == actor; ServiceAgent for org may differ)." .
55
+
56
+ apfab:expressesIntent a owl:ObjectProperty ;
57
+ rdfs:domain apmsg:CommunicativeAct ; rdfs:range apint:Intent ;
58
+ rdfs:label "expressesIntent" ;
59
+ rdfs:comment "Zero, one, or many Intents per act." .
@@ -0,0 +1,40 @@
1
+ # T-box — Agent Skill packages + repo guidance (spec 325 §2.1–2.2; ADR-0050, ADR-0051).
2
+ # Agent Skills standard (SKILL.md) — NOT aps:CapabilityDefinition or A2A AgentSkill.
3
+
4
+ @prefix apguide: <https://agenticprimitives.dev/ns/guidance#> .
5
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
6
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
7
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
8
+
9
+ apguide: a owl:Ontology ;
10
+ rdfs:label "Agentic Primitives — agent guidance ontology" ;
11
+ owl:versionInfo "0.2.0" ;
12
+ rdfs:comment "Agent Skill packages (SKILL.md) and repository guidance. Distinct from aps:CapabilityDefinition (ADR-0051)." .
13
+
14
+ apguide:AgentGuidanceArtifact a owl:Class ;
15
+ rdfs:label "AgentGuidanceArtifact" ;
16
+ rdfs:comment "Markdown/file artifact steering a coding agent in IDE/CLI — not a signed runtime capability." .
17
+
18
+ apguide:AgentSkillPackage a owl:Class ;
19
+ rdfs:subClassOf apguide:AgentGuidanceArtifact ;
20
+ rdfs:label "AgentSkillPackage" ;
21
+ rdfs:comment "Portable procedural package per Agent Skills standard (directory + SKILL.md). Runtime playbook — NOT A2A advertisement or OASF taxon." .
22
+
23
+ apguide:AgentGuidanceSkill a owl:Class ;
24
+ owl:deprecated true ;
25
+ rdfs:subClassOf apguide:AgentSkillPackage ;
26
+ rdfs:label "AgentGuidanceSkill (deprecated)" ;
27
+ rdfs:comment "Deprecated alias for apguide:AgentSkillPackage (ADR-0051)." .
28
+
29
+ apguide:RepositoryGuidanceDoc a owl:Class ;
30
+ rdfs:subClassOf apguide:AgentGuidanceArtifact ;
31
+ rdfs:label "RepositoryGuidanceDoc" ;
32
+ rdfs:comment "Repo-local agent context (CLAUDE.md, AGENTS.md). Not executable capability." .
33
+
34
+ apguide:guidanceTarget a owl:ObjectProperty ;
35
+ rdfs:domain apguide:AgentGuidanceArtifact ;
36
+ rdfs:label "guidanceTarget" .
37
+
38
+ apguide:hostedInRepository a owl:DatatypeProperty ;
39
+ rdfs:domain apguide:AgentGuidanceArtifact ;
40
+ rdfs:label "hostedInRepository" .
package/tbox/intents.ttl CHANGED
@@ -31,17 +31,66 @@ apint:Desire a owl:Class ;
31
31
  apint:Intent a owl:Class ;
32
32
  rdfs:subClassOf ufo-c:Intention , vf:Intent ;
33
33
  rdfs:label "Intent" ;
34
- rdfs:comment "An actor's signed declarative statement of a desired end-state — direction + object (SKOS) + topic + constraints + expectedOutcome. NOT a plan; not a transaction; not a task. CSP-shaped per Anoma alignment. Layer 2 of the spine." .
34
+ rdfs:comment "An actor's signed declarative statement of a desired end-state. NOT a plan; not a transaction; not a wire envelope. Layer 2 of the spine." .
35
35
 
36
- apint:ReceiveIntent a owl:Class ;
36
+ # ─── Intent hierarchy extension (spec 324 §9) ─────────────────────────
37
+
38
+ apint:ResourceExchangeIntent a owl:Class ;
37
39
  rdfs:subClassOf apint:Intent ;
38
- rdfs:label "ReceiveIntent" ;
39
- rdfs:comment "Intent with direction='receive': actor wants to be the recipient of the object." .
40
+ rdfs:label "ResourceExchangeIntent" ;
41
+ rdfs:comment "Marketplace-shaped intents; direction + object matching apply here only." .
40
42
 
41
43
  apint:GiveIntent a owl:Class ;
42
- rdfs:subClassOf apint:Intent ;
44
+ rdfs:subClassOf apint:ResourceExchangeIntent ;
43
45
  rdfs:label "GiveIntent" ;
44
- rdfs:comment "Intent with direction='give': actor wants to be the provider of the object." .
46
+ rdfs:comment "ResourceExchangeIntent with direction='give'." .
47
+
48
+ apint:ReceiveIntent a owl:Class ;
49
+ rdfs:subClassOf apint:ResourceExchangeIntent ;
50
+ rdfs:label "ReceiveIntent" ;
51
+ rdfs:comment "ResourceExchangeIntent with direction='receive'." .
52
+
53
+ apint:ActionIntent a owl:Class ;
54
+ rdfs:subClassOf apint:Intent ;
55
+ rdfs:label "ActionIntent" ;
56
+ rdfs:comment "Desired action (invoke skill, perform task, moderate conversation)." .
57
+
58
+ apint:InvokeSkillIntent a owl:Class ;
59
+ rdfs:subClassOf apint:ActionIntent ;
60
+ rdfs:label "InvokeSkillIntent" .
61
+
62
+ apint:PerformTaskIntent a owl:Class ;
63
+ rdfs:subClassOf apint:ActionIntent ;
64
+ rdfs:label "PerformTaskIntent" .
65
+
66
+ apint:InformationIntent a owl:Class ;
67
+ rdfs:subClassOf apint:Intent ;
68
+ rdfs:label "InformationIntent" .
69
+
70
+ apint:QueryIntent a owl:Class ;
71
+ rdfs:subClassOf apint:InformationIntent ;
72
+ rdfs:label "QueryIntent" .
73
+
74
+ apint:SubscribeIntent a owl:Class ;
75
+ rdfs:subClassOf apint:InformationIntent ;
76
+ rdfs:label "SubscribeIntent" .
77
+
78
+ apint:RelationshipIntent a owl:Class ;
79
+ rdfs:subClassOf apint:Intent ;
80
+ rdfs:label "RelationshipIntent" .
81
+
82
+ apint:JoinOrganizationIntent a owl:Class ;
83
+ rdfs:subClassOf apint:RelationshipIntent ;
84
+ rdfs:label "JoinOrganizationIntent" ;
85
+ rdfs:comment "Expressed by MembershipApplication (REQUEST act)." .
86
+
87
+ apint:LeaveOrganizationIntent a owl:Class ;
88
+ rdfs:subClassOf apint:RelationshipIntent ;
89
+ rdfs:label "LeaveOrganizationIntent" .
90
+
91
+ apint:AssignRoleIntent a owl:Class ;
92
+ rdfs:subClassOf apint:RelationshipIntent ;
93
+ rdfs:label "AssignRoleIntent" .
45
94
 
46
95
  apint:MatchInitiation a owl:Class ;
47
96
  rdfs:subClassOf prov:Activity ;
@@ -71,22 +120,28 @@ apint:SolverBid a owl:Class ;
71
120
  # ─── Intent properties ────────────────────────────────────────────────
72
121
 
73
122
  apint:direction a owl:DatatypeProperty ;
74
- rdfs:domain apint:Intent ;
123
+ rdfs:domain apint:ResourceExchangeIntent ;
75
124
  rdfs:range xsd:string ;
76
125
  rdfs:label "direction" ;
77
- rdfs:comment "'receive' or 'give'. Single-class on Intent (Smart-agent SS-01 invariant). Matching rule: direction MUST be opposite + object MUST be equal." .
126
+ rdfs:comment "'receive' or 'give'. Resource-exchange matching: direction MUST be opposite + object MUST be equal." .
78
127
 
79
128
  apint:object a owl:ObjectProperty ;
80
- rdfs:domain apint:Intent ;
129
+ rdfs:domain apint:ResourceExchangeIntent ;
81
130
  rdfs:range skos:Concept ;
82
131
  rdfs:label "object" ;
83
- rdfs:comment "The SKOS concept (e.g. apint:NeedCoaching) describing WHAT is wanted/offered. Matching rule: must be exactly equal between matched pair." .
132
+ rdfs:comment "SKOS concept for WHAT is wanted/offered (marketplace intents only)." .
84
133
 
85
134
  apint:topic a owl:DatatypeProperty ;
86
135
  rdfs:domain apint:Intent ;
87
136
  rdfs:range xsd:string ;
88
137
  rdfs:label "topic" ;
89
- rdfs:comment "Free-text topic refinement; matched by topicSimilarity score (not equality)." .
138
+ rdfs:comment "DEPRECATED free-text refinement use apint:about. Not apmsg:DiscussionTopic." .
139
+
140
+ apint:about a owl:DatatypeProperty ;
141
+ rdfs:domain apint:Intent ;
142
+ rdfs:range xsd:string ;
143
+ rdfs:label "about" ;
144
+ rdfs:comment "Free-text aboutness refinement on an Intent. Distinct from apmsg:DiscussionTopic entity." .
90
145
 
91
146
  apint:expressedBy a owl:ObjectProperty ;
92
147
  rdfs:domain apint:Intent ;
@@ -0,0 +1,134 @@
1
+ # T-box — messaging / interaction-substrate vocabulary (spec 322 §3).
2
+ # RDFS/OWL terminology only. The durable interaction ARTIFACTS (envelopes, events, conversations,
3
+ # boards, directory listings) get classes; PROJECTIONS (inbox items, cursors, summaries) get NONE —
4
+ # a derived view must never be mistaken for a fact. These records are PRIVATE vault residents
5
+ # (ADR-0025): the ontology names their shapes; it never implies KB projection (ADR-0040 — the only
6
+ # public artifact is the OPT-IN listing anchor attestation, which reuses apatt: terms).
7
+ #
8
+ # Wire binding (one type system): `ap.message.v1` ↔ apmsg:MessageEnvelope,
9
+ # `ap.message.event.v1` ↔ apmsg:MessageEvent, `ap.conversation.v1` ↔ apmsg:Conversation,
10
+ # `ap.home.directory-listing.v1` ↔ aporg:DirectoryListing. The tag is the wire discriminator; the
11
+ # IRI is the semantic name; the TS interface (packages/fabric) is the enforced mirror.
12
+ # NOTE: apmsg:MessageEnvelope ≠ apful:Message (a fulfillment task message) — same word, different
13
+ # layer; see docs/architecture/vocabulary-map.md.
14
+
15
+ @prefix apmsg: <https://agenticprimitives.dev/ns/messaging#> .
16
+ @prefix aporg: <https://agenticprimitives.dev/ns/org#> .
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
+ @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
24
+
25
+ apmsg: a owl:Ontology ;
26
+ rdfs:label "Agentic Primitives — messaging / interaction substrate" ;
27
+ owl:versionInfo "0.1.0" .
28
+
29
+ # ─── Classes (apmsg) ─────────────────────────────────────────────────
30
+
31
+ apmsg:MessageEnvelope a owl:Class ;
32
+ rdfs:subClassOf prov:Entity ;
33
+ rdfs:label "MessageEnvelope" ;
34
+ rdfs:comment "A versioned message envelope (`ap.message.v1`): sender/recipients/subject/bodyHash — the body itself is a separate hash-bound vault record. Validated by apmsg:MessageEnvelopeShape (enforced by fabric's TS mirror)." .
35
+
36
+ apmsg:MessageEvent a owl:Class ;
37
+ rdfs:subClassOf prov:Activity ;
38
+ rdfs:label "MessageEvent" ;
39
+ rdfs:comment "A lifecycle activity on an envelope (`ap.message.event.v1`): delivered / sent / read / archived. Append-only; the inbox view is replayed from these." .
40
+
41
+ apmsg:Conversation a owl:Class ;
42
+ rdfs:subClassOf prov:Entity ;
43
+ rdfs:label "Conversation" ;
44
+ rdfs:comment "A conversation descriptor (`ap.conversation.v1`): participants, participantPolicy, contextRefs. A CHANNEL is a Conversation with participantPolicy 'open-to-context' — not a separate class." .
45
+
46
+ apmsg:ChannelBoard a owl:Class ;
47
+ rdfs:subClassOf prov:Entity ;
48
+ rdfs:label "ChannelBoard" ;
49
+ rdfs:comment "DEPRECATED name — org conversation/topic index (`conversation.index` post-W6). Legacy `board.*` vault records." .
50
+
51
+ # ─── Communicative acts + discussions (spec 324 §9–§10) ───────────────
52
+
53
+ apmsg:CommunicativeAct a owl:Class ;
54
+ rdfs:subClassOf prov:Activity ;
55
+ rdfs:label "CommunicativeAct" ;
56
+ rdfs:comment "Semantic act (INFORM, REQUEST, ACCEPT, …) carried by ExchangeEnvelope. May express zero..n Intents. ≠ MessageKind transport union." .
57
+
58
+ apmsg:Performative a owl:Class ;
59
+ rdfs:subClassOf skos:Concept ;
60
+ rdfs:label "Performative" ;
61
+ rdfs:comment "Closed vocabulary: INFORM, QUERY, REQUEST, PROPOSE, COUNTER, ACCEPT, REJECT, NOTIFY, ACKNOWLEDGE, ISSUE, RETRACT, SUBSCRIBE, UNSUBSCRIBE." .
62
+
63
+ apmsg:performedBy a owl:ObjectProperty ;
64
+ rdfs:domain apmsg:CommunicativeAct ; rdfs:range ap:Agent ;
65
+ rdfs:label "performedBy" .
66
+
67
+ apmsg:actAddressedTo a owl:ObjectProperty ;
68
+ rdfs:domain apmsg:CommunicativeAct ; rdfs:range ap:Agent ;
69
+ rdfs:label "actAddressedTo" .
70
+
71
+ apmsg:inRespondsTo a owl:ObjectProperty ;
72
+ rdfs:domain apmsg:CommunicativeAct ; rdfs:range apmsg:MessageEnvelope ;
73
+ rdfs:label "inRespondsTo" .
74
+
75
+ apmsg:Discussion a owl:Class ;
76
+ rdfs:subClassOf prov:Entity ;
77
+ rdfs:label "Discussion" ;
78
+ rdfs:comment "Abstract parent of DiscussionTopic and MessageThread." .
79
+
80
+ apmsg:DiscussionTopic a owl:Class ;
81
+ rdfs:subClassOf apmsg:Discussion ;
82
+ rdfs:label "DiscussionTopic" ;
83
+ rdfs:comment "Durable named partition inside a Conversation (UI label: Topic). What legacy UI called a 'channel' row." .
84
+
85
+ apmsg:MessageThread a owl:Class ;
86
+ rdfs:subClassOf apmsg:Discussion ;
87
+ rdfs:label "MessageThread" ;
88
+ rdfs:comment "Reply chain rooted at a message/exchange." .
89
+
90
+ apmsg:inConversation a owl:ObjectProperty ;
91
+ rdfs:domain apmsg:Discussion ; rdfs:range apmsg:Conversation ;
92
+ rdfs:label "inConversation" .
93
+
94
+ apmsg:hostedBy a owl:ObjectProperty ;
95
+ rdfs:domain apmsg:Conversation ; rdfs:range ap:Agent ;
96
+ rdfs:label "hostedBy" ;
97
+ rdfs:comment "Owner/host Agent. OrganizationAgent hosts Conversations — is not one." .
98
+
99
+ apmsg:ConversationProfile a owl:Class ;
100
+ rdfs:subClassOf skos:Concept ;
101
+ rdfs:label "ConversationProfile" ;
102
+ rdfs:comment "direct | group | discussion | broadcast | forum | announcement | support." .
103
+
104
+ # ─── Classes + predicates (aporg extension: the membership listing) ──
105
+
106
+ aporg:DirectoryListing a owl:Class ;
107
+ rdfs:subClassOf prov:Entity ;
108
+ rdfs:label "DirectoryListing" ;
109
+ rdfs:comment "A member's SELF-SIGNED presence listing in an org context (`ap.home.directory-listing.v1`) — the consent artifact channel membership derives from (spec 318/322). ERC-1271-verified against the subject SA at publish AND at gate time. Membership itself stays DERIVED (current listing + valid spec-321 delegation ⟹ aporg:memberOf) — never stored as a fact." .
110
+
111
+ aporg:listingSubject a owl:ObjectProperty ;
112
+ rdfs:domain aporg:DirectoryListing ; rdfs:range ap:CanonicalAgentId ;
113
+ rdfs:label "listingSubject" ; rdfs:comment "The person SA publishing themselves (self-published only)." .
114
+
115
+ aporg:listingContext a owl:ObjectProperty ;
116
+ rdfs:domain aporg:DirectoryListing ; rdfs:range ap:CanonicalAgentId ;
117
+ rdfs:label "listingContext" ; rdfs:comment "The org/community context the listing is scoped to." .
118
+
119
+ aporg:visibility a owl:DatatypeProperty ;
120
+ rdfs:domain aporg:DirectoryListing ; rdfs:range xsd:string ;
121
+ rdfs:label "visibility" ; rdfs:comment "'community' | 'public'. Display intent only — NEVER a residency or KB-projection signal (ADR-0040)." .
122
+
123
+ aporg:publishedAt a owl:DatatypeProperty ;
124
+ rdfs:domain aporg:DirectoryListing ; rdfs:range xsd:dateTime ;
125
+ rdfs:label "publishedAt" ; rdfs:comment "Monotonic per subject (replay guard, spec 322 §4)." .
126
+
127
+ aporg:expiresAt a owl:DatatypeProperty ;
128
+ rdfs:domain aporg:DirectoryListing ; rdfs:range xsd:dateTime ;
129
+ rdfs:label "expiresAt" .
130
+
131
+ aporg:listingHash a owl:DatatypeProperty ;
132
+ rdfs:domain aporg:DirectoryListing ; rdfs:range xsd:string ;
133
+ rdfs:label "listingHash" ;
134
+ rdfs:comment "sha256 of the canonical listing — the commitment an OPT-IN on-chain anchor attests to (apatt:credentialHash ≡ this; anchor requires the ADR-0025 amendment, spec 322 §6)." .
package/tbox/org.ttl ADDED
@@ -0,0 +1,122 @@
1
+ # T-box — organization membership, roles, enrollment (spec 324 §4–§8).
2
+ # OrganizationMembership is a Situation — not a delegation, not a directory listing.
3
+
4
+ @prefix aporg: <https://agenticprimitives.dev/ns/org#> .
5
+ @prefix apsit: <https://agenticprimitives.dev/ns/situation#> .
6
+ @prefix ap: <https://agenticprimitives.dev/ns/core#> .
7
+ @prefix apdel: <https://agenticprimitives.dev/ns/delegation#> .
8
+ @prefix apent: <https://agenticprimitives.dev/ns/entitlement#> .
9
+ @prefix apint: <https://agenticprimitives.dev/ns/intent#> .
10
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
11
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
12
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
13
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
14
+ @prefix prov: <http://www.w3.org/ns/prov#> .
15
+
16
+ aporg: a owl:Ontology ;
17
+ rdfs:label "Agentic Primitives — organization ontology" ;
18
+ owl:versionInfo "0.2.0" ;
19
+ rdfs:comment "Membership, roles, enrollment instruments (spec 324). DirectoryListing remains in tbox/messaging.ttl for wire compat." .
20
+
21
+ # ─── Membership ───────────────────────────────────────────────────────
22
+
23
+ aporg:OrganizationMembership a owl:Class ;
24
+ rdfs:subClassOf apsit:Situation ;
25
+ rdfs:label "OrganizationMembership" ;
26
+ rdfs:comment "Private-by-default Situation: exactly one memberAgent + one organizationAgent under an EnrollmentDecision. Member is NOT a class." .
27
+
28
+ aporg:memberAgent a owl:ObjectProperty ;
29
+ rdfs:domain aporg:OrganizationMembership ; rdfs:range ap:Agent ;
30
+ rdfs:label "memberAgent" .
31
+
32
+ aporg:organizationAgent a owl:ObjectProperty ;
33
+ rdfs:domain aporg:OrganizationMembership ; rdfs:range ap:OrganizationAgent ;
34
+ rdfs:label "organizationAgent" .
35
+
36
+ aporg:hasRoleAssignment a owl:ObjectProperty ;
37
+ rdfs:domain aporg:OrganizationMembership ; rdfs:range aporg:RoleAssignment ;
38
+ rdfs:label "hasRoleAssignment" .
39
+
40
+ # Convenience projection only — active membership is resolved externally (SHACL/resolver).
41
+ aporg:memberOf a owl:ObjectProperty ;
42
+ rdfs:domain ap:Agent ; rdfs:range ap:OrganizationAgent ;
43
+ rdfs:label "memberOf" ;
44
+ rdfs:comment "DERIVED: true iff active, valid, disclosable OrganizationMembership exists. Never asserted globally." .
45
+
46
+ # ─── Roles ────────────────────────────────────────────────────────────
47
+
48
+ aporg:OrganizationRoleDefinition a owl:Class ;
49
+ rdfs:subClassOf prov:Entity ;
50
+ rdfs:label "OrganizationRoleDefinition" ;
51
+ rdfs:comment "Reusable org-scoped role template. Declarative — does not authorize execution." .
52
+
53
+ aporg:OrganizationalPost a owl:Class ;
54
+ rdfs:subClassOf prov:Entity ;
55
+ rdfs:label "OrganizationalPost" ;
56
+ rdfs:comment "Enduring org position (e.g. Acme CFO post), distinct from OrganizationRoleDefinition template. W3C ORG Post pattern (spec 325)." .
57
+
58
+ aporg:RoleAssignment a owl:Class ;
59
+ rdfs:subClassOf apsit:Situation ;
60
+ rdfs:label "RoleAssignment" ;
61
+ rdfs:comment "Connects OrganizationMembership to OrganizationRoleDefinition. Materialized by Delegations — not itself authority." .
62
+
63
+ aporg:assignedMembership a owl:ObjectProperty ;
64
+ rdfs:domain aporg:RoleAssignment ; rdfs:range aporg:OrganizationMembership ;
65
+ rdfs:label "assignedMembership" .
66
+
67
+ aporg:assignedRole a owl:ObjectProperty ;
68
+ rdfs:domain aporg:RoleAssignment ; rdfs:range aporg:OrganizationRoleDefinition ;
69
+ rdfs:label "assignedRole" .
70
+
71
+ aporg:materializedByDelegation a owl:ObjectProperty ;
72
+ rdfs:domain aporg:RoleAssignment ; rdfs:range apdel:Delegation ;
73
+ rdfs:label "materializedByDelegation" .
74
+
75
+ aporg:supportedByEntitlement a owl:ObjectProperty ;
76
+ rdfs:domain aporg:RoleAssignment ; rdfs:range apent:AccessEntitlement ;
77
+ rdfs:label "supportedByEntitlement" .
78
+
79
+ # ─── Enrollment instruments (not membership) ──────────────────────────
80
+
81
+ aporg:EnrollmentPolicy a owl:Class ;
82
+ rdfs:subClassOf prov:Entity ;
83
+ rdfs:label "EnrollmentPolicy" ;
84
+ rdfs:comment "Organization joining policy. 'Admission' is ingress-only (ADR-0043) — use Enrollment for org joining." .
85
+
86
+ aporg:EnrollmentRequirement a owl:Class ;
87
+ rdfs:subClassOf prov:Entity ;
88
+ rdfs:label "EnrollmentRequirement" ;
89
+ rdfs:comment "Eligibility predicate; satisfying it does not create membership." .
90
+
91
+ aporg:MembershipInvitation a owl:Class ;
92
+ rdfs:subClassOf prov:Entity ;
93
+ rdfs:label "MembershipInvitation" ;
94
+ rdfs:comment "Directed enrollment proposal org→agent. Not a membership." .
95
+
96
+ aporg:MembershipInviteLink a owl:Class ;
97
+ rdfs:subClassOf prov:Entity ;
98
+ rdfs:label "MembershipInviteLink" ;
99
+ rdfs:comment "Bearer enrollment instrument (tokenHash only in storage). Not a Delegation." .
100
+
101
+ aporg:MembershipApplication a owl:Class ;
102
+ rdfs:subClassOf prov:Entity ;
103
+ rdfs:label "MembershipApplication" ;
104
+ rdfs:comment "Join request; usually expresses JoinOrganizationIntent via REQUEST act." .
105
+
106
+ aporg:EnrollmentDecision a owl:Class ;
107
+ rdfs:subClassOf prov:Entity ;
108
+ rdfs:label "EnrollmentDecision" ;
109
+ rdfs:comment "Signed approve/reject. Approval creates OrganizationMembership — does not grant arbitrary authority." .
110
+
111
+ aporg:MembershipTermination a owl:Class ;
112
+ rdfs:subClassOf prov:Entity ;
113
+ rdfs:label "MembershipTermination" .
114
+
115
+ aporg:AdmissionExclusion a owl:Class ;
116
+ rdfs:subClassOf prov:Entity ;
117
+ rdfs:label "AdmissionExclusion" ;
118
+ rdfs:comment "Org-level exclusion record — not ingress admission." .
119
+
120
+ aporg:expressesJoinIntent a owl:ObjectProperty ;
121
+ rdfs:domain aporg:MembershipApplication ; rdfs:range apint:JoinOrganizationIntent ;
122
+ rdfs:label "expressesJoinIntent" .
package/tbox/scope.ttl ADDED
@@ -0,0 +1,59 @@
1
+ # T-box — AP-Scope-V1 (spec 308 / G-8): the scope-statement + verifier-
2
+ # obligation classes and the profile annotation properties. The codelists
3
+ # (concepts) live in cbox/scope-vocabulary.ttl; this file declares what a
4
+ # SCOPE and an OBLIGATION are.
5
+
6
+ @prefix apscope: <https://agenticprimitives.dev/ns/scope#> .
7
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
8
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
9
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
10
+ @prefix prov: <http://www.w3.org/ns/prov#> .
11
+
12
+ apscope: a owl:Ontology ;
13
+ rdfs:label "Agentic Primitives — AP-Scope-V1 vocabulary" ;
14
+ owl:versionInfo "0.1.0" ;
15
+ rdfs:comment "Spec 308: the small shared scope vocabulary — action/resource/purpose/reliance classes, revocation modes, value-limit kinds — plus the reliance-class verifier profile. Deliberately coarse; external adoption over semantic perfection." .
16
+
17
+ apscope:Scope a owl:Class ;
18
+ rdfs:subClassOf prov:Entity ;
19
+ rdfs:label "Scope" ;
20
+ rdfs:comment "A scope STATEMENT: actionClass × resourceClass × purposeClass × value-limit shape. What a delegation/credential encodes and a verifier compares transaction parameters against (the article's duty 2). Never precise values — those live in caveats/predicates." .
21
+
22
+ apscope:VerifierObligation a owl:Class ;
23
+ rdfs:label "Verifier Obligation" ;
24
+ rdfs:comment "The duties a reliance class imposes on the verifier at execution time (spec 308 profile): the required revocation mode, status freshness, and receipt retention." .
25
+
26
+ # ─── Scope properties (ranges are the cbox concept schemes) ──────────────
27
+
28
+ apscope:hasActionClass a owl:ObjectProperty ;
29
+ rdfs:domain apscope:Scope ; rdfs:label "has action class" .
30
+ apscope:hasResourceClass a owl:ObjectProperty ;
31
+ rdfs:domain apscope:Scope ; rdfs:label "has resource class" .
32
+ apscope:hasPurposeClass a owl:ObjectProperty ;
33
+ rdfs:domain apscope:Scope ; rdfs:label "has purpose class" .
34
+ apscope:hasValueLimitKind a owl:ObjectProperty ;
35
+ rdfs:domain apscope:Scope ; rdfs:label "has value-limit kind" .
36
+ apscope:hasRelianceClass a owl:ObjectProperty ;
37
+ rdfs:label "has reliance class" ;
38
+ rdfs:comment "On a scope, a receipt profile, or a tool classification: which verifier profile applies." .
39
+
40
+ # ─── The reliance-profile annotation properties (used in the cbox) ───────
41
+
42
+ apscope:requiredRevocationMode a owl:ObjectProperty ;
43
+ rdfs:label "required revocation mode" ;
44
+ rdfs:comment "ONE mode per reliance class (ADR-0013 — configuration, never a runtime ladder). emergency-stop overrides in every class." .
45
+
46
+ apscope:statusFreshnessMs a owl:DatatypeProperty ;
47
+ rdfs:range xsd:integer ;
48
+ rdfs:label "status freshness (ms)" ;
49
+ rdfs:comment "Max age of a cached not-revoked answer. 12000 = chain-state's shipped bounded-freshness window (spec 289); 0 = live read per call." .
50
+
51
+ apscope:mustRetainReceipt a owl:DatatypeProperty ;
52
+ rdfs:range xsd:boolean ;
53
+ rdfs:label "must retain receipt" ;
54
+ rdfs:comment "Whether the verifier MUST retain a spec-303 verification receipt for this class (the article's duty 4; the G-12 liability schema keys off it)." .
55
+
56
+ apscope:emergencyStopHonored a owl:DatatypeProperty ;
57
+ rdfs:range xsd:boolean ;
58
+ rdfs:label "emergency stop honored" ;
59
+ rdfs:comment "Every conformant verifier honors a principal-published stop assertion regardless of class mode; declared explicitly on verifier profiles for the conformance suite (G-12)." .
@@ -0,0 +1,56 @@
1
+ # T-box — situation vocabulary (spec 324 §4; ADR-0048).
2
+ # DOLCE+DnS pattern: a Situation satisfies a Description and has RoleBindings.
3
+ # Situation ≠ Credential — a VC attests a Situation; the Situation is the state of affairs.
4
+
5
+ @prefix apsit: <https://agenticprimitives.dev/ns/situation#> .
6
+ @prefix ap: <https://agenticprimitives.dev/ns/core#> .
7
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
8
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
9
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
10
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
11
+ @prefix dul: <http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#> .
12
+
13
+ apsit: a owl:Ontology ;
14
+ rdfs:label "Agentic Primitives — situation ontology" ;
15
+ owl:versionInfo "0.2.0" ;
16
+ rdfs:comment "Substrate-level Situation primitive (spec 324). Runtime SituationV2 shapes live in @agenticprimitives/situations." .
17
+
18
+ apsit:Situation a owl:Class ;
19
+ rdfs:subClassOf dul:Situation ;
20
+ rdfs:label "Situation" ;
21
+ rdfs:comment "A state of affairs satisfying a Description with typed RoleBindings. Exists independently of any issued VC." .
22
+
23
+ apsit:Description a owl:Class ;
24
+ rdfs:subClassOf dul:Description ;
25
+ rdfs:label "Description" ;
26
+ rdfs:comment "A normative pattern (often a SHACL shape IRI) that a Situation satisfies." .
27
+
28
+ apsit:SituationRole a owl:Class ;
29
+ rdfs:subClassOf dul:Role ;
30
+ rdfs:label "SituationRole" ;
31
+ rdfs:comment "A typed participant slot in a DnS Situation (e.g. aporg:memberAgent). Ontology structure — not executable authority." .
32
+
33
+ apsit:RoleBinding a owl:Class ;
34
+ rdfs:label "RoleBinding" ;
35
+ rdfs:comment "Binds one SituationRole to one or more fillers (Agent, resource, Situation, or artifact)." .
36
+
37
+ apsit:TemporalExtent a owl:Class ;
38
+ rdfs:label "TemporalExtent" ;
39
+ rdfs:comment "Validity interval for a Situation or RoleAssignment." .
40
+
41
+ apsit:satisfies a owl:ObjectProperty ;
42
+ rdfs:domain apsit:Situation ; rdfs:range apsit:Description ;
43
+ rdfs:label "satisfies" .
44
+
45
+ apsit:hasRoleBinding a owl:ObjectProperty ;
46
+ rdfs:domain apsit:Situation ; rdfs:range apsit:RoleBinding ;
47
+ rdfs:label "hasRoleBinding" .
48
+
49
+ apsit:bindingRole a owl:ObjectProperty ;
50
+ rdfs:domain apsit:RoleBinding ; rdfs:range apsit:SituationRole ;
51
+ rdfs:label "bindingRole" .
52
+
53
+ apsit:bindingFiller a owl:ObjectProperty ;
54
+ rdfs:domain apsit:RoleBinding ;
55
+ rdfs:label "bindingFiller" ;
56
+ rdfs:comment "Filler may be an Agent, another Situation, a resource IRI, or an artifact ref." .