causalontology 2.0.0 → 4.0.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.
- checksums.yaml +4 -4
- data/README.md +56 -14
- data/conformance.rb +503 -11
- data/lib/causalontology/canonical.rb +14 -4
- data/lib/causalontology/schema.rb +14 -1
- data/lib/causalontology/semantics.rb +161 -16
- data/lib/causalontology/spec/schema/assertion.schema.json +75 -0
- data/lib/causalontology/spec/schema/attitude.schema.json +45 -0
- data/lib/causalontology/spec/schema/bridge.schema.json +46 -0
- data/lib/causalontology/spec/schema/causal_relation_object.schema.json +111 -0
- data/lib/causalontology/spec/schema/conduit.schema.json +56 -0
- data/lib/causalontology/spec/schema/continuant.schema.json +38 -0
- data/lib/causalontology/spec/schema/cross_stratal_seam.schema.json +50 -0
- data/lib/causalontology/spec/schema/enrichment.schema.json +80 -0
- data/lib/causalontology/spec/schema/individual.schema.json +36 -0
- data/lib/causalontology/spec/schema/occurrent.schema.json +42 -0
- data/lib/causalontology/spec/schema/port.schema.json +56 -0
- data/lib/causalontology/spec/schema/predicted_occurrence.schema.json +68 -0
- data/lib/causalontology/spec/schema/prediction_error.schema.json +37 -0
- data/lib/causalontology/spec/schema/quality.schema.json +44 -0
- data/lib/causalontology/spec/schema/realizable.schema.json +38 -0
- data/lib/causalontology/spec/schema/retraction.schema.json +43 -0
- data/lib/causalontology/spec/schema/state.schema.json +89 -0
- data/lib/causalontology/spec/schema/stratum.schema.json +52 -0
- data/lib/causalontology/spec/schema/succession.schema.json +39 -0
- data/lib/causalontology/spec/schema/token.schema.json +96 -0
- data/lib/causalontology/spec/schema/token_causal_claim.schema.json +76 -0
- data/lib/causalontology/store.rb +5 -2
- data/lib/causalontology.rb +17 -1
- metadata +23 -2
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://causalontology.org/schema/continuant.schema.json",
|
|
4
|
+
"title": "Continuant",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"id",
|
|
8
|
+
"label",
|
|
9
|
+
"category"
|
|
10
|
+
],
|
|
11
|
+
"additionalProperties": false,
|
|
12
|
+
"properties": {
|
|
13
|
+
"id": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"pattern": "^continuant:[0-9a-f]{64}$"
|
|
16
|
+
},
|
|
17
|
+
"type": {
|
|
18
|
+
"const": "continuant"
|
|
19
|
+
},
|
|
20
|
+
"label": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"minLength": 1,
|
|
23
|
+
"pattern": "^[a-z][a-z0-9_]*$",
|
|
24
|
+
"description": "canonical label, same discipline as occurrents; homonyms by qualification (bat_animal, bat_club)"
|
|
25
|
+
},
|
|
26
|
+
"category": {
|
|
27
|
+
"enum": [
|
|
28
|
+
"object",
|
|
29
|
+
"agent",
|
|
30
|
+
"place",
|
|
31
|
+
"substance",
|
|
32
|
+
"collection",
|
|
33
|
+
"information"
|
|
34
|
+
],
|
|
35
|
+
"description": "REQUIRED and CLOSED; extending this enumeration is a MAJOR version change"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://causalontology.org/schema/cross_stratal_seam.schema.json",
|
|
4
|
+
"title": "Cross Stratal Seam",
|
|
5
|
+
"description": "3.0.0. A first-class MANAGED record of a legitimate jump across NON-ADJACENT strata. Where the Causal Relation Object's boolean 'skips' flag can only assert THAT a relation crosses non-adjacent strata, a Cross Stratal Seam records HOW HONEST that jump is: its mechanism_status distinguishes 'a mechanism exists but is deliberately unmodeled here' from 'no mechanism exists', and an optional chain draws the intervening adjacent-stratum pathway. Its HOME is the coarsest stratum it touches (the endpoint of greater ordinal), which a layer-to-stratum binding can check. The 'skips' boolean is SUBORDINATED to this construct: a bare skipping Causal Relation Object remains valid and is the coarse, mechanism-status-unspecified form.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"id",
|
|
9
|
+
"type",
|
|
10
|
+
"source",
|
|
11
|
+
"target",
|
|
12
|
+
"mechanism_status"
|
|
13
|
+
],
|
|
14
|
+
"additionalProperties": false,
|
|
15
|
+
"properties": {
|
|
16
|
+
"id": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"pattern": "^cross_stratal_seam:[0-9a-f]{64}$"
|
|
19
|
+
},
|
|
20
|
+
"type": {
|
|
21
|
+
"const": "cross_stratal_seam"
|
|
22
|
+
},
|
|
23
|
+
"source": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"pattern": "^occurrent:[0-9a-f]{64}$",
|
|
26
|
+
"description": "one endpoint occurrent of the seam; its stratum ordinal is one end of the jump"
|
|
27
|
+
},
|
|
28
|
+
"target": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"pattern": "^occurrent:[0-9a-f]{64}$",
|
|
31
|
+
"description": "the other endpoint occurrent of the seam; its stratum ordinal is the other end of the jump"
|
|
32
|
+
},
|
|
33
|
+
"mechanism_status": {
|
|
34
|
+
"enum": [
|
|
35
|
+
"unmodeled",
|
|
36
|
+
"absent"
|
|
37
|
+
],
|
|
38
|
+
"description": "the HONEST-IGNORANCE distinction. 'unmodeled': an intervening mechanism EXISTS across the skipped strata but is deliberately not drawn here. 'absent': there is genuinely NO intervening mechanism - the jump is direct. This is exactly what the boolean skips flag could not say."
|
|
39
|
+
},
|
|
40
|
+
"chain": {
|
|
41
|
+
"type": "array",
|
|
42
|
+
"minItems": 1,
|
|
43
|
+
"items": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"pattern": "^occurrent:[0-9a-f]{64}$"
|
|
46
|
+
},
|
|
47
|
+
"description": "OPTIONAL. The intervening pathway DRAWN as an ordered list of occurrents at INTERVENING strata (each strictly between the two endpoints' stratum ordinals, same scheme, strictly monotone from one endpoint toward the other). When present the seam is DRAWN, so its mechanism_status must be 'unmodeled', never 'absent' (a drawn mechanism is not absent)."
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://causalontology.org/schema/enrichment.schema.json",
|
|
4
|
+
"title": "Enrichment",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"id",
|
|
8
|
+
"about",
|
|
9
|
+
"field",
|
|
10
|
+
"entry",
|
|
11
|
+
"source",
|
|
12
|
+
"timestamp"
|
|
13
|
+
],
|
|
14
|
+
"additionalProperties": false,
|
|
15
|
+
"properties": {
|
|
16
|
+
"id": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"pattern": "^enrichment:[0-9a-f]{64}$"
|
|
19
|
+
},
|
|
20
|
+
"type": {
|
|
21
|
+
"const": "enrichment"
|
|
22
|
+
},
|
|
23
|
+
"about": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"pattern": "^(occurrent|continuant|realizable):[0-9a-f]{64}$",
|
|
26
|
+
"description": "the content object being enriched (Causal Relation Objects are never enriched in place - they are refined)"
|
|
27
|
+
},
|
|
28
|
+
"field": {
|
|
29
|
+
"enum": [
|
|
30
|
+
"aliases",
|
|
31
|
+
"participants",
|
|
32
|
+
"subsumes",
|
|
33
|
+
"part_of",
|
|
34
|
+
"realized_in",
|
|
35
|
+
"occurrent_subsumes",
|
|
36
|
+
"occurrent_part_of"
|
|
37
|
+
],
|
|
38
|
+
"description": "field-to-kind validity is fixed by semantics.md rule 12 (amended in 2.0.0: two occurrent forms added)"
|
|
39
|
+
},
|
|
40
|
+
"entry": {
|
|
41
|
+
"oneOf": [
|
|
42
|
+
{
|
|
43
|
+
"type": "object",
|
|
44
|
+
"required": [
|
|
45
|
+
"lang",
|
|
46
|
+
"text"
|
|
47
|
+
],
|
|
48
|
+
"additionalProperties": false,
|
|
49
|
+
"properties": {
|
|
50
|
+
"lang": {
|
|
51
|
+
"type": "string"
|
|
52
|
+
},
|
|
53
|
+
"text": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"minLength": 1
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"description": "the entry shape for the aliases field (lang is a BCP 47 language tag)"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"type": "string",
|
|
62
|
+
"pattern": "^(occurrent|continuant):[0-9a-f]{64}$",
|
|
63
|
+
"description": "the entry shape for the reference fields, checked per field by semantics.md rule 12"
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
"source": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"pattern": "^ed25519:[0-9a-f]{64}$"
|
|
70
|
+
},
|
|
71
|
+
"timestamp": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"format": "date-time"
|
|
74
|
+
},
|
|
75
|
+
"signature": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"pattern": "^[0-9a-f]{128}$"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://causalontology.org/schema/individual.schema.json",
|
|
4
|
+
"title": "Token Individual",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"id",
|
|
8
|
+
"type",
|
|
9
|
+
"instantiates"
|
|
10
|
+
],
|
|
11
|
+
"additionalProperties": false,
|
|
12
|
+
"properties": {
|
|
13
|
+
"id": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"pattern": "^token_individual:[0-9a-f]{64}$"
|
|
16
|
+
},
|
|
17
|
+
"type": {
|
|
18
|
+
"const": "token_individual"
|
|
19
|
+
},
|
|
20
|
+
"instantiates": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"pattern": "^continuant:[0-9a-f]{64}$",
|
|
23
|
+
"description": "the continuant TYPE of which this is an instance; MANDATORY (P1)"
|
|
24
|
+
},
|
|
25
|
+
"designator": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"minLength": 1,
|
|
28
|
+
"description": "an OPAQUE local designator distinguishing this individual from others of its type. SEE THE PRIVACY REQUIREMENT, N5.1.3 / spec/safety.md."
|
|
29
|
+
},
|
|
30
|
+
"part_of": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"pattern": "^token_individual:[0-9a-f]{64}$",
|
|
33
|
+
"description": "optional: the particular individual of which this is a part (TOKEN mereology)"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://causalontology.org/schema/occurrent.schema.json",
|
|
4
|
+
"title": "Occurrent",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"id",
|
|
8
|
+
"label",
|
|
9
|
+
"category"
|
|
10
|
+
],
|
|
11
|
+
"additionalProperties": false,
|
|
12
|
+
"properties": {
|
|
13
|
+
"id": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"pattern": "^occurrent:[0-9a-f]{64}$"
|
|
16
|
+
},
|
|
17
|
+
"type": {
|
|
18
|
+
"const": "occurrent"
|
|
19
|
+
},
|
|
20
|
+
"label": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"minLength": 1,
|
|
23
|
+
"pattern": "^[a-z][a-z0-9_]*$",
|
|
24
|
+
"description": "canonical label: English, lowercase snake_case, whole words (press_button, light_on); homonyms disambiguated by qualification (charge_battery, charge_attack)"
|
|
25
|
+
},
|
|
26
|
+
"category": {
|
|
27
|
+
"enum": [
|
|
28
|
+
"action",
|
|
29
|
+
"event",
|
|
30
|
+
"process",
|
|
31
|
+
"state",
|
|
32
|
+
"state_change"
|
|
33
|
+
],
|
|
34
|
+
"description": "REQUIRED and CLOSED so identity inputs are deterministic; extending this enumeration is a MAJOR version change (GOVERNANCE.md)"
|
|
35
|
+
},
|
|
36
|
+
"stratum": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"pattern": "^stratum:[0-9a-f]{64}$",
|
|
39
|
+
"description": "OPTIONAL, IDENTITY-BEARING: the level of description at which this occurrent is pitched (2.0.0 N3.3)"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://causalontology.org/schema/port.schema.json",
|
|
4
|
+
"title": "Port",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"id",
|
|
8
|
+
"type",
|
|
9
|
+
"bearer",
|
|
10
|
+
"label",
|
|
11
|
+
"direction",
|
|
12
|
+
"accepts"
|
|
13
|
+
],
|
|
14
|
+
"additionalProperties": false,
|
|
15
|
+
"properties": {
|
|
16
|
+
"id": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"pattern": "^port:[0-9a-f]{64}$"
|
|
19
|
+
},
|
|
20
|
+
"type": {
|
|
21
|
+
"const": "port"
|
|
22
|
+
},
|
|
23
|
+
"bearer": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"pattern": "^continuant:[0-9a-f]{64}$",
|
|
26
|
+
"description": "the continuant TYPE that has this interface"
|
|
27
|
+
},
|
|
28
|
+
"label": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"minLength": 1,
|
|
31
|
+
"pattern": "^[a-z][a-z0-9_]*$",
|
|
32
|
+
"description": "the name of the interface (for example: perforant_path, fornix)"
|
|
33
|
+
},
|
|
34
|
+
"direction": {
|
|
35
|
+
"enum": [
|
|
36
|
+
"in",
|
|
37
|
+
"out",
|
|
38
|
+
"bidirectional"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
"accepts": {
|
|
42
|
+
"type": "array",
|
|
43
|
+
"minItems": 1,
|
|
44
|
+
"items": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"pattern": "^occurrent:[0-9a-f]{64}$"
|
|
47
|
+
},
|
|
48
|
+
"description": "the kinds of occurrent this port accepts (direction in) or emits (direction out) or both (bidirectional)"
|
|
49
|
+
},
|
|
50
|
+
"realizable": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"pattern": "^realizable:[0-9a-f]{64}$",
|
|
53
|
+
"description": "optional: the disposition, function, or role this port serves"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://causalontology.org/schema/predicted_occurrence.schema.json",
|
|
4
|
+
"title": "Predicted Occurrence",
|
|
5
|
+
"description": "4.0.0. A first-class record of an EXPECTATION: an occurrent type predicted, by a stated predictor, to occur over a stated window. A prediction is NOT an assertion that the thing happened - it is the sibling of the token_occurrence that has not (yet) happened, and it satisfies no rule that requires a token_occurrence (Rule 24). Its interval MUST carry exactly ONE temporal dimension: a wall-clock start (with optional end) or an ordinal start_tick (with optional end_tick), never both and never neither. The optional strength is the predicted probability - part of the PREDICTED CONTENT itself, identity-bearing when present, not a provenance evaluation (the narrow, deliberate 4.0.0 extension of Principle P4).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"id",
|
|
9
|
+
"type",
|
|
10
|
+
"instantiates",
|
|
11
|
+
"interval",
|
|
12
|
+
"predictor"
|
|
13
|
+
],
|
|
14
|
+
"additionalProperties": false,
|
|
15
|
+
"properties": {
|
|
16
|
+
"id": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"pattern": "^predicted_occurrence:[0-9a-f]{64}$"
|
|
19
|
+
},
|
|
20
|
+
"type": {
|
|
21
|
+
"const": "predicted_occurrence"
|
|
22
|
+
},
|
|
23
|
+
"instantiates": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"pattern": "^occurrent:[0-9a-f]{64}$",
|
|
26
|
+
"description": "the occurrent TYPE predicted to occur; MANDATORY (P1)"
|
|
27
|
+
},
|
|
28
|
+
"interval": {
|
|
29
|
+
"$ref": "#/$defs/predicted_interval"
|
|
30
|
+
},
|
|
31
|
+
"predictor": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"pattern": "^(continuant|token_individual):[0-9a-f]{64}$",
|
|
34
|
+
"description": "the predicting source - a MODELED agent or construct inside the ontology (a continuant type or a particular token individual), never a cryptographic key"
|
|
35
|
+
},
|
|
36
|
+
"strength": {
|
|
37
|
+
"type": "number",
|
|
38
|
+
"description": "OPTIONAL, identity-bearing when present: the predicted probability, part of the predicted content itself, NOT a provenance evaluation (4.0.0 Locked Decision extension of Principle P4)"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"$defs": {
|
|
42
|
+
"predicted_interval": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"additionalProperties": false,
|
|
45
|
+
"properties": {
|
|
46
|
+
"start": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"format": "date-time",
|
|
49
|
+
"description": "RFC 3339, UTC, mandatory Z suffix - the wall-clock dimension"
|
|
50
|
+
},
|
|
51
|
+
"end": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"format": "date-time"
|
|
54
|
+
},
|
|
55
|
+
"start_tick": {
|
|
56
|
+
"type": "integer",
|
|
57
|
+
"minimum": 0,
|
|
58
|
+
"description": "the ordinal dimension: a discrete tick with NO wall-clock mapping (Rule 23)"
|
|
59
|
+
},
|
|
60
|
+
"end_tick": {
|
|
61
|
+
"type": "integer",
|
|
62
|
+
"minimum": 0
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"description": "the predicted window. Rule 24 enforces exactly ONE temporal dimension: start (wall-clock, optional end) or start_tick (ordinal, optional end_tick), never both (dimension_conflict, HARD) and never neither (missing_dimension, HARD)"
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://causalontology.org/schema/prediction_error.schema.json",
|
|
4
|
+
"title": "Prediction Error",
|
|
5
|
+
"description": "4.0.0. The first-class record of how a prediction met the world: the graded discrepancy between a predicted_occurrence and what was - or was not - observed. When observed is present it names the token_occurrence that answered the prediction and MUST instantiate the same occurrent the prediction instantiates (Rule 24, pairing_mismatch, HARD); when observed is ABSENT the predicted occurrence was not fulfilled by any recorded occurrence. discrepancy reads actual minus expected: positive = exceeded expectation, negative = fell short, zero = fulfilled.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"id",
|
|
9
|
+
"type",
|
|
10
|
+
"predicted",
|
|
11
|
+
"discrepancy"
|
|
12
|
+
],
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"properties": {
|
|
15
|
+
"id": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"pattern": "^prediction_error:[0-9a-f]{64}$"
|
|
18
|
+
},
|
|
19
|
+
"type": {
|
|
20
|
+
"const": "prediction_error"
|
|
21
|
+
},
|
|
22
|
+
"predicted": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"pattern": "^predicted_occurrence:[0-9a-f]{64}$",
|
|
25
|
+
"description": "the prediction this error grades; MANDATORY - an error without a prediction is not an error"
|
|
26
|
+
},
|
|
27
|
+
"observed": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"pattern": "^token_occurrence:[0-9a-f]{64}$",
|
|
30
|
+
"description": "OPTIONAL: the token occurrence that answered the prediction. ABSENT means the predicted occurrence was not fulfilled by any recorded occurrence - the surprise of nothing arriving"
|
|
31
|
+
},
|
|
32
|
+
"discrepancy": {
|
|
33
|
+
"type": "number",
|
|
34
|
+
"description": "signed, graded; actual minus expected - positive = exceeded expectation, negative = fell short, zero = fulfilled (the comparator sign convention)"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://causalontology.org/schema/quality.schema.json",
|
|
4
|
+
"title": "Quality",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"id",
|
|
8
|
+
"type",
|
|
9
|
+
"label",
|
|
10
|
+
"datatype"
|
|
11
|
+
],
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"properties": {
|
|
14
|
+
"id": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"pattern": "^quality:[0-9a-f]{64}$"
|
|
17
|
+
},
|
|
18
|
+
"type": {
|
|
19
|
+
"const": "quality"
|
|
20
|
+
},
|
|
21
|
+
"label": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"minLength": 1,
|
|
24
|
+
"pattern": "^[a-z][a-z0-9_]*$",
|
|
25
|
+
"description": "for example: cortisol_concentration, membrane_potential, mass"
|
|
26
|
+
},
|
|
27
|
+
"datatype": {
|
|
28
|
+
"enum": [
|
|
29
|
+
"quantity",
|
|
30
|
+
"categorical",
|
|
31
|
+
"boolean"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"unit": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "the canonical UCUM unit code; REQUIRED when datatype is quantity, and MUST be absent otherwise"
|
|
37
|
+
},
|
|
38
|
+
"stratum": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"pattern": "^stratum:[0-9a-f]{64}$",
|
|
41
|
+
"description": "optional: the level of description at which this quality is defined"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://causalontology.org/schema/realizable.schema.json",
|
|
4
|
+
"title": "Realizable Entity",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"id",
|
|
8
|
+
"kind",
|
|
9
|
+
"bearer"
|
|
10
|
+
],
|
|
11
|
+
"additionalProperties": false,
|
|
12
|
+
"properties": {
|
|
13
|
+
"id": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"pattern": "^realizable:[0-9a-f]{64}$"
|
|
16
|
+
},
|
|
17
|
+
"type": {
|
|
18
|
+
"const": "realizable"
|
|
19
|
+
},
|
|
20
|
+
"kind": {
|
|
21
|
+
"enum": [
|
|
22
|
+
"disposition",
|
|
23
|
+
"function",
|
|
24
|
+
"role"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"bearer": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"pattern": "^continuant:[0-9a-f]{64}$"
|
|
30
|
+
},
|
|
31
|
+
"label": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"minLength": 1,
|
|
34
|
+
"pattern": "^[a-z][a-z0-9_]*$",
|
|
35
|
+
"description": "OPTIONAL, IDENTITY-BEARING: the name of this disposition, function, or role. Repairs the 1.0.0 identity collision that limited a bearer to one realizable per kind (2.0.0 4.3)"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://causalontology.org/schema/retraction.schema.json",
|
|
4
|
+
"title": "Retraction",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"id",
|
|
8
|
+
"retracts",
|
|
9
|
+
"source",
|
|
10
|
+
"timestamp"
|
|
11
|
+
],
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"properties": {
|
|
14
|
+
"id": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"pattern": "^retraction:[0-9a-f]{64}$"
|
|
17
|
+
},
|
|
18
|
+
"type": {
|
|
19
|
+
"const": "retraction"
|
|
20
|
+
},
|
|
21
|
+
"retracts": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"pattern": "^(assertion|enrichment):[0-9a-f]{64}$",
|
|
24
|
+
"description": "the assertion or enrichment being withdrawn"
|
|
25
|
+
},
|
|
26
|
+
"source": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"pattern": "^ed25519:[0-9a-f]{64}$",
|
|
29
|
+
"description": "must be the retracted record's source, or a key in its succession lineage"
|
|
30
|
+
},
|
|
31
|
+
"reason": {
|
|
32
|
+
"type": "string"
|
|
33
|
+
},
|
|
34
|
+
"timestamp": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"format": "date-time"
|
|
37
|
+
},
|
|
38
|
+
"signature": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"pattern": "^[0-9a-f]{128}$"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://causalontology.org/schema/state.schema.json",
|
|
4
|
+
"title": "State Assertion",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"id",
|
|
8
|
+
"type",
|
|
9
|
+
"subject",
|
|
10
|
+
"quality",
|
|
11
|
+
"value",
|
|
12
|
+
"interval"
|
|
13
|
+
],
|
|
14
|
+
"additionalProperties": false,
|
|
15
|
+
"properties": {
|
|
16
|
+
"id": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"pattern": "^state_assertion:[0-9a-f]{64}$"
|
|
19
|
+
},
|
|
20
|
+
"type": {
|
|
21
|
+
"const": "state_assertion"
|
|
22
|
+
},
|
|
23
|
+
"subject": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"pattern": "^token_individual:[0-9a-f]{64}$",
|
|
26
|
+
"description": "the PARTICULAR individual in this state"
|
|
27
|
+
},
|
|
28
|
+
"quality": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"pattern": "^quality:[0-9a-f]{64}$"
|
|
31
|
+
},
|
|
32
|
+
"value": {
|
|
33
|
+
"$ref": "#/$defs/value"
|
|
34
|
+
},
|
|
35
|
+
"interval": {
|
|
36
|
+
"$ref": "https://causalontology.org/schema/token.schema.json#/$defs/interval",
|
|
37
|
+
"description": "over what span of absolute time the subject held this value"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"$defs": {
|
|
41
|
+
"value": {
|
|
42
|
+
"oneOf": [
|
|
43
|
+
{
|
|
44
|
+
"type": "object",
|
|
45
|
+
"required": [
|
|
46
|
+
"quantity",
|
|
47
|
+
"unit"
|
|
48
|
+
],
|
|
49
|
+
"additionalProperties": false,
|
|
50
|
+
"properties": {
|
|
51
|
+
"quantity": {
|
|
52
|
+
"type": "number"
|
|
53
|
+
},
|
|
54
|
+
"unit": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"minLength": 1,
|
|
57
|
+
"description": "UCUM unit code; MUST match the quality's unit"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"type": "object",
|
|
63
|
+
"required": [
|
|
64
|
+
"categorical"
|
|
65
|
+
],
|
|
66
|
+
"additionalProperties": false,
|
|
67
|
+
"properties": {
|
|
68
|
+
"categorical": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"minLength": 1
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"type": "object",
|
|
76
|
+
"required": [
|
|
77
|
+
"boolean"
|
|
78
|
+
],
|
|
79
|
+
"additionalProperties": false,
|
|
80
|
+
"properties": {
|
|
81
|
+
"boolean": {
|
|
82
|
+
"type": "boolean"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|