@logicsrc/schemas 0.1.0

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 (194) hide show
  1. package/README.md +34 -0
  2. package/fixtures/agent.yaml +20 -0
  3. package/fixtures/agentad-ad.yaml +33 -0
  4. package/fixtures/agentad-placement.yaml +21 -0
  5. package/fixtures/opencontext/conformance.json +279 -0
  6. package/fixtures/opencontext/invalid/audit-event-missing-actor.json +5 -0
  7. package/fixtures/opencontext/invalid/audit-event-unknown-event.json +9 -0
  8. package/fixtures/opencontext/invalid/bundle-bad-digest.json +11 -0
  9. package/fixtures/opencontext/invalid/bundle-bad-id.json +11 -0
  10. package/fixtures/opencontext/invalid/bundle-missing-digest.json +10 -0
  11. package/fixtures/opencontext/invalid/bundle-unknown-exclusion-reason.json +17 -0
  12. package/fixtures/opencontext/invalid/decision-bad-status.json +7 -0
  13. package/fixtures/opencontext/invalid/decision-missing-decision.json +5 -0
  14. package/fixtures/opencontext/invalid/decision-wrong-type.json +6 -0
  15. package/fixtures/opencontext/invalid/diagnostic-missing-ok.json +4 -0
  16. package/fixtures/opencontext/invalid/diagnostic-unknown-code.json +11 -0
  17. package/fixtures/opencontext/invalid/manifest-bad-authority.json +10 -0
  18. package/fixtures/opencontext/invalid/manifest-bad-extension.json +9 -0
  19. package/fixtures/opencontext/invalid/manifest-bad-id.json +4 -0
  20. package/fixtures/opencontext/invalid/manifest-bad-ttl.json +7 -0
  21. package/fixtures/opencontext/invalid/manifest-missing-version.json +3 -0
  22. package/fixtures/opencontext/invalid/manifest-role-bad-pattern.json +11 -0
  23. package/fixtures/opencontext/invalid/manifest-unknown-key.json +5 -0
  24. package/fixtures/opencontext/invalid/object-bad-digest.json +10 -0
  25. package/fixtures/opencontext/invalid/object-bad-id.json +4 -0
  26. package/fixtures/opencontext/invalid/object-bad-layer.json +5 -0
  27. package/fixtures/opencontext/invalid/object-bad-redaction-mode.json +10 -0
  28. package/fixtures/opencontext/invalid/object-bad-supersedes.json +7 -0
  29. package/fixtures/opencontext/invalid/object-confidence-out-of-range.json +5 -0
  30. package/fixtures/opencontext/invalid/object-extra-property.json +5 -0
  31. package/fixtures/opencontext/invalid/object-missing-id.json +3 -0
  32. package/fixtures/opencontext/invalid/object-missing-type.json +3 -0
  33. package/fixtures/opencontext/invalid/object-source-without-uri.json +9 -0
  34. package/fixtures/opencontext/invalid/object-unknown-authority.json +5 -0
  35. package/fixtures/opencontext/invalid/object-unknown-classification.json +5 -0
  36. package/fixtures/opencontext/invalid/object-unknown-trust.json +5 -0
  37. package/fixtures/opencontext/invalid/provenance-canonical-false.json +4 -0
  38. package/fixtures/opencontext/invalid/provenance-no-source.json +3 -0
  39. package/fixtures/opencontext/invalid/role-bad-classification.json +4 -0
  40. package/fixtures/opencontext/invalid/role-bad-include.json +6 -0
  41. package/fixtures/opencontext/invalid-manifest.json +177 -0
  42. package/fixtures/opencontext/resolution/authority-conflict/context/policies/refunds-observed.md +10 -0
  43. package/fixtures/opencontext/resolution/authority-conflict/context/policies/refunds.md +12 -0
  44. package/fixtures/opencontext/resolution/authority-conflict/expected.json +21 -0
  45. package/fixtures/opencontext/resolution/authority-conflict/opencontext.yaml +11 -0
  46. package/fixtures/opencontext/resolution/classification-ceiling/context/docs/handbook.md +11 -0
  47. package/fixtures/opencontext/resolution/classification-ceiling/context/docs/litigation.md +11 -0
  48. package/fixtures/opencontext/resolution/classification-ceiling/expected.json +32 -0
  49. package/fixtures/opencontext/resolution/classification-ceiling/opencontext.yaml +16 -0
  50. package/fixtures/opencontext/resolution/deny-overrides-allow/context/mission.md +10 -0
  51. package/fixtures/opencontext/resolution/deny-overrides-allow/context/policies/internal/margins.md +10 -0
  52. package/fixtures/opencontext/resolution/deny-overrides-allow/context/policies/refunds.md +10 -0
  53. package/fixtures/opencontext/resolution/deny-overrides-allow/expected.json +19 -0
  54. package/fixtures/opencontext/resolution/deny-overrides-allow/opencontext.yaml +17 -0
  55. package/fixtures/opencontext/resolution/duplicate-canonical/context/policies/refunds-rewrite.md +12 -0
  56. package/fixtures/opencontext/resolution/duplicate-canonical/context/policies/refunds.md +12 -0
  57. package/fixtures/opencontext/resolution/duplicate-canonical/expected.json +10 -0
  58. package/fixtures/opencontext/resolution/duplicate-canonical/opencontext.yaml +11 -0
  59. package/fixtures/opencontext/resolution/lifecycle/context/notes/current.md +11 -0
  60. package/fixtures/opencontext/resolution/lifecycle/context/notes/expired.md +12 -0
  61. package/fixtures/opencontext/resolution/lifecycle/context/notes/future.md +12 -0
  62. package/fixtures/opencontext/resolution/lifecycle/context/notes/stale.md +11 -0
  63. package/fixtures/opencontext/resolution/lifecycle/expected.json +30 -0
  64. package/fixtures/opencontext/resolution/lifecycle/opencontext.yaml +14 -0
  65. package/fixtures/opencontext/resolution/object-permissions/context/policies/payroll.md +12 -0
  66. package/fixtures/opencontext/resolution/object-permissions/context/policies/refunds.md +10 -0
  67. package/fixtures/opencontext/resolution/object-permissions/expected.json +32 -0
  68. package/fixtures/opencontext/resolution/object-permissions/opencontext.yaml +14 -0
  69. package/fixtures/opencontext/resolution/redaction/context/customers/acme.json +21 -0
  70. package/fixtures/opencontext/resolution/redaction/expected.json +28 -0
  71. package/fixtures/opencontext/resolution/redaction/opencontext.yaml +19 -0
  72. package/fixtures/opencontext/resolution/supersession/context/pricing/enterprise.v1.md +12 -0
  73. package/fixtures/opencontext/resolution/supersession/context/pricing/enterprise.v2.md +14 -0
  74. package/fixtures/opencontext/resolution/supersession/expected.json +33 -0
  75. package/fixtures/opencontext/resolution/supersession/opencontext.yaml +11 -0
  76. package/fixtures/opencontext/valid/audit-event.json +26 -0
  77. package/fixtures/opencontext/valid/bundle.json +67 -0
  78. package/fixtures/opencontext/valid/decision.json +51 -0
  79. package/fixtures/opencontext/valid/diagnostic.json +37 -0
  80. package/fixtures/opencontext/valid/manifest-minimal.json +4 -0
  81. package/fixtures/opencontext/valid/manifest.json +134 -0
  82. package/fixtures/opencontext/valid/object-minimal.json +4 -0
  83. package/fixtures/opencontext/valid/object-policy.json +75 -0
  84. package/fixtures/opencontext/valid/object-structured.json +34 -0
  85. package/fixtures/opencontext/valid/object-untrusted.json +19 -0
  86. package/fixtures/opencontext/valid/provenance-canonical.json +4 -0
  87. package/fixtures/opencontext/valid/provenance.json +14 -0
  88. package/fixtures/opencontext/valid/role.json +38 -0
  89. package/fixtures/openontology/conformance.json +158 -0
  90. package/fixtures/openontology/invalid/action-no-permissions.json +13 -0
  91. package/fixtures/openontology/invalid/changeset-empty-operations.json +10 -0
  92. package/fixtures/openontology/invalid/changeset-unknown-op.json +15 -0
  93. package/fixtures/openontology/invalid/claim-both-objects.json +14 -0
  94. package/fixtures/openontology/invalid/claim-confidence-out-of-range.json +14 -0
  95. package/fixtures/openontology/invalid/claim-extra-property.json +14 -0
  96. package/fixtures/openontology/invalid/claim-unknown-status.json +13 -0
  97. package/fixtures/openontology/invalid/entity-missing-canonical-name.json +8 -0
  98. package/fixtures/openontology/invalid/evidence-unknown-selector.json +10 -0
  99. package/fixtures/openontology/invalid/manifest-bad-id.json +15 -0
  100. package/fixtures/openontology/invalid/manifest-bad-version.json +15 -0
  101. package/fixtures/openontology/invalid/manifest-no-maintainer.json +11 -0
  102. package/fixtures/openontology/invalid/relationship-no-range.json +11 -0
  103. package/fixtures/openontology/valid/action.json +29 -0
  104. package/fixtures/openontology/valid/approval.json +12 -0
  105. package/fixtures/openontology/valid/changeset.json +34 -0
  106. package/fixtures/openontology/valid/claim-relationship.json +23 -0
  107. package/fixtures/openontology/valid/claim-value.json +15 -0
  108. package/fixtures/openontology/valid/constraint.json +12 -0
  109. package/fixtures/openontology/valid/entity-type.json +16 -0
  110. package/fixtures/openontology/valid/entity.json +16 -0
  111. package/fixtures/openontology/valid/event.json +17 -0
  112. package/fixtures/openontology/valid/evidence.json +12 -0
  113. package/fixtures/openontology/valid/manifest.json +21 -0
  114. package/fixtures/openontology/valid/namespace.json +7 -0
  115. package/fixtures/openontology/valid/property.json +8 -0
  116. package/fixtures/openontology/valid/query-adhoc.json +16 -0
  117. package/fixtures/openontology/valid/query.json +24 -0
  118. package/fixtures/openontology/valid/relationship-type.json +16 -0
  119. package/fixtures/openontology/valid/review.json +17 -0
  120. package/fixtures/openontology/valid/source.json +13 -0
  121. package/fixtures/openprd/conformance.json +104 -0
  122. package/fixtures/openprd/invalid/bad-filename.md +41 -0
  123. package/fixtures/openprd/invalid/bad-id-format.md +41 -0
  124. package/fixtures/openprd/invalid/bad-status.md +41 -0
  125. package/fixtures/openprd/invalid/dates-backwards.md +43 -0
  126. package/fixtures/openprd/invalid/duplicate-requirement.md +42 -0
  127. package/fixtures/openprd/invalid/id-mismatch.md +41 -0
  128. package/fixtures/openprd/invalid/missing-section.md +37 -0
  129. package/fixtures/openprd/invalid/missing-title.md +40 -0
  130. package/fixtures/openprd/invalid/no-front-matter.md +33 -0
  131. package/fixtures/openprd/invalid/out-of-order.md +41 -0
  132. package/fixtures/openprd/invalid/superseded-without-replacement.md +41 -0
  133. package/fixtures/openprd/invalid/unknown-key.md +42 -0
  134. package/fixtures/openprd/valid/bold-requirements.md +41 -0
  135. package/fixtures/openprd/valid/full.md +48 -0
  136. package/fixtures/openprd/valid/minimal.md +41 -0
  137. package/fixtures/openprd/valid/none-sections.md +41 -0
  138. package/fixtures/openprd/valid/subsections.md +47 -0
  139. package/fixtures/openprd/valid/superseded.md +42 -0
  140. package/fixtures/openprd-prd.yaml +12 -0
  141. package/fixtures/pull-request.yaml +24 -0
  142. package/fixtures/repo.yaml +27 -0
  143. package/fixtures/task.yaml +26 -0
  144. package/package.json +91 -0
  145. package/schemas/agentad-ad-request.schema.json +32 -0
  146. package/schemas/agentad-ad-response.schema.json +31 -0
  147. package/schemas/agentad-ad.schema.json +79 -0
  148. package/schemas/agentad-campaign.schema.json +40 -0
  149. package/schemas/agentad-click.schema.json +23 -0
  150. package/schemas/agentad-impression.schema.json +18 -0
  151. package/schemas/agentad-placement.schema.json +46 -0
  152. package/schemas/logicsrc-account-audit-event.schema.json +31 -0
  153. package/schemas/logicsrc-account-grant.schema.json +48 -0
  154. package/schemas/logicsrc-account-provider.schema.json +31 -0
  155. package/schemas/logicsrc-agent.schema.json +51 -0
  156. package/schemas/logicsrc-connected-account.schema.json +39 -0
  157. package/schemas/logicsrc-credential-audit-event.schema.json +32 -0
  158. package/schemas/logicsrc-credential-provider.schema.json +28 -0
  159. package/schemas/logicsrc-credential-sync-plan.schema.json +56 -0
  160. package/schemas/logicsrc-credential-sync-run.schema.json +35 -0
  161. package/schemas/logicsrc-email-message.schema.json +22 -0
  162. package/schemas/logicsrc-event.schema.json +25 -0
  163. package/schemas/logicsrc-opencontext-audit-event.schema.json +69 -0
  164. package/schemas/logicsrc-opencontext-bundle.schema.json +210 -0
  165. package/schemas/logicsrc-opencontext-decision.schema.json +229 -0
  166. package/schemas/logicsrc-opencontext-diagnostic.schema.json +123 -0
  167. package/schemas/logicsrc-opencontext-manifest.schema.json +337 -0
  168. package/schemas/logicsrc-opencontext-object.schema.json +311 -0
  169. package/schemas/logicsrc-opencontext-provenance.schema.json +76 -0
  170. package/schemas/logicsrc-opencontext-role.schema.json +93 -0
  171. package/schemas/logicsrc-openontology-action.schema.json +90 -0
  172. package/schemas/logicsrc-openontology-approval.schema.json +39 -0
  173. package/schemas/logicsrc-openontology-changeset.schema.json +168 -0
  174. package/schemas/logicsrc-openontology-claim.schema.json +148 -0
  175. package/schemas/logicsrc-openontology-constraint.schema.json +104 -0
  176. package/schemas/logicsrc-openontology-entity-type.schema.json +107 -0
  177. package/schemas/logicsrc-openontology-entity.schema.json +59 -0
  178. package/schemas/logicsrc-openontology-event.schema.json +60 -0
  179. package/schemas/logicsrc-openontology-evidence.schema.json +121 -0
  180. package/schemas/logicsrc-openontology-manifest.schema.json +148 -0
  181. package/schemas/logicsrc-openontology-namespace.schema.json +21 -0
  182. package/schemas/logicsrc-openontology-package.schema.json +73 -0
  183. package/schemas/logicsrc-openontology-property.schema.json +83 -0
  184. package/schemas/logicsrc-openontology-query.schema.json +207 -0
  185. package/schemas/logicsrc-openontology-relationship-type.schema.json +57 -0
  186. package/schemas/logicsrc-openontology-review.schema.json +37 -0
  187. package/schemas/logicsrc-openontology-source.schema.json +43 -0
  188. package/schemas/logicsrc-plugin.schema.json +35 -0
  189. package/schemas/logicsrc-pull-request.schema.json +73 -0
  190. package/schemas/logicsrc-repo.schema.json +73 -0
  191. package/schemas/logicsrc-run.schema.json +69 -0
  192. package/schemas/logicsrc-social-post.schema.json +26 -0
  193. package/schemas/logicsrc-task.schema.json +114 -0
  194. package/schemas/openprd-prd.schema.json +79 -0
@@ -0,0 +1,158 @@
1
+ {
2
+ "openontologyConformance": "0.1",
3
+ "description": "Conformance fixtures for LogicSRC OpenOntology. A third-party implementation can run these against the published JSON Schemas with no LogicSRC code: every valid fixture must validate, every invalid fixture must fail.",
4
+ "valid": [
5
+ {
6
+ "fixture": "valid/manifest.json",
7
+ "kind": "openontology-manifest"
8
+ },
9
+ {
10
+ "fixture": "valid/namespace.json",
11
+ "kind": "openontology-namespace"
12
+ },
13
+ {
14
+ "fixture": "valid/entity-type.json",
15
+ "kind": "openontology-entity-type"
16
+ },
17
+ {
18
+ "fixture": "valid/property.json",
19
+ "kind": "openontology-property"
20
+ },
21
+ {
22
+ "fixture": "valid/relationship-type.json",
23
+ "kind": "openontology-relationship-type"
24
+ },
25
+ {
26
+ "fixture": "valid/constraint.json",
27
+ "kind": "openontology-constraint"
28
+ },
29
+ {
30
+ "fixture": "valid/query.json",
31
+ "kind": "openontology-query"
32
+ },
33
+ {
34
+ "fixture": "valid/query-adhoc.json",
35
+ "kind": "openontology-query"
36
+ },
37
+ {
38
+ "fixture": "valid/action.json",
39
+ "kind": "openontology-action"
40
+ },
41
+ {
42
+ "fixture": "valid/entity.json",
43
+ "kind": "openontology-entity"
44
+ },
45
+ {
46
+ "fixture": "valid/claim-relationship.json",
47
+ "kind": "openontology-claim"
48
+ },
49
+ {
50
+ "fixture": "valid/claim-value.json",
51
+ "kind": "openontology-claim"
52
+ },
53
+ {
54
+ "fixture": "valid/source.json",
55
+ "kind": "openontology-source"
56
+ },
57
+ {
58
+ "fixture": "valid/evidence.json",
59
+ "kind": "openontology-evidence"
60
+ },
61
+ {
62
+ "fixture": "valid/changeset.json",
63
+ "kind": "openontology-changeset"
64
+ },
65
+ {
66
+ "fixture": "valid/review.json",
67
+ "kind": "openontology-review"
68
+ },
69
+ {
70
+ "fixture": "valid/approval.json",
71
+ "kind": "openontology-approval"
72
+ },
73
+ {
74
+ "fixture": "valid/event.json",
75
+ "kind": "openontology-event"
76
+ }
77
+ ],
78
+ "invalid": [
79
+ {
80
+ "fixture": "invalid/claim-both-objects.json",
81
+ "kind": "openontology-claim",
82
+ "mustFail": true,
83
+ "reason": "A claim object carries an entity reference or a typed value, never both."
84
+ },
85
+ {
86
+ "fixture": "invalid/claim-unknown-status.json",
87
+ "kind": "openontology-claim",
88
+ "mustFail": true,
89
+ "reason": "status must be one of the six declared claim states."
90
+ },
91
+ {
92
+ "fixture": "invalid/claim-confidence-out-of-range.json",
93
+ "kind": "openontology-claim",
94
+ "mustFail": true,
95
+ "reason": "confidence must be between 0 and 1."
96
+ },
97
+ {
98
+ "fixture": "invalid/claim-extra-property.json",
99
+ "kind": "openontology-claim",
100
+ "mustFail": true,
101
+ "reason": "Undeclared properties are rejected; extensions must go in the namespaced extensions object."
102
+ },
103
+ {
104
+ "fixture": "invalid/entity-missing-canonical-name.json",
105
+ "kind": "openontology-entity",
106
+ "mustFail": true,
107
+ "reason": "canonicalName is required on every entity."
108
+ },
109
+ {
110
+ "fixture": "invalid/manifest-no-maintainer.json",
111
+ "kind": "openontology-manifest",
112
+ "mustFail": true,
113
+ "reason": "At least one maintainer is required."
114
+ },
115
+ {
116
+ "fixture": "invalid/manifest-bad-version.json",
117
+ "kind": "openontology-manifest",
118
+ "mustFail": true,
119
+ "reason": "Package versions must be semantic versions."
120
+ },
121
+ {
122
+ "fixture": "invalid/manifest-bad-id.json",
123
+ "kind": "openontology-manifest",
124
+ "mustFail": true,
125
+ "reason": "Package ids are lowercase kebab-case."
126
+ },
127
+ {
128
+ "fixture": "invalid/relationship-no-range.json",
129
+ "kind": "openontology-relationship-type",
130
+ "mustFail": true,
131
+ "reason": "A relationship type must declare at least one allowed object type."
132
+ },
133
+ {
134
+ "fixture": "invalid/evidence-unknown-selector.json",
135
+ "kind": "openontology-evidence",
136
+ "mustFail": true,
137
+ "reason": "Evidence selectors must use one of the declared machine-readable shapes."
138
+ },
139
+ {
140
+ "fixture": "invalid/changeset-empty-operations.json",
141
+ "kind": "openontology-changeset",
142
+ "mustFail": true,
143
+ "reason": "A change set must contain at least one operation."
144
+ },
145
+ {
146
+ "fixture": "invalid/changeset-unknown-op.json",
147
+ "kind": "openontology-changeset",
148
+ "mustFail": true,
149
+ "reason": "Hard deletion is not an operation; use retract-claim or archive-entity."
150
+ },
151
+ {
152
+ "fixture": "invalid/action-no-permissions.json",
153
+ "kind": "openontology-action",
154
+ "mustFail": true,
155
+ "reason": "Actions must declare the scopes they require."
156
+ }
157
+ ]
158
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Action",
4
+ "id": "doThing",
5
+ "label": "Do thing",
6
+ "executor": {
7
+ "type": "http",
8
+ "endpoint": "https://example.org/do"
9
+ },
10
+ "approval": {
11
+ "mode": "none"
12
+ }
13
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "ChangeSet",
4
+ "id": "changeset:bad",
5
+ "title": "Nothing",
6
+ "createdAt": "2026-07-26T00:00:00Z",
7
+ "createdBy": "curator",
8
+ "operations": [],
9
+ "status": "proposed"
10
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "ChangeSet",
4
+ "id": "changeset:bad2",
5
+ "title": "Delete everything",
6
+ "createdAt": "2026-07-26T00:00:00Z",
7
+ "createdBy": "curator",
8
+ "operations": [
9
+ {
10
+ "op": "delete-claim",
11
+ "target": "ex:claim:0001"
12
+ }
13
+ ],
14
+ "status": "proposed"
15
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Claim",
4
+ "id": "ex:claim:bad",
5
+ "subject": "ex:person:alice",
6
+ "predicate": "worksOn",
7
+ "object": {
8
+ "entity": "ex:project:zk",
9
+ "value": "ZK"
10
+ },
11
+ "status": "asserted",
12
+ "assertedAt": "2026-07-26T00:00:00Z",
13
+ "assertedBy": "curator"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Claim",
4
+ "id": "ex:claim:bad3",
5
+ "subject": "ex:person:alice",
6
+ "predicate": "worksOn",
7
+ "object": {
8
+ "entity": "ex:project:zk"
9
+ },
10
+ "status": "asserted",
11
+ "confidence": 1.4,
12
+ "assertedAt": "2026-07-26T00:00:00Z",
13
+ "assertedBy": "curator"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Claim",
4
+ "id": "ex:claim:bad4",
5
+ "subject": "ex:person:alice",
6
+ "predicate": "worksOn",
7
+ "object": {
8
+ "entity": "ex:project:zk"
9
+ },
10
+ "status": "asserted",
11
+ "assertedAt": "2026-07-26T00:00:00Z",
12
+ "assertedBy": "curator",
13
+ "chainOfThought": "first I considered..."
14
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Claim",
4
+ "id": "ex:claim:bad2",
5
+ "subject": "ex:person:alice",
6
+ "predicate": "worksOn",
7
+ "object": {
8
+ "entity": "ex:project:zk"
9
+ },
10
+ "status": "probably",
11
+ "assertedAt": "2026-07-26T00:00:00Z",
12
+ "assertedBy": "curator"
13
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Entity",
4
+ "id": "ex:person:bob",
5
+ "type": "Person",
6
+ "createdAt": "2026-07-26T00:00:00Z",
7
+ "createdBy": "curator"
8
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Evidence",
4
+ "id": "ex:evidence:bad",
5
+ "source": "ex:source:repo",
6
+ "selector": {
7
+ "type": "vibes",
8
+ "hint": "somewhere in the file"
9
+ }
10
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "OntologyPackage",
4
+ "id": "Example_Ontology",
5
+ "name": "Example",
6
+ "version": "0.1.0",
7
+ "namespace": "https://logicsrc.com/ontology/example/",
8
+ "description": "Id is not kebab-case.",
9
+ "license": "CC-BY-4.0",
10
+ "maintainers": [
11
+ {
12
+ "id": "mailto:c@example.org"
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "OntologyPackage",
4
+ "id": "example-ontology",
5
+ "name": "Example",
6
+ "version": "v1",
7
+ "namespace": "https://logicsrc.com/ontology/example/",
8
+ "description": "Version is not semver.",
9
+ "license": "CC-BY-4.0",
10
+ "maintainers": [
11
+ {
12
+ "id": "mailto:c@example.org"
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "OntologyPackage",
4
+ "id": "example-ontology",
5
+ "name": "Example",
6
+ "version": "0.1.0",
7
+ "namespace": "https://logicsrc.com/ontology/example/",
8
+ "description": "Missing maintainers.",
9
+ "license": "CC-BY-4.0",
10
+ "maintainers": []
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "RelationshipType",
4
+ "id": "worksOn",
5
+ "label": "works on",
6
+ "description": "Missing to.",
7
+ "from": [
8
+ "Person"
9
+ ],
10
+ "to": []
11
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Action",
4
+ "id": "createProjectReviewTask",
5
+ "label": "Create project review task",
6
+ "input": {
7
+ "project": {
8
+ "entityType": "Project",
9
+ "required": true
10
+ }
11
+ },
12
+ "executor": {
13
+ "type": "logicsrc-plugin-tool",
14
+ "plugin": "commandboard",
15
+ "tool": "task.create"
16
+ },
17
+ "permissions": {
18
+ "required": [
19
+ "ontology:action:execute"
20
+ ]
21
+ },
22
+ "approval": {
23
+ "mode": "policy"
24
+ },
25
+ "sideEffects": [
26
+ "creates-task",
27
+ "emits-event"
28
+ ]
29
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Approval",
4
+ "id": "approval:0001",
5
+ "changeSet": "changeset:0001",
6
+ "approver": "mailto:curator@example.org",
7
+ "approverType": "human",
8
+ "scopes": [
9
+ "ontology:changeset:approve"
10
+ ],
11
+ "createdAt": "2026-07-26T00:00:00Z"
12
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "ChangeSet",
4
+ "id": "changeset:0001",
5
+ "ontology": "example-ontology@0.1.0",
6
+ "title": "Add Alice as a contributor",
7
+ "rationale": "Repository activity identifies the contribution.",
8
+ "createdAt": "2026-07-26T00:00:00Z",
9
+ "createdBy": "agent:research-mapper",
10
+ "actorType": "agent",
11
+ "runId": "run_01J3EXAMPLE",
12
+ "operations": [
13
+ {
14
+ "op": "add-entity",
15
+ "value": {
16
+ "id": "ex:person:alice",
17
+ "type": "Person",
18
+ "canonicalName": "Alice Reyes"
19
+ }
20
+ },
21
+ {
22
+ "op": "assert-claim",
23
+ "value": {
24
+ "subject": "ex:person:alice",
25
+ "predicate": "worksOn",
26
+ "object": {
27
+ "entity": "ex:project:zk"
28
+ }
29
+ }
30
+ }
31
+ ],
32
+ "requiredApprovals": 1,
33
+ "status": "proposed"
34
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Claim",
4
+ "id": "ex:claim:0001",
5
+ "ontology": "example-ontology@0.1.0",
6
+ "subject": "ex:person:alice",
7
+ "predicate": "worksOn",
8
+ "object": {
9
+ "entity": "ex:project:zk"
10
+ },
11
+ "status": "asserted",
12
+ "confidence": 0.94,
13
+ "validTime": {
14
+ "from": "2026-04-01T00:00:00Z",
15
+ "to": null
16
+ },
17
+ "assertedAt": "2026-07-26T00:00:00Z",
18
+ "assertedBy": "agent:research-mapper",
19
+ "runId": "run_01J3EXAMPLE",
20
+ "sources": [
21
+ "ex:source:repo"
22
+ ]
23
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Claim",
4
+ "id": "ex:claim:0002",
5
+ "subject": "ex:project:zk",
6
+ "predicate": "homepage",
7
+ "object": {
8
+ "value": "https://example.org/zk",
9
+ "datatype": "url"
10
+ },
11
+ "status": "asserted",
12
+ "assertedAt": "2026-07-26T00:00:00Z",
13
+ "assertedBy": "mailto:curator@example.org",
14
+ "firstParty": true
15
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Constraint",
4
+ "id": "project-has-homepage",
5
+ "description": "Projects should record a homepage.",
6
+ "severity": "warning",
7
+ "rule": {
8
+ "type": "required-predicate",
9
+ "entityType": "Project",
10
+ "predicate": "homepage"
11
+ }
12
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "EntityType",
4
+ "id": "Person",
5
+ "label": "Person",
6
+ "description": "A human participant.",
7
+ "keyProperties": [
8
+ "canonicalName"
9
+ ],
10
+ "properties": {
11
+ "role": {
12
+ "type": "string",
13
+ "required": false
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Entity",
4
+ "id": "ex:person:alice",
5
+ "type": "Person",
6
+ "canonicalName": "Alice Reyes",
7
+ "aliases": [
8
+ "alice.eth"
9
+ ],
10
+ "externalIds": {
11
+ "github": "alice"
12
+ },
13
+ "status": "active",
14
+ "createdAt": "2026-07-26T00:00:00Z",
15
+ "createdBy": "mailto:curator@example.org"
16
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Event",
4
+ "id": "event:0001",
5
+ "type": "changeset.applied",
6
+ "ontology": "example-ontology",
7
+ "at": "2026-07-26T00:00:00Z",
8
+ "actor": "mailto:curator@example.org",
9
+ "actorType": "human",
10
+ "changeSet": "changeset:0001",
11
+ "revision": "data-000042",
12
+ "policyDecision": {
13
+ "rule": "apply.scope",
14
+ "decision": "allow",
15
+ "reason": "Actor holds ontology:claim:write"
16
+ }
17
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Evidence",
4
+ "id": "ex:evidence:0001",
5
+ "source": "ex:source:repo",
6
+ "selector": {
7
+ "type": "line-range",
8
+ "start": 41,
9
+ "end": 48
10
+ },
11
+ "excerpt": "Alice authored the prover module."
12
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "OntologyPackage",
4
+ "id": "example-ontology",
5
+ "name": "Example Ontology",
6
+ "version": "0.1.0",
7
+ "namespace": "https://logicsrc.com/ontology/example/",
8
+ "description": "A minimal conforming package manifest.",
9
+ "license": "CC-BY-4.0",
10
+ "maintainers": [
11
+ {
12
+ "id": "mailto:curator@example.org"
13
+ }
14
+ ],
15
+ "schema": {
16
+ "entityTypes": "schema/entity-types.yaml"
17
+ },
18
+ "data": {
19
+ "entities": "data/entities.ndjson"
20
+ }
21
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Namespace",
4
+ "prefix": "ex",
5
+ "uri": "https://logicsrc.com/ontology/example/",
6
+ "description": "Compact prefix for the example package."
7
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Property",
4
+ "id": "homepage",
5
+ "label": "homepage",
6
+ "description": "Canonical URL.",
7
+ "type": "url"
8
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "openontologyQuery": "0.1",
3
+ "ontology": "example-ontology@0.1.0",
4
+ "match": [
5
+ {
6
+ "subject": "?person",
7
+ "predicate": "worksOn",
8
+ "object": "ex:project:zk"
9
+ }
10
+ ],
11
+ "select": [
12
+ "?person"
13
+ ],
14
+ "asOf": "2026-07-26T00:00:00Z",
15
+ "limit": 100
16
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "SavedQuery",
4
+ "id": "contributors",
5
+ "description": "People working on a project.",
6
+ "query": {
7
+ "match": [
8
+ {
9
+ "subject": "?person",
10
+ "predicate": "worksOn",
11
+ "object": "?project"
12
+ }
13
+ ],
14
+ "select": [
15
+ "?person",
16
+ "?project"
17
+ ],
18
+ "include": {
19
+ "claimStatus": [
20
+ "asserted"
21
+ ]
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "RelationshipType",
4
+ "id": "worksOn",
5
+ "label": "works on",
6
+ "description": "A person contributes work to a project.",
7
+ "from": [
8
+ "Person"
9
+ ],
10
+ "to": [
11
+ "Project"
12
+ ],
13
+ "cardinality": "many-to-many",
14
+ "temporal": true,
15
+ "inverse": "hasContributor"
16
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "openontology": "0.1",
3
+ "kind": "Review",
4
+ "id": "review:0001",
5
+ "changeSet": "changeset:0001",
6
+ "reviewer": "mailto:curator@example.org",
7
+ "state": "changes-requested",
8
+ "comment": "Second operation lacks a source.",
9
+ "createdAt": "2026-07-26T00:00:00Z",
10
+ "operationDecisions": [
11
+ {
12
+ "index": 1,
13
+ "decision": "reject",
14
+ "comment": "no evidence"
15
+ }
16
+ ]
17
+ }