@medicine-wheel/ontology-core 0.4.2 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,7 +11,9 @@ This package is the **single source of truth** for the Medicine Wheel data model
11
11
  | Module | Description |
12
12
  |--------|-------------|
13
13
  | `types` | TypeScript type definitions for all entities (nodes, relations, ceremonies, beats, cycles) |
14
- | `vocabulary` | RDF namespace IRIs and predicate constants (`mw:`, `ids:`, `ocap:`, `rel:`, `cer:`, `beat:`) |
14
+ | `kinship` | **Named kinship-edge vocabulary** — governed, directional edges (`tends-to`, `speaks-with`, `holds-responsibility-for`, `co-emerges-with` + RSIS verbs) |
15
+ | `vocabulary` | Medicine Wheel domain namespaces + label constants (`mw:`, `ids:`, `ocap:`, `rel:`, `cer:`, `beat:`) |
16
+ | `rdf-interop` | **Optional** RDF/OWL adapter — standard namespaces + IRI utilities for serializing OUT to the semantic web (not the backbone) |
15
17
  | `schemas` | Zod validation schemas for runtime data integrity |
16
18
  | `constants` | Direction definitions, color maps, icons, Ojibwe names, act mappings |
17
19
  | `queries` | Semantic query helpers — traversal, Wilson alignment, OCAP® compliance |
@@ -59,16 +61,44 @@ interface Relation {
59
61
  id: string;
60
62
  from_id: string;
61
63
  to_id: string;
62
- relationship_type: string; // kinship, treaty, ceremony, mentorship...
64
+ relationship_type: string; // free-string, kept for back-compat
65
+ kinship_type?: KinshipEdgeName; // governed named edge (kinship vocabulary)
63
66
  strength: number; // 0–1
64
67
  direction?: DirectionName;
65
68
  ceremony_context?: { ... }; // Ceremony linkage
66
69
  obligations: RelationalObligation[];
67
70
  ocap: OcapFlags; // OCAP® governance
68
71
  accountability: AccountabilityTracking; // Wilson's 3 R's
72
+ context?: RelationContext; // who authorized it, in which circle it holds
69
73
  }
70
74
  ```
71
75
 
76
+ ### Named Kinship Edges
77
+
78
+ The kinship vocabulary replaces the free-string edge with governed, directional
79
+ edges expressed as **data, not a class tree** — no edge type is a subclass of another.
80
+
81
+ ```typescript
82
+ import { KINSHIP_EDGE_TYPES, inverseEdge, isKinshipEdgeName } from '@medicine-wheel/ontology-core';
83
+
84
+ inverseEdge('holds-responsibility-for'); // 'in-care-of' (asymmetric)
85
+ inverseEdge('co-emerges-with'); // 'co-emerges-with' (symmetric)
86
+ isKinshipEdgeName('speaks-with'); // true
87
+ ```
88
+
89
+ ### Edge Context
90
+
91
+ A relation may carry the context that authorizes and bounds it — consumed by the
92
+ protocol-guard stack in `@medicine-wheel/relational-query`:
93
+
94
+ ```typescript
95
+ relation.context = {
96
+ authorized_by: 'elder-council',
97
+ active_context: 'talking_circle:open',
98
+ authorized_kin: ['agent-mia', 'agent-ava'],
99
+ };
100
+ ```
101
+
72
102
  ### OCAP® Governance
73
103
 
74
104
  Every relation carries `OcapFlags` (Ownership, Control, Access, Possession) — the First Nations principles of data sovereignty.
@@ -77,14 +107,18 @@ Every relation carries `OcapFlags` (Ownership, Control, Access, Possession) —
77
107
 
78
108
  Shawn Wilson's three R's (Respect, Reciprocity, Responsibility) are tracked per relation and aggregated across cycles. Use `computeWilsonAlignment()` and `findAccountabilityGaps()` to monitor relational health.
79
109
 
80
- ### RDF Vocabulary
110
+ ### RDF Interop Adapter (optional)
81
111
 
82
- All concepts have IRI constants for semantic web interoperability:
112
+ The kinship graph is primary. RDF/OWL is an **optional** adapter (`rdfInterop`) for
113
+ serializing OUT to triple stores — not the ontology backbone. Domain labels stay in
114
+ `vocabulary`; standard namespaces + IRI utilities live in the adapter:
83
115
 
84
116
  ```typescript
85
- MW.Direction // https://ontology.medicine-wheel.dev/mw#Direction
86
- CER.Ceremony // https://ontology.medicine-wheel.dev/cer#Ceremony
87
- OCAP.ownership // https://ontology.medicine-wheel.dev/ocap#ownership
117
+ MW.Direction // domain label: https://ontology.medicine-wheel.dev/mw#Direction
118
+
119
+ import { rdfInterop } from '@medicine-wheel/ontology-core';
120
+ rdfInterop.expandIRI('mw:Direction'); // → full IRI
121
+ // Back-compat: prefixed/expandIRI/compactIRI/PREFIXES also remain at the package root.
88
122
  ```
89
123
 
90
124
  ## License
package/dist/index.d.ts CHANGED
@@ -7,10 +7,14 @@
7
7
  *
8
8
  * @packageDocumentation
9
9
  */
10
- export type { DirectionName, Direction, NodeType, RelationalNode, RelationalEdge, ObligationCategory, RelationalObligation, OcapFlags, AccountabilityTracking, Relation, CeremonyType, CeremonyGuidance, CeremonyLog, NarrativeBeat, MedicineWheelCycle, TensionPhase, StructuralTensionChart, ActionStep, DirectionResponse, MWTool, MWResource, MWPrompt, EpistemicSource, AxiologicalPillar, LandRelation, AncestorRelation, FutureRelation, CosmicRelation, SunName, CeremonyPhase, GovernanceAccess, PersonRole, RSISRelationType, GovernanceProtectedPath, GovernanceConfig, RSISConfig, KinshipHubInfo, KinshipRelation, ReciprocityFlow, ReciprocityBalance, CeremonyLineageEntry, DirectionDetail, DirectionDistribution, DirectionInfo, MedicineWheelView, } from './types';
11
- export { MW_NS, IDS_NS, OCAP_NS, REL_NS, CER_NS, BEAT_NS, RDF_NS, RDFS_NS, OWL_NS, SKOS_NS, PROV_NS, SHACL_NS, PREFIXES, MW, CER, OCAP, REL, IDS, BEAT, prefixed, expandIRI, compactIRI, } from './vocabulary';
10
+ export type { DirectionName, Direction, NodeType, RelationalNode, RelationalEdge, ObligationCategory, RelationalObligation, OcapFlags, AccountabilityTracking, RelationContext, Relation, CeremonyType, CeremonyGuidance, CeremonyLog, NarrativeBeat, MedicineWheelCycle, TensionPhase, StructuralTensionChart, ActionStep, DirectionResponse, MWTool, MWResource, MWPrompt, EpistemicSource, AxiologicalPillar, LandRelation, AncestorRelation, FutureRelation, CosmicRelation, SunName, CeremonyPhase, GovernanceAccess, PersonRole, RSISRelationType, GovernanceProtectedPath, GovernanceConfig, RSISConfig, KinshipHubInfo, KinshipRelation, ReciprocityFlow, ReciprocityBalance, CeremonyLineageEntry, DirectionDetail, DirectionDistribution, DirectionInfo, MedicineWheelView, } from './types';
11
+ export type { KinshipEdgeType, KinshipEdgeName, EdgeSymmetry } from './kinship';
12
+ export { KINSHIP_EDGE_TYPES, KINSHIP_EDGE_NAMES, getKinshipEdgeType, isKinshipEdgeName, inverseEdge, } from './kinship';
13
+ export { MW_NS, IDS_NS, OCAP_NS, REL_NS, CER_NS, BEAT_NS, MW, CER, OCAP, REL, IDS, BEAT, } from './vocabulary';
14
+ export * as rdfInterop from './rdf-interop';
15
+ export { RDF_NS, RDFS_NS, OWL_NS, SKOS_NS, PROV_NS, SHACL_NS, PREFIXES, prefixed, expandIRI, compactIRI, } from './rdf-interop';
12
16
  export { DIRECTIONS, DIRECTION_COLORS, NODE_TYPE_COLORS, CEREMONY_ICONS, DIRECTION_MAP, DIRECTION_NAMES, NODE_TYPES, CEREMONY_TYPES, OJIBWE_NAMES, DIRECTION_SEASONS, DIRECTION_ACTS, ACT_DIRECTIONS, SUN_NAMES, SUN_DESCRIPTIONS, CEREMONY_PHASES, CEREMONY_PHASE_DESCRIPTIONS, PERSON_ROLES, RSIS_RELATION_TYPES, GOVERNANCE_ACCESS_LEVELS, DIRECTION_INFO, } from './constants';
13
- export { DirectionNameSchema, NodeTypeSchema, CeremonyTypeSchema, ObligationCategorySchema, TensionPhaseSchema, EpistemicSourceSchema, AxiologicalPillarSchema, ConsentStateSchema, AccessLevelSchema, PossessionLocationSchema, DirectionSchema, RelationalNodeSchema, RelationalEdgeSchema, RelationalObligationSchema, OcapFlagsSchema, AccountabilityTrackingSchema, CeremonyContextSchema, RelationSchema, CeremonyGuidanceSchema, CeremonyLogSchema, NarrativeBeatSchema, MedicineWheelCycleSchema, ActionStepSchema, StructuralTensionChartSchema, DirectionResponseSchema, } from './schemas';
17
+ export { DirectionNameSchema, NodeTypeSchema, CeremonyTypeSchema, ObligationCategorySchema, TensionPhaseSchema, EpistemicSourceSchema, AxiologicalPillarSchema, ConsentStateSchema, AccessLevelSchema, PossessionLocationSchema, KinshipEdgeNameSchema, KinshipEdgeTypeSchema, DirectionSchema, RelationalNodeSchema, RelationalEdgeSchema, RelationalObligationSchema, OcapFlagsSchema, AccountabilityTrackingSchema, CeremonyContextSchema, RelationContextSchema, RelationSchema, CeremonyGuidanceSchema, CeremonyLogSchema, NarrativeBeatSchema, MedicineWheelCycleSchema, ActionStepSchema, StructuralTensionChartSchema, DirectionResponseSchema, } from './schemas';
14
18
  export type { ValidatedDirection, ValidatedRelationalNode, ValidatedRelationalEdge, ValidatedRelation, ValidatedOcapFlags, ValidatedAccountabilityTracking, ValidatedCeremonyLog, ValidatedNarrativeBeat, ValidatedMedicineWheelCycle, ValidatedStructuralTensionChart, } from './schemas';
15
19
  export { nodesByDirection, nodesByType, nodeById, relationsForNode, relationsByType, neighborIds, traverseRelationalWeb, computeWilsonAlignment, aggregateWilsonAlignment, cycleWilsonAlignment, findAccountabilityGaps, checkOcapCompliance, auditOcapCompliance, beatsByDirection, beatsByAct, allDirectionsVisited, ceremoniesByDirection, ceremonyCounts, relationalCompleteness, } from './queries';
16
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,aAAa,EACb,SAAS,EACT,QAAQ,EACR,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,sBAAsB,EACtB,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,UAAU,EACV,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,QAAQ,EAER,eAAe,EACf,iBAAiB,EAEjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EAEd,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAC/C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EACnD,QAAQ,EACR,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAC7B,QAAQ,EAAE,SAAS,EAAE,UAAU,GAChC,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EACV,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,cAAc,EAEd,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,2BAA2B,EAC3B,YAAY,EACZ,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,GACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,4BAA4B,EAC5B,qBAAqB,EACrB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAGnB,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,EAC/B,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,sBAAsB,GACvB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,10 +8,49 @@
8
8
  *
9
9
  * @packageDocumentation
10
10
  */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
11
44
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ConsentStateSchema = exports.AxiologicalPillarSchema = exports.EpistemicSourceSchema = exports.TensionPhaseSchema = exports.ObligationCategorySchema = exports.CeremonyTypeSchema = exports.NodeTypeSchema = exports.DirectionNameSchema = exports.DIRECTION_INFO = exports.GOVERNANCE_ACCESS_LEVELS = exports.RSIS_RELATION_TYPES = exports.PERSON_ROLES = exports.CEREMONY_PHASE_DESCRIPTIONS = exports.CEREMONY_PHASES = exports.SUN_DESCRIPTIONS = exports.SUN_NAMES = exports.ACT_DIRECTIONS = exports.DIRECTION_ACTS = exports.DIRECTION_SEASONS = exports.OJIBWE_NAMES = exports.CEREMONY_TYPES = exports.NODE_TYPES = exports.DIRECTION_NAMES = exports.DIRECTION_MAP = exports.CEREMONY_ICONS = exports.NODE_TYPE_COLORS = exports.DIRECTION_COLORS = exports.DIRECTIONS = exports.compactIRI = exports.expandIRI = exports.prefixed = exports.BEAT = exports.IDS = exports.REL = exports.OCAP = exports.CER = exports.MW = exports.PREFIXES = exports.SHACL_NS = exports.PROV_NS = exports.SKOS_NS = exports.OWL_NS = exports.RDFS_NS = exports.RDF_NS = exports.BEAT_NS = exports.CER_NS = exports.REL_NS = exports.OCAP_NS = exports.IDS_NS = exports.MW_NS = void 0;
13
- exports.relationalCompleteness = exports.ceremonyCounts = exports.ceremoniesByDirection = exports.allDirectionsVisited = exports.beatsByAct = exports.beatsByDirection = exports.auditOcapCompliance = exports.checkOcapCompliance = exports.findAccountabilityGaps = exports.cycleWilsonAlignment = exports.aggregateWilsonAlignment = exports.computeWilsonAlignment = exports.traverseRelationalWeb = exports.neighborIds = exports.relationsByType = exports.relationsForNode = exports.nodeById = exports.nodesByType = exports.nodesByDirection = exports.DirectionResponseSchema = exports.StructuralTensionChartSchema = exports.ActionStepSchema = exports.MedicineWheelCycleSchema = exports.NarrativeBeatSchema = exports.CeremonyLogSchema = exports.CeremonyGuidanceSchema = exports.RelationSchema = exports.CeremonyContextSchema = exports.AccountabilityTrackingSchema = exports.OcapFlagsSchema = exports.RelationalObligationSchema = exports.RelationalEdgeSchema = exports.RelationalNodeSchema = exports.DirectionSchema = exports.PossessionLocationSchema = exports.AccessLevelSchema = void 0;
14
- // ── RDF Vocabulary ──────────────────────────────────────────────────────────
45
+ exports.NodeTypeSchema = exports.DirectionNameSchema = exports.DIRECTION_INFO = exports.GOVERNANCE_ACCESS_LEVELS = exports.RSIS_RELATION_TYPES = exports.PERSON_ROLES = exports.CEREMONY_PHASE_DESCRIPTIONS = exports.CEREMONY_PHASES = exports.SUN_DESCRIPTIONS = exports.SUN_NAMES = exports.ACT_DIRECTIONS = exports.DIRECTION_ACTS = exports.DIRECTION_SEASONS = exports.OJIBWE_NAMES = exports.CEREMONY_TYPES = exports.NODE_TYPES = exports.DIRECTION_NAMES = exports.DIRECTION_MAP = exports.CEREMONY_ICONS = exports.NODE_TYPE_COLORS = exports.DIRECTION_COLORS = exports.DIRECTIONS = exports.compactIRI = exports.expandIRI = exports.prefixed = exports.PREFIXES = exports.SHACL_NS = exports.PROV_NS = exports.SKOS_NS = exports.OWL_NS = exports.RDFS_NS = exports.RDF_NS = exports.rdfInterop = exports.BEAT = exports.IDS = exports.REL = exports.OCAP = exports.CER = exports.MW = exports.BEAT_NS = exports.CER_NS = exports.REL_NS = exports.OCAP_NS = exports.IDS_NS = exports.MW_NS = exports.inverseEdge = exports.isKinshipEdgeName = exports.getKinshipEdgeType = exports.KINSHIP_EDGE_NAMES = exports.KINSHIP_EDGE_TYPES = void 0;
46
+ exports.relationalCompleteness = exports.ceremonyCounts = exports.ceremoniesByDirection = exports.allDirectionsVisited = exports.beatsByAct = exports.beatsByDirection = exports.auditOcapCompliance = exports.checkOcapCompliance = exports.findAccountabilityGaps = exports.cycleWilsonAlignment = exports.aggregateWilsonAlignment = exports.computeWilsonAlignment = exports.traverseRelationalWeb = exports.neighborIds = exports.relationsByType = exports.relationsForNode = exports.nodeById = exports.nodesByType = exports.nodesByDirection = exports.DirectionResponseSchema = exports.StructuralTensionChartSchema = exports.ActionStepSchema = exports.MedicineWheelCycleSchema = exports.NarrativeBeatSchema = exports.CeremonyLogSchema = exports.CeremonyGuidanceSchema = exports.RelationSchema = exports.RelationContextSchema = exports.CeremonyContextSchema = exports.AccountabilityTrackingSchema = exports.OcapFlagsSchema = exports.RelationalObligationSchema = exports.RelationalEdgeSchema = exports.RelationalNodeSchema = exports.DirectionSchema = exports.KinshipEdgeTypeSchema = exports.KinshipEdgeNameSchema = exports.PossessionLocationSchema = exports.AccessLevelSchema = exports.ConsentStateSchema = exports.AxiologicalPillarSchema = exports.EpistemicSourceSchema = exports.TensionPhaseSchema = exports.ObligationCategorySchema = exports.CeremonyTypeSchema = void 0;
47
+ var kinship_1 = require("./kinship");
48
+ Object.defineProperty(exports, "KINSHIP_EDGE_TYPES", { enumerable: true, get: function () { return kinship_1.KINSHIP_EDGE_TYPES; } });
49
+ Object.defineProperty(exports, "KINSHIP_EDGE_NAMES", { enumerable: true, get: function () { return kinship_1.KINSHIP_EDGE_NAMES; } });
50
+ Object.defineProperty(exports, "getKinshipEdgeType", { enumerable: true, get: function () { return kinship_1.getKinshipEdgeType; } });
51
+ Object.defineProperty(exports, "isKinshipEdgeName", { enumerable: true, get: function () { return kinship_1.isKinshipEdgeName; } });
52
+ Object.defineProperty(exports, "inverseEdge", { enumerable: true, get: function () { return kinship_1.inverseEdge; } });
53
+ // ── Medicine Wheel Vocabulary (kinship-graph labels) ────────────────────────
15
54
  var vocabulary_1 = require("./vocabulary");
16
55
  Object.defineProperty(exports, "MW_NS", { enumerable: true, get: function () { return vocabulary_1.MW_NS; } });
17
56
  Object.defineProperty(exports, "IDS_NS", { enumerable: true, get: function () { return vocabulary_1.IDS_NS; } });
@@ -19,22 +58,27 @@ Object.defineProperty(exports, "OCAP_NS", { enumerable: true, get: function () {
19
58
  Object.defineProperty(exports, "REL_NS", { enumerable: true, get: function () { return vocabulary_1.REL_NS; } });
20
59
  Object.defineProperty(exports, "CER_NS", { enumerable: true, get: function () { return vocabulary_1.CER_NS; } });
21
60
  Object.defineProperty(exports, "BEAT_NS", { enumerable: true, get: function () { return vocabulary_1.BEAT_NS; } });
22
- Object.defineProperty(exports, "RDF_NS", { enumerable: true, get: function () { return vocabulary_1.RDF_NS; } });
23
- Object.defineProperty(exports, "RDFS_NS", { enumerable: true, get: function () { return vocabulary_1.RDFS_NS; } });
24
- Object.defineProperty(exports, "OWL_NS", { enumerable: true, get: function () { return vocabulary_1.OWL_NS; } });
25
- Object.defineProperty(exports, "SKOS_NS", { enumerable: true, get: function () { return vocabulary_1.SKOS_NS; } });
26
- Object.defineProperty(exports, "PROV_NS", { enumerable: true, get: function () { return vocabulary_1.PROV_NS; } });
27
- Object.defineProperty(exports, "SHACL_NS", { enumerable: true, get: function () { return vocabulary_1.SHACL_NS; } });
28
- Object.defineProperty(exports, "PREFIXES", { enumerable: true, get: function () { return vocabulary_1.PREFIXES; } });
29
61
  Object.defineProperty(exports, "MW", { enumerable: true, get: function () { return vocabulary_1.MW; } });
30
62
  Object.defineProperty(exports, "CER", { enumerable: true, get: function () { return vocabulary_1.CER; } });
31
63
  Object.defineProperty(exports, "OCAP", { enumerable: true, get: function () { return vocabulary_1.OCAP; } });
32
64
  Object.defineProperty(exports, "REL", { enumerable: true, get: function () { return vocabulary_1.REL; } });
33
65
  Object.defineProperty(exports, "IDS", { enumerable: true, get: function () { return vocabulary_1.IDS; } });
34
66
  Object.defineProperty(exports, "BEAT", { enumerable: true, get: function () { return vocabulary_1.BEAT; } });
35
- Object.defineProperty(exports, "prefixed", { enumerable: true, get: function () { return vocabulary_1.prefixed; } });
36
- Object.defineProperty(exports, "expandIRI", { enumerable: true, get: function () { return vocabulary_1.expandIRI; } });
37
- Object.defineProperty(exports, "compactIRI", { enumerable: true, get: function () { return vocabulary_1.compactIRI; } });
67
+ // ── RDF Interop Adapter (OPTIONAL — the kinship graph is primary) ───────────
68
+ // RDF/OWL is no longer the backbone; it is an optional serialization adapter.
69
+ exports.rdfInterop = __importStar(require("./rdf-interop"));
70
+ // Back-compat named re-exports, now sourced from the adapter.
71
+ var rdf_interop_1 = require("./rdf-interop");
72
+ Object.defineProperty(exports, "RDF_NS", { enumerable: true, get: function () { return rdf_interop_1.RDF_NS; } });
73
+ Object.defineProperty(exports, "RDFS_NS", { enumerable: true, get: function () { return rdf_interop_1.RDFS_NS; } });
74
+ Object.defineProperty(exports, "OWL_NS", { enumerable: true, get: function () { return rdf_interop_1.OWL_NS; } });
75
+ Object.defineProperty(exports, "SKOS_NS", { enumerable: true, get: function () { return rdf_interop_1.SKOS_NS; } });
76
+ Object.defineProperty(exports, "PROV_NS", { enumerable: true, get: function () { return rdf_interop_1.PROV_NS; } });
77
+ Object.defineProperty(exports, "SHACL_NS", { enumerable: true, get: function () { return rdf_interop_1.SHACL_NS; } });
78
+ Object.defineProperty(exports, "PREFIXES", { enumerable: true, get: function () { return rdf_interop_1.PREFIXES; } });
79
+ Object.defineProperty(exports, "prefixed", { enumerable: true, get: function () { return rdf_interop_1.prefixed; } });
80
+ Object.defineProperty(exports, "expandIRI", { enumerable: true, get: function () { return rdf_interop_1.expandIRI; } });
81
+ Object.defineProperty(exports, "compactIRI", { enumerable: true, get: function () { return rdf_interop_1.compactIRI; } });
38
82
  // ── Constants ───────────────────────────────────────────────────────────────
39
83
  var constants_1 = require("./constants");
40
84
  Object.defineProperty(exports, "DIRECTIONS", { enumerable: true, get: function () { return constants_1.DIRECTIONS; } });
@@ -70,6 +114,8 @@ Object.defineProperty(exports, "AxiologicalPillarSchema", { enumerable: true, ge
70
114
  Object.defineProperty(exports, "ConsentStateSchema", { enumerable: true, get: function () { return schemas_1.ConsentStateSchema; } });
71
115
  Object.defineProperty(exports, "AccessLevelSchema", { enumerable: true, get: function () { return schemas_1.AccessLevelSchema; } });
72
116
  Object.defineProperty(exports, "PossessionLocationSchema", { enumerable: true, get: function () { return schemas_1.PossessionLocationSchema; } });
117
+ Object.defineProperty(exports, "KinshipEdgeNameSchema", { enumerable: true, get: function () { return schemas_1.KinshipEdgeNameSchema; } });
118
+ Object.defineProperty(exports, "KinshipEdgeTypeSchema", { enumerable: true, get: function () { return schemas_1.KinshipEdgeTypeSchema; } });
73
119
  Object.defineProperty(exports, "DirectionSchema", { enumerable: true, get: function () { return schemas_1.DirectionSchema; } });
74
120
  Object.defineProperty(exports, "RelationalNodeSchema", { enumerable: true, get: function () { return schemas_1.RelationalNodeSchema; } });
75
121
  Object.defineProperty(exports, "RelationalEdgeSchema", { enumerable: true, get: function () { return schemas_1.RelationalEdgeSchema; } });
@@ -77,6 +123,7 @@ Object.defineProperty(exports, "RelationalObligationSchema", { enumerable: true,
77
123
  Object.defineProperty(exports, "OcapFlagsSchema", { enumerable: true, get: function () { return schemas_1.OcapFlagsSchema; } });
78
124
  Object.defineProperty(exports, "AccountabilityTrackingSchema", { enumerable: true, get: function () { return schemas_1.AccountabilityTrackingSchema; } });
79
125
  Object.defineProperty(exports, "CeremonyContextSchema", { enumerable: true, get: function () { return schemas_1.CeremonyContextSchema; } });
126
+ Object.defineProperty(exports, "RelationContextSchema", { enumerable: true, get: function () { return schemas_1.RelationContextSchema; } });
80
127
  Object.defineProperty(exports, "RelationSchema", { enumerable: true, get: function () { return schemas_1.RelationSchema; } });
81
128
  Object.defineProperty(exports, "CeremonyGuidanceSchema", { enumerable: true, get: function () { return schemas_1.CeremonyGuidanceSchema; } });
82
129
  Object.defineProperty(exports, "CeremonyLogSchema", { enumerable: true, get: function () { return schemas_1.CeremonyLogSchema; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * @medicine-wheel/ontology-core — Kinship Edge Vocabulary
3
+ *
4
+ * A governed registry of named, directional kinship edges — the relational
5
+ * replacement for the free-string `relationship_type`. Expressed as DATA,
6
+ * not a class hierarchy: in a kinship graph the structure lives in the edges,
7
+ * and no edge type is a subclass of another. Land, human, spirit, ancestor,
8
+ * future, knowledge — all are connected by edges that read the same on every
9
+ * being they touch.
10
+ *
11
+ * Symmetry:
12
+ * - 'symmetric' — the relation reads the same in both directions
13
+ * (e.g. `co-emerges-with`); no inverse.
14
+ * - 'asymmetric' — the relation has a directional reading and declares its
15
+ * inverse (e.g. `holds-responsibility-for` ↔ `in-care-of`).
16
+ */
17
+ import type { ObligationCategory } from './types';
18
+ export type EdgeSymmetry = 'symmetric' | 'asymmetric';
19
+ export interface KinshipEdgeType {
20
+ /** Canonical name (kebab-case for kinship edges, RSIS verbs kept as-is). */
21
+ name: string;
22
+ /** Whether the relation reads the same both ways. */
23
+ symmetry: EdgeSymmetry;
24
+ /** For asymmetric edges, the name of the reverse-direction reading. */
25
+ inverse?: string;
26
+ /** Human-readable description of the relational meaning. */
27
+ description: string;
28
+ /** Obligation categories a relation of this type tends to carry. */
29
+ defaultObligations?: ObligationCategory[];
30
+ }
31
+ /**
32
+ * The canonical kinship-edge registry. The four core kinship edges express
33
+ * non-hierarchical relation; the RSIS verbs are carried here too so the
34
+ * vocabulary has a single governed source (consumed by Cypher generation).
35
+ */
36
+ export declare const KINSHIP_EDGE_TYPES: {
37
+ readonly 'tends-to': {
38
+ readonly name: "tends-to";
39
+ readonly symmetry: "asymmetric";
40
+ readonly inverse: "tended-by";
41
+ readonly description: "One being cares for, nurtures, or maintains another over time.";
42
+ readonly defaultObligations: ["land", "future"];
43
+ };
44
+ readonly 'speaks-with': {
45
+ readonly name: "speaks-with";
46
+ readonly symmetry: "symmetric";
47
+ readonly description: "Two beings are in dialogue — knowledge passes both ways.";
48
+ readonly defaultObligations: ["human"];
49
+ };
50
+ readonly 'holds-responsibility-for': {
51
+ readonly name: "holds-responsibility-for";
52
+ readonly symmetry: "asymmetric";
53
+ readonly inverse: "in-care-of";
54
+ readonly description: "One being carries accountability and obligation toward another.";
55
+ readonly defaultObligations: ["human", "future"];
56
+ };
57
+ readonly 'co-emerges-with': {
58
+ readonly name: "co-emerges-with";
59
+ readonly symmetry: "symmetric";
60
+ readonly description: "Two beings arise together; neither precedes the other.";
61
+ readonly defaultObligations: ["spirit"];
62
+ };
63
+ readonly STEWARDS: {
64
+ readonly name: "STEWARDS";
65
+ readonly symmetry: "asymmetric";
66
+ readonly inverse: "stewarded-by";
67
+ readonly description: "A person tends and takes responsibility for a symbol or place.";
68
+ readonly defaultObligations: ["human"];
69
+ };
70
+ readonly BORN_FROM: {
71
+ readonly name: "BORN_FROM";
72
+ readonly symmetry: "asymmetric";
73
+ readonly inverse: "gave-rise-to";
74
+ readonly description: "A being emerged from a ceremony, inquiry, or ancestor.";
75
+ readonly defaultObligations: ["spirit"];
76
+ };
77
+ readonly SERVES: {
78
+ readonly name: "SERVES";
79
+ readonly symmetry: "asymmetric";
80
+ readonly inverse: "served-by";
81
+ readonly description: "A being is in service of an inquiry or purpose.";
82
+ readonly defaultObligations: ["human"];
83
+ };
84
+ readonly GIVES_BACK_TO: {
85
+ readonly name: "GIVES_BACK_TO";
86
+ readonly symmetry: "asymmetric";
87
+ readonly inverse: "receives-from";
88
+ readonly description: "Reciprocity flow — a being returns value to its source.";
89
+ readonly defaultObligations: ["future"];
90
+ };
91
+ readonly ALIGNED_WITH: {
92
+ readonly name: "ALIGNED_WITH";
93
+ readonly symmetry: "symmetric";
94
+ readonly description: "A being is in directional alignment with another.";
95
+ };
96
+ readonly KINSHIP_OF: {
97
+ readonly name: "KINSHIP_OF";
98
+ readonly symmetry: "symmetric";
99
+ readonly description: "Two hubs hold a kinship relation with one another.";
100
+ };
101
+ };
102
+ /** Union of governed kinship-edge names — the value stored on a Relation. */
103
+ export type KinshipEdgeName = keyof typeof KINSHIP_EDGE_TYPES;
104
+ /** All registered kinship-edge names. */
105
+ export declare const KINSHIP_EDGE_NAMES: KinshipEdgeName[];
106
+ /** Look up the metadata for a kinship-edge name. */
107
+ export declare function getKinshipEdgeType(name: string): KinshipEdgeType | undefined;
108
+ /** True when `name` is a governed kinship-edge name. */
109
+ export declare function isKinshipEdgeName(name: string): name is KinshipEdgeName;
110
+ /**
111
+ * The reverse-direction reading of an edge name. Symmetric edges return their
112
+ * own name; asymmetric edges return their declared inverse (or undefined if a
113
+ * non-registered name is passed).
114
+ */
115
+ export declare function inverseEdge(name: string): string | undefined;
116
+ //# sourceMappingURL=kinship.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kinship.d.ts","sourceRoot":"","sources":["../src/kinship.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,QAAQ,EAAE,YAAY,CAAC;IACvB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC3C;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEqB,CAAC;AAErD,6EAA6E;AAC7E,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAE9D,yCAAyC;AACzC,eAAO,MAAM,kBAAkB,EAAsC,eAAe,EAAE,CAAC;AAEvF,oDAAoD;AACpD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE5E;AAED,wDAAwD;AACxD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,eAAe,CAEvE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI5D"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ /**
3
+ * @medicine-wheel/ontology-core — Kinship Edge Vocabulary
4
+ *
5
+ * A governed registry of named, directional kinship edges — the relational
6
+ * replacement for the free-string `relationship_type`. Expressed as DATA,
7
+ * not a class hierarchy: in a kinship graph the structure lives in the edges,
8
+ * and no edge type is a subclass of another. Land, human, spirit, ancestor,
9
+ * future, knowledge — all are connected by edges that read the same on every
10
+ * being they touch.
11
+ *
12
+ * Symmetry:
13
+ * - 'symmetric' — the relation reads the same in both directions
14
+ * (e.g. `co-emerges-with`); no inverse.
15
+ * - 'asymmetric' — the relation has a directional reading and declares its
16
+ * inverse (e.g. `holds-responsibility-for` ↔ `in-care-of`).
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.KINSHIP_EDGE_NAMES = exports.KINSHIP_EDGE_TYPES = void 0;
20
+ exports.getKinshipEdgeType = getKinshipEdgeType;
21
+ exports.isKinshipEdgeName = isKinshipEdgeName;
22
+ exports.inverseEdge = inverseEdge;
23
+ /**
24
+ * The canonical kinship-edge registry. The four core kinship edges express
25
+ * non-hierarchical relation; the RSIS verbs are carried here too so the
26
+ * vocabulary has a single governed source (consumed by Cypher generation).
27
+ */
28
+ exports.KINSHIP_EDGE_TYPES = {
29
+ 'tends-to': {
30
+ name: 'tends-to',
31
+ symmetry: 'asymmetric',
32
+ inverse: 'tended-by',
33
+ description: 'One being cares for, nurtures, or maintains another over time.',
34
+ defaultObligations: ['land', 'future'],
35
+ },
36
+ 'speaks-with': {
37
+ name: 'speaks-with',
38
+ symmetry: 'symmetric',
39
+ description: 'Two beings are in dialogue — knowledge passes both ways.',
40
+ defaultObligations: ['human'],
41
+ },
42
+ 'holds-responsibility-for': {
43
+ name: 'holds-responsibility-for',
44
+ symmetry: 'asymmetric',
45
+ inverse: 'in-care-of',
46
+ description: 'One being carries accountability and obligation toward another.',
47
+ defaultObligations: ['human', 'future'],
48
+ },
49
+ 'co-emerges-with': {
50
+ name: 'co-emerges-with',
51
+ symmetry: 'symmetric',
52
+ description: 'Two beings arise together; neither precedes the other.',
53
+ defaultObligations: ['spirit'],
54
+ },
55
+ // ── RSIS verbs (kept as-is for KuzuDB Cypher back-compat) ──────────────────
56
+ STEWARDS: {
57
+ name: 'STEWARDS',
58
+ symmetry: 'asymmetric',
59
+ inverse: 'stewarded-by',
60
+ description: 'A person tends and takes responsibility for a symbol or place.',
61
+ defaultObligations: ['human'],
62
+ },
63
+ BORN_FROM: {
64
+ name: 'BORN_FROM',
65
+ symmetry: 'asymmetric',
66
+ inverse: 'gave-rise-to',
67
+ description: 'A being emerged from a ceremony, inquiry, or ancestor.',
68
+ defaultObligations: ['spirit'],
69
+ },
70
+ SERVES: {
71
+ name: 'SERVES',
72
+ symmetry: 'asymmetric',
73
+ inverse: 'served-by',
74
+ description: 'A being is in service of an inquiry or purpose.',
75
+ defaultObligations: ['human'],
76
+ },
77
+ GIVES_BACK_TO: {
78
+ name: 'GIVES_BACK_TO',
79
+ symmetry: 'asymmetric',
80
+ inverse: 'receives-from',
81
+ description: 'Reciprocity flow — a being returns value to its source.',
82
+ defaultObligations: ['future'],
83
+ },
84
+ ALIGNED_WITH: {
85
+ name: 'ALIGNED_WITH',
86
+ symmetry: 'symmetric',
87
+ description: 'A being is in directional alignment with another.',
88
+ },
89
+ KINSHIP_OF: {
90
+ name: 'KINSHIP_OF',
91
+ symmetry: 'symmetric',
92
+ description: 'Two hubs hold a kinship relation with one another.',
93
+ },
94
+ };
95
+ /** All registered kinship-edge names. */
96
+ exports.KINSHIP_EDGE_NAMES = Object.keys(exports.KINSHIP_EDGE_TYPES);
97
+ /** Look up the metadata for a kinship-edge name. */
98
+ function getKinshipEdgeType(name) {
99
+ return exports.KINSHIP_EDGE_TYPES[name];
100
+ }
101
+ /** True when `name` is a governed kinship-edge name. */
102
+ function isKinshipEdgeName(name) {
103
+ return Object.prototype.hasOwnProperty.call(exports.KINSHIP_EDGE_TYPES, name);
104
+ }
105
+ /**
106
+ * The reverse-direction reading of an edge name. Symmetric edges return their
107
+ * own name; asymmetric edges return their declared inverse (or undefined if a
108
+ * non-registered name is passed).
109
+ */
110
+ function inverseEdge(name) {
111
+ const edge = getKinshipEdgeType(name);
112
+ if (!edge)
113
+ return undefined;
114
+ return edge.symmetry === 'symmetric' ? edge.name : edge.inverse;
115
+ }
116
+ //# sourceMappingURL=kinship.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kinship.js","sourceRoot":"","sources":["../src/kinship.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAmGH,gDAEC;AAGD,8CAEC;AAOD,kCAIC;AAlGD;;;;GAIG;AACU,QAAA,kBAAkB,GAAG;IAChC,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,gEAAgE;QAC7E,kBAAkB,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;KACvC;IACD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,WAAW;QACrB,WAAW,EAAE,0DAA0D;QACvE,kBAAkB,EAAE,CAAC,OAAO,CAAC;KAC9B;IACD,0BAA0B,EAAE;QAC1B,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,iEAAiE;QAC9E,kBAAkB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;KACxC;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,WAAW;QACrB,WAAW,EAAE,wDAAwD;QACrE,kBAAkB,EAAE,CAAC,QAAQ,CAAC;KAC/B;IACD,8EAA8E;IAC9E,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,gEAAgE;QAC7E,kBAAkB,EAAE,CAAC,OAAO,CAAC;KAC9B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,wDAAwD;QACrE,kBAAkB,EAAE,CAAC,QAAQ,CAAC;KAC/B;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,iDAAiD;QAC9D,kBAAkB,EAAE,CAAC,OAAO,CAAC;KAC9B;IACD,aAAa,EAAE;QACb,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,yDAAyD;QACtE,kBAAkB,EAAE,CAAC,QAAQ,CAAC;KAC/B;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,WAAW;QACrB,WAAW,EAAE,mDAAmD;KACjE;IACD,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,WAAW;QACrB,WAAW,EAAE,oDAAoD;KAClE;CACiD,CAAC;AAKrD,yCAAyC;AAC5B,QAAA,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,0BAAkB,CAAsB,CAAC;AAEvF,oDAAoD;AACpD,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,OAAQ,0BAAsD,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,wDAAwD;AACxD,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,0BAAkB,EAAE,IAAI,CAAC,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AAClE,CAAC"}
@@ -0,0 +1,28 @@
1
+ export declare const RDF_NS: "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
2
+ export declare const RDFS_NS: "http://www.w3.org/2000/01/rdf-schema#";
3
+ export declare const OWL_NS: "http://www.w3.org/2002/07/owl#";
4
+ export declare const SKOS_NS: "http://www.w3.org/2004/02/skos/core#";
5
+ export declare const PROV_NS: "http://www.w3.org/ns/prov#";
6
+ export declare const SHACL_NS: "http://www.w3.org/ns/shacl#";
7
+ /** Combined prefix map: Medicine Wheel domain namespaces + standard interop. */
8
+ export declare const PREFIXES: {
9
+ readonly mw: "https://ontology.medicine-wheel.dev/mw#";
10
+ readonly ids: "https://ontology.medicine-wheel.dev/ids#";
11
+ readonly ocap: "https://ontology.medicine-wheel.dev/ocap#";
12
+ readonly rel: "https://ontology.medicine-wheel.dev/rel#";
13
+ readonly cer: "https://ontology.medicine-wheel.dev/cer#";
14
+ readonly beat: "https://ontology.medicine-wheel.dev/beat#";
15
+ readonly rdf: "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
16
+ readonly rdfs: "http://www.w3.org/2000/01/rdf-schema#";
17
+ readonly owl: "http://www.w3.org/2002/07/owl#";
18
+ readonly skos: "http://www.w3.org/2004/02/skos/core#";
19
+ readonly prov: "http://www.w3.org/ns/prov#";
20
+ readonly sh: "http://www.w3.org/ns/shacl#";
21
+ };
22
+ /** Generate a prefixed IRI string (e.g., "mw:Direction"). */
23
+ export declare function prefixed(namespace: keyof typeof PREFIXES, localName: string): string;
24
+ /** Expand a prefixed IRI to full form (e.g., "mw:Direction" → full IRI). */
25
+ export declare function expandIRI(prefixedIRI: string): string;
26
+ /** Compact a full IRI to prefixed form if possible. */
27
+ export declare function compactIRI(fullIRI: string): string;
28
+ //# sourceMappingURL=rdf-interop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rdf-interop.d.ts","sourceRoot":"","sources":["../src/rdf-interop.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,MAAM,EAAG,6CAAsD,CAAC;AAC7E,eAAO,MAAM,OAAO,EAAG,uCAAgD,CAAC;AACxE,eAAO,MAAM,MAAM,EAAG,gCAAyC,CAAC;AAChE,eAAO,MAAM,OAAO,EAAG,sCAA+C,CAAC;AACvE,eAAO,MAAM,OAAO,EAAG,4BAAqC,CAAC;AAC7D,eAAO,MAAM,QAAQ,EAAG,6BAAsC,CAAC;AAE/D,gFAAgF;AAChF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;CAaX,CAAC;AAEX,6DAA6D;AAC7D,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,uDAAuD;AACvD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOlD"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PREFIXES = exports.SHACL_NS = exports.PROV_NS = exports.SKOS_NS = exports.OWL_NS = exports.RDFS_NS = exports.RDF_NS = void 0;
4
+ exports.prefixed = prefixed;
5
+ exports.expandIRI = expandIRI;
6
+ exports.compactIRI = compactIRI;
7
+ /**
8
+ * @medicine-wheel/ontology-core — RDF Interop Adapter (OPTIONAL)
9
+ *
10
+ * Standard semantic-web namespaces and IRI utilities. This module is an
11
+ * OPTIONAL serialization/interop adapter — NOT the backbone of the ontology.
12
+ *
13
+ * The non-hierarchical kinship graph is primary (see `kinship.ts`): beings are
14
+ * co-equal and relations carry the meaning through named, context-bound edges.
15
+ * RDF/OWL is provided here only for interop with triple stores and
16
+ * knowledge-graph ecosystems. Nothing in the kinship core imports this module —
17
+ * importing it is a deliberate choice to serialize OUT to the semantic web.
18
+ */
19
+ const vocabulary_1 = require("./vocabulary");
20
+ // Standard ontology namespaces for interop
21
+ exports.RDF_NS = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';
22
+ exports.RDFS_NS = 'http://www.w3.org/2000/01/rdf-schema#';
23
+ exports.OWL_NS = 'http://www.w3.org/2002/07/owl#';
24
+ exports.SKOS_NS = 'http://www.w3.org/2004/02/skos/core#';
25
+ exports.PROV_NS = 'http://www.w3.org/ns/prov#';
26
+ exports.SHACL_NS = 'http://www.w3.org/ns/shacl#';
27
+ /** Combined prefix map: Medicine Wheel domain namespaces + standard interop. */
28
+ exports.PREFIXES = {
29
+ mw: vocabulary_1.MW_NS,
30
+ ids: vocabulary_1.IDS_NS,
31
+ ocap: vocabulary_1.OCAP_NS,
32
+ rel: vocabulary_1.REL_NS,
33
+ cer: vocabulary_1.CER_NS,
34
+ beat: vocabulary_1.BEAT_NS,
35
+ rdf: exports.RDF_NS,
36
+ rdfs: exports.RDFS_NS,
37
+ owl: exports.OWL_NS,
38
+ skos: exports.SKOS_NS,
39
+ prov: exports.PROV_NS,
40
+ sh: exports.SHACL_NS,
41
+ };
42
+ /** Generate a prefixed IRI string (e.g., "mw:Direction"). */
43
+ function prefixed(namespace, localName) {
44
+ return `${namespace}:${localName}`;
45
+ }
46
+ /** Expand a prefixed IRI to full form (e.g., "mw:Direction" → full IRI). */
47
+ function expandIRI(prefixedIRI) {
48
+ const [prefix, local] = prefixedIRI.split(':');
49
+ const ns = exports.PREFIXES[prefix];
50
+ if (!ns)
51
+ throw new Error(`Unknown prefix: ${prefix}`);
52
+ return `${ns}${local}`;
53
+ }
54
+ /** Compact a full IRI to prefixed form if possible. */
55
+ function compactIRI(fullIRI) {
56
+ for (const [prefix, ns] of Object.entries(exports.PREFIXES)) {
57
+ if (fullIRI.startsWith(ns)) {
58
+ return `${prefix}:${fullIRI.slice(ns.length)}`;
59
+ }
60
+ }
61
+ return fullIRI;
62
+ }
63
+ //# sourceMappingURL=rdf-interop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rdf-interop.js","sourceRoot":"","sources":["../src/rdf-interop.ts"],"names":[],"mappings":";;;AAuCA,4BAEC;AAGD,8BAKC;AAGD,gCAOC;AA3DD;;;;;;;;;;;GAWG;AACH,6CAA+E;AAE/E,2CAA2C;AAC9B,QAAA,MAAM,GAAG,6CAAsD,CAAC;AAChE,QAAA,OAAO,GAAG,uCAAgD,CAAC;AAC3D,QAAA,MAAM,GAAG,gCAAyC,CAAC;AACnD,QAAA,OAAO,GAAG,sCAA+C,CAAC;AAC1D,QAAA,OAAO,GAAG,4BAAqC,CAAC;AAChD,QAAA,QAAQ,GAAG,6BAAsC,CAAC;AAE/D,gFAAgF;AACnE,QAAA,QAAQ,GAAG;IACtB,EAAE,EAAE,kBAAK;IACT,GAAG,EAAE,mBAAM;IACX,IAAI,EAAE,oBAAO;IACb,GAAG,EAAE,mBAAM;IACX,GAAG,EAAE,mBAAM;IACX,IAAI,EAAE,oBAAO;IACb,GAAG,EAAE,cAAM;IACX,IAAI,EAAE,eAAO;IACb,GAAG,EAAE,cAAM;IACX,IAAI,EAAE,eAAO;IACb,IAAI,EAAE,eAAO;IACb,EAAE,EAAE,gBAAQ;CACJ,CAAC;AAEX,6DAA6D;AAC7D,SAAgB,QAAQ,CAAC,SAAgC,EAAE,SAAiB;IAC1E,OAAO,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;AACrC,CAAC;AAED,4EAA4E;AAC5E,SAAgB,SAAS,CAAC,WAAmB;IAC3C,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,gBAAQ,CAAC,MAA+B,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IACtD,OAAO,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,uDAAuD;AACvD,SAAgB,UAAU,CAAC,OAAe;IACxC,KAAK,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}