@nahisaho/musubix-ontology-mcp 1.0.0 → 1.5.2

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/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@
6
6
  */
7
7
  export * from './types.js';
8
8
  export * from './store/index.js';
9
+ export * from './validation/index.js';
9
10
  export * from './privacy/index.js';
10
11
  export * from './inference/index.js';
11
12
  export * from './integration/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -8,6 +8,8 @@
8
8
  export * from './types.js';
9
9
  // Ontology Store (TSK-ONTO-001)
10
10
  export * from './store/index.js';
11
+ // Validation (REQ-ONTO-001-F003)
12
+ export * from './validation/index.js';
11
13
  // Privacy Protection (TSK-ONTO-008)
12
14
  export * from './privacy/index.js';
13
15
  // Inference Engine (TSK-ONTO-002)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,gCAAgC;AAChC,cAAc,kBAAkB,CAAC;AAEjC,oCAAoC;AACpC,cAAc,oBAAoB,CAAC;AAEnC,kCAAkC;AAClC,cAAc,sBAAsB,CAAC;AAErC,oCAAoC;AACpC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,gCAAgC;AAChC,cAAc,kBAAkB,CAAC;AAEjC,iCAAiC;AACjC,cAAc,uBAAuB,CAAC;AAEtC,oCAAoC;AACpC,cAAc,oBAAoB,CAAC;AAEnC,kCAAkC;AAClC,cAAc,sBAAsB,CAAC;AAErC,oCAAoC;AACpC,cAAc,wBAAwB,CAAC"}
@@ -2,7 +2,8 @@
2
2
  * @fileoverview N3.js-based RDF triple store
3
3
  * @traceability TSK-ONTO-001, REQ-ONTO-001-F001
4
4
  */
5
- import type { Triple, OntologyStoreConfig } from '../types.js';
5
+ import type { Triple, OntologyStoreConfig, TripleValidationResult, ConsistencyResult } from '../types.js';
6
+ import { type TripleStore } from '../validation/consistency-validator.js';
6
7
  /**
7
8
  * Query pattern for SPARQL-like queries
8
9
  */
@@ -40,13 +41,16 @@ export interface InferenceRule {
40
41
  * - Pattern-based querying
41
42
  * - Basic RDFS inference
42
43
  * - Named graphs
44
+ * - Consistency validation
43
45
  */
44
- export declare class N3Store {
46
+ export declare class N3Store implements TripleStore {
45
47
  private store;
46
48
  private config;
47
49
  private dirty;
48
50
  private inferenceRules;
49
- constructor(config?: Partial<OntologyStoreConfig>);
51
+ private validator;
52
+ private validateOnAdd;
53
+ constructor(config?: Partial<OntologyStoreConfig>, validateOnAdd?: boolean);
50
54
  /**
51
55
  * Initialize RDFS inference rules
52
56
  */
@@ -61,8 +65,34 @@ export declare class N3Store {
61
65
  save(): Promise<void>;
62
66
  /**
63
67
  * Add a triple to the store
68
+ * @param triple Triple to add
69
+ * @param graph Optional named graph
70
+ * @param skipValidation Skip pre-add validation (default: use constructor setting)
64
71
  */
65
- addTriple(triple: Triple, graph?: string): boolean;
72
+ addTriple(triple: Triple, graph?: string, skipValidation?: boolean): boolean;
73
+ /**
74
+ * Add a triple with validation and return detailed result
75
+ */
76
+ addTripleValidated(triple: Triple, graph?: string): {
77
+ success: boolean;
78
+ validation: TripleValidationResult;
79
+ };
80
+ /**
81
+ * Validate a triple before adding
82
+ */
83
+ validateTriple(triple: Triple): TripleValidationResult;
84
+ /**
85
+ * Get all triples (implements TripleStore interface)
86
+ */
87
+ getTriples(pattern?: Partial<Triple>): Triple[];
88
+ /**
89
+ * Validate entire store consistency
90
+ */
91
+ checkConsistency(): ConsistencyResult;
92
+ /**
93
+ * Enable or disable validation on add
94
+ */
95
+ setValidateOnAdd(enabled: boolean): void;
66
96
  /**
67
97
  * Add multiple triples
68
98
  */
@@ -1 +1 @@
1
- {"version":3,"file":"n3-store.d.ts","sourceRoot":"","sources":["../../src/store/n3-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAK/D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;CAC5D;AAED;;;;;;;;;;GAUG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,cAAc,CAAuB;gBAEjC,MAAM,GAAE,OAAO,CAAC,mBAAmB,CAAM;IAarD;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAkEhC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsC3B;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;IAuBlD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAUrD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;IAkBrD;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,aAAa,EAAE;IAoB7C;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;IAW5C;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAM5C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE;IAU/C;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAepD;;OAEG;IACH,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBhE;;OAEG;IACH,OAAO,CAAC,cAAc;IA6BtB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;CAUtB"}
1
+ {"version":3,"file":"n3-store.d.ts","sourceRoot":"","sources":["../../src/store/n3-store.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  import * as N3 from 'n3';
6
6
  import { readFile, writeFile, mkdir } from 'node:fs/promises';
7
7
  import { dirname } from 'node:path';
8
+ import { ConsistencyValidator } from '../validation/consistency-validator.js';
8
9
  const { DataFactory, Store, Writer, Parser } = N3;
9
10
  const { namedNode, literal, quad } = DataFactory;
10
11
  /**
@@ -17,19 +18,24 @@ const { namedNode, literal, quad } = DataFactory;
17
18
  * - Pattern-based querying
18
19
  * - Basic RDFS inference
19
20
  * - Named graphs
21
+ * - Consistency validation
20
22
  */
21
23
  export class N3Store {
22
24
  store;
23
25
  config;
24
26
  dirty = false;
25
27
  inferenceRules = [];
26
- constructor(config = {}) {
28
+ validator;
29
+ validateOnAdd;
30
+ constructor(config = {}, validateOnAdd = false) {
27
31
  this.store = new Store();
28
32
  this.config = {
29
33
  storagePath: config.storagePath ?? './storage/ontology/n3-store.ttl',
30
34
  enableInference: config.enableInference ?? true,
31
35
  maxTriples: config.maxTriples ?? 100000,
32
36
  };
37
+ this.validator = new ConsistencyValidator();
38
+ this.validateOnAdd = validateOnAdd;
33
39
  if (this.config.enableInference) {
34
40
  this.initializeInferenceRules();
35
41
  }
@@ -141,11 +147,26 @@ export class N3Store {
141
147
  }
142
148
  /**
143
149
  * Add a triple to the store
150
+ * @param triple Triple to add
151
+ * @param graph Optional named graph
152
+ * @param skipValidation Skip pre-add validation (default: use constructor setting)
144
153
  */
145
- addTriple(triple, graph) {
154
+ addTriple(triple, graph, skipValidation) {
146
155
  if (this.store.size >= this.config.maxTriples) {
147
156
  return false;
148
157
  }
158
+ // Pre-add validation if enabled
159
+ const shouldValidate = skipValidation !== undefined ? !skipValidation : this.validateOnAdd;
160
+ if (shouldValidate) {
161
+ const validation = this.validateTriple(triple);
162
+ if (!validation.valid) {
163
+ return false;
164
+ }
165
+ // Skip exact duplicates
166
+ if (validation.duplicateOf) {
167
+ return true; // Considered successful (already exists)
168
+ }
169
+ }
149
170
  const subject = namedNode(triple.subject);
150
171
  const predicate = namedNode(triple.predicate);
151
172
  const object = triple.object.startsWith('http://') || triple.object.startsWith('https://')
@@ -160,6 +181,57 @@ export class N3Store {
160
181
  }
161
182
  return true;
162
183
  }
184
+ /**
185
+ * Add a triple with validation and return detailed result
186
+ */
187
+ addTripleValidated(triple, graph) {
188
+ const validation = this.validateTriple(triple);
189
+ if (!validation.valid) {
190
+ return { success: false, validation };
191
+ }
192
+ if (validation.duplicateOf) {
193
+ return { success: true, validation };
194
+ }
195
+ const success = this.addTriple(triple, graph, true);
196
+ return { success, validation };
197
+ }
198
+ /**
199
+ * Validate a triple before adding
200
+ */
201
+ validateTriple(triple) {
202
+ const existingTriples = this.getTriples();
203
+ return this.validator.validateTriple(triple, existingTriples);
204
+ }
205
+ /**
206
+ * Get all triples (implements TripleStore interface)
207
+ */
208
+ getTriples(pattern) {
209
+ const subject = pattern?.subject ? namedNode(pattern.subject) : null;
210
+ const predicate = pattern?.predicate ? namedNode(pattern.predicate) : null;
211
+ const object = pattern?.object
212
+ ? pattern.object.startsWith('http://') || pattern.object.startsWith('https://')
213
+ ? namedNode(pattern.object)
214
+ : literal(pattern.object)
215
+ : null;
216
+ const quads = this.store.getQuads(subject, predicate, object, null);
217
+ return quads.map(q => ({
218
+ subject: q.subject.value,
219
+ predicate: q.predicate.value,
220
+ object: q.object.value,
221
+ }));
222
+ }
223
+ /**
224
+ * Validate entire store consistency
225
+ */
226
+ checkConsistency() {
227
+ return this.validator.validate(this);
228
+ }
229
+ /**
230
+ * Enable or disable validation on add
231
+ */
232
+ setValidateOnAdd(enabled) {
233
+ this.validateOnAdd = enabled;
234
+ }
163
235
  /**
164
236
  * Add multiple triples
165
237
  */
@@ -1 +1 @@
1
- {"version":3,"file":"n3-store.js","sourceRoot":"","sources":["../../src/store/n3-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"n3-store.js","sourceRoot":"","sources":["../../src/store/n3-store.ts"],"names":[],"mappings":"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"}
@@ -2,19 +2,22 @@
2
2
  * @fileoverview Ontology store with local persistence
3
3
  * @traceability TSK-ONTO-001, REQ-ONTO-001-F001
4
4
  */
5
- import type { Ontology, Triple, OntologyStoreConfig } from '../types.js';
5
+ import type { Ontology, Triple, OntologyStoreConfig, TripleValidationResult, ConsistencyResult } from '../types.js';
6
6
  /**
7
7
  * Ontology store with local JSON persistence
8
8
  *
9
9
  * @description
10
10
  * Manages ontology storage locally (no external communication).
11
11
  * Supports CRUD operations on ontologies and triples.
12
+ * Includes validation and consistency checking.
12
13
  */
13
14
  export declare class OntologyStore {
14
15
  private ontologies;
15
16
  private config;
16
17
  private dirty;
17
- constructor(config?: Partial<OntologyStoreConfig>);
18
+ private validator;
19
+ private validateOnAdd;
20
+ constructor(config?: Partial<OntologyStoreConfig>, validateOnAdd?: boolean);
18
21
  /**
19
22
  * Load store from disk
20
23
  */
@@ -37,12 +40,34 @@ export declare class OntologyStore {
37
40
  delete(id: string): boolean;
38
41
  /**
39
42
  * Add triple to ontology
43
+ * @param ontologyId Target ontology ID
44
+ * @param triple Triple to add
45
+ * @param skipValidation Skip pre-add validation (default: use constructor setting)
40
46
  */
41
- addTriple(ontologyId: string, triple: Triple): boolean;
47
+ addTriple(ontologyId: string, triple: Triple, skipValidation?: boolean): boolean;
42
48
  /**
43
- * Get all triples from ontology
49
+ * Add a triple with validation and return detailed result
44
50
  */
45
- getTriples(ontologyId: string): Triple[];
51
+ addTripleValidated(ontologyId: string, triple: Triple): {
52
+ success: boolean;
53
+ validation: TripleValidationResult;
54
+ };
55
+ /**
56
+ * Validate a triple before adding
57
+ */
58
+ validateTriple(ontologyId: string, triple: Triple): TripleValidationResult;
59
+ /**
60
+ * Get all triples (implements TripleStore interface)
61
+ */
62
+ getTriples(ontologyId?: string): Triple[];
63
+ /**
64
+ * Validate entire store consistency
65
+ */
66
+ checkConsistency(ontologyId?: string): ConsistencyResult;
67
+ /**
68
+ * Enable or disable validation on add
69
+ */
70
+ setValidateOnAdd(enabled: boolean): void;
46
71
  /**
47
72
  * List all ontologies
48
73
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ontology-store.d.ts","sourceRoot":"","sources":["../../src/store/ontology-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEzE;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,GAAE,OAAO,CAAC,mBAAmB,CAAM;IAQrD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,QAAQ;IAetF;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIrC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQ3B;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAiBtD;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAIxC;;OAEG;IACH,IAAI,IAAI,QAAQ,EAAE;IAIlB;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAGxB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
1
+ {"version":3,"file":"ontology-store.d.ts","sourceRoot":"","sources":["../../src/store/ontology-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGpH;;;;;;;GAOG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,aAAa,CAAU;gBAEnB,MAAM,GAAE,OAAO,CAAC,mBAAmB,CAAM,EAAE,aAAa,UAAQ;IAU5E;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,QAAQ;IAetF;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIrC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQ3B;;;;;OAKG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO;IA8BhF;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,sBAAsB,CAAA;KAAE;IAehH;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,sBAAsB;IAK1E;;OAEG;IACH,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAQzC;;OAEG;IACH,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB;IAexD;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIxC;;OAEG;IACH,IAAI,IAAI,QAAQ,EAAE;IAIlB;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAGxB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -4,23 +4,29 @@
4
4
  */
5
5
  import { readFile, writeFile, mkdir } from 'node:fs/promises';
6
6
  import { dirname } from 'node:path';
7
+ import { ConsistencyValidator } from '../validation/consistency-validator.js';
7
8
  /**
8
9
  * Ontology store with local JSON persistence
9
10
  *
10
11
  * @description
11
12
  * Manages ontology storage locally (no external communication).
12
13
  * Supports CRUD operations on ontologies and triples.
14
+ * Includes validation and consistency checking.
13
15
  */
14
16
  export class OntologyStore {
15
17
  ontologies = new Map();
16
18
  config;
17
19
  dirty = false;
18
- constructor(config = {}) {
20
+ validator;
21
+ validateOnAdd;
22
+ constructor(config = {}, validateOnAdd = false) {
19
23
  this.config = {
20
24
  storagePath: config.storagePath ?? './storage/ontology/store.json',
21
25
  enableInference: config.enableInference ?? true,
22
26
  maxTriples: config.maxTriples ?? 100000,
23
27
  };
28
+ this.validator = new ConsistencyValidator();
29
+ this.validateOnAdd = validateOnAdd;
24
30
  }
25
31
  /**
26
32
  * Load store from disk
@@ -91,8 +97,11 @@ export class OntologyStore {
91
97
  }
92
98
  /**
93
99
  * Add triple to ontology
100
+ * @param ontologyId Target ontology ID
101
+ * @param triple Triple to add
102
+ * @param skipValidation Skip pre-add validation (default: use constructor setting)
94
103
  */
95
- addTriple(ontologyId, triple) {
104
+ addTriple(ontologyId, triple, skipValidation) {
96
105
  const ontology = this.ontologies.get(ontologyId);
97
106
  if (!ontology)
98
107
  return false;
@@ -101,16 +110,76 @@ export class OntologyStore {
101
110
  if (totalTriples >= this.config.maxTriples) {
102
111
  return false;
103
112
  }
113
+ // Pre-add validation if enabled
114
+ const shouldValidate = skipValidation !== undefined ? !skipValidation : this.validateOnAdd;
115
+ if (shouldValidate) {
116
+ const validation = this.validateTriple(ontologyId, triple);
117
+ if (!validation.valid) {
118
+ return false;
119
+ }
120
+ // Skip exact duplicates
121
+ if (validation.duplicateOf) {
122
+ return true; // Considered successful (already exists)
123
+ }
124
+ }
104
125
  ontology.triples.push(triple);
105
126
  ontology.updatedAt = new Date().toISOString();
106
127
  this.dirty = true;
107
128
  return true;
108
129
  }
109
130
  /**
110
- * Get all triples from ontology
131
+ * Add a triple with validation and return detailed result
132
+ */
133
+ addTripleValidated(ontologyId, triple) {
134
+ const validation = this.validateTriple(ontologyId, triple);
135
+ if (!validation.valid) {
136
+ return { success: false, validation };
137
+ }
138
+ if (validation.duplicateOf) {
139
+ return { success: true, validation };
140
+ }
141
+ const success = this.addTriple(ontologyId, triple, true);
142
+ return { success, validation };
143
+ }
144
+ /**
145
+ * Validate a triple before adding
146
+ */
147
+ validateTriple(ontologyId, triple) {
148
+ const existingTriples = this.getTriples(ontologyId);
149
+ return this.validator.validateTriple(triple, existingTriples);
150
+ }
151
+ /**
152
+ * Get all triples (implements TripleStore interface)
111
153
  */
112
154
  getTriples(ontologyId) {
113
- return this.ontologies.get(ontologyId)?.triples ?? [];
155
+ if (ontologyId) {
156
+ return this.ontologies.get(ontologyId)?.triples ?? [];
157
+ }
158
+ // Return all triples from all ontologies
159
+ return Array.from(this.ontologies.values()).flatMap(o => o.triples);
160
+ }
161
+ /**
162
+ * Validate entire store consistency
163
+ */
164
+ checkConsistency(ontologyId) {
165
+ if (ontologyId) {
166
+ const ontology = this.ontologies.get(ontologyId);
167
+ if (!ontology) {
168
+ return { consistent: true, violations: [] };
169
+ }
170
+ const adapter = { getTriples: () => ontology.triples };
171
+ return this.validator.validate(adapter);
172
+ }
173
+ // Create adapter for all triples
174
+ const allTriples = this.getTriples();
175
+ const adapter = { getTriples: () => allTriples };
176
+ return this.validator.validate(adapter);
177
+ }
178
+ /**
179
+ * Enable or disable validation on add
180
+ */
181
+ setValidateOnAdd(enabled) {
182
+ this.validateOnAdd = enabled;
114
183
  }
115
184
  /**
116
185
  * List all ontologies
@@ -1 +1 @@
1
- {"version":3,"file":"ontology-store.js","sourceRoot":"","sources":["../../src/store/ontology-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ontology-store.js","sourceRoot":"","sources":["../../src/store/ontology-store.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -60,14 +60,37 @@ export interface ProofNode {
60
60
  export interface ConsistencyResult {
61
61
  consistent: boolean;
62
62
  violations: ConsistencyViolation[];
63
+ suggestions?: ConsistencySuggestion[];
63
64
  }
65
+ /**
66
+ * Violation type for OWL constraints
67
+ */
68
+ export type ViolationType = 'disjoint-class-membership' | 'functional-property-violation' | 'inverse-functional-violation' | 'asymmetric-violation' | 'irreflexive-violation' | 'duplicate-triple' | 'invalid-reference' | 'circular-dependency';
64
69
  /**
65
70
  * Consistency violation
66
71
  */
67
72
  export interface ConsistencyViolation {
68
- type: string;
73
+ type: ViolationType | string;
69
74
  message: string;
70
75
  triples: Triple[];
76
+ severity: 'error' | 'warning';
77
+ }
78
+ /**
79
+ * Suggestion for fixing violation
80
+ */
81
+ export interface ConsistencySuggestion {
82
+ violation: ConsistencyViolation;
83
+ suggestion: string;
84
+ autoFixable: boolean;
85
+ }
86
+ /**
87
+ * Validation result for triple before adding
88
+ */
89
+ export interface TripleValidationResult {
90
+ valid: boolean;
91
+ errors: string[];
92
+ warnings: string[];
93
+ duplicateOf?: Triple;
71
94
  }
72
95
  /**
73
96
  * Query error with position
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,WAAW,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,SAAS,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,WAAW,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,SAAS,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,2BAA2B,GAC3B,+BAA+B,GAC/B,8BAA8B,GAC9B,sBAAsB,GACtB,uBAAuB,GACvB,kBAAkB,GAClB,mBAAmB,GACnB,qBAAqB,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,oBAAoB,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @fileoverview Consistency validator for ontology stores
3
+ * @traceability REQ-ONTO-001-F003, DES-ONTO-001
4
+ */
5
+ import type { Triple, ConsistencyResult, TripleValidationResult } from '../types.js';
6
+ /**
7
+ * Interface for triple store abstraction
8
+ */
9
+ export interface TripleStore {
10
+ getTriples(pattern?: Partial<Triple>): Triple[];
11
+ }
12
+ /**
13
+ * Consistency validator configuration
14
+ */
15
+ export interface ConsistencyValidatorConfig {
16
+ /** Enable disjoint class checking */
17
+ checkDisjointClasses: boolean;
18
+ /** Enable functional property checking */
19
+ checkFunctionalProperties: boolean;
20
+ /** Enable inverse functional property checking */
21
+ checkInverseFunctionalProperties: boolean;
22
+ /** Enable asymmetric property checking */
23
+ checkAsymmetricProperties: boolean;
24
+ /** Enable irreflexive property checking */
25
+ checkIrreflexiveProperties: boolean;
26
+ /** Enable duplicate detection */
27
+ checkDuplicates: boolean;
28
+ /** Enable circular dependency detection */
29
+ checkCircularDependencies: boolean;
30
+ }
31
+ /**
32
+ * Consistency validator for RDF/OWL ontologies
33
+ *
34
+ * @description
35
+ * Validates ontology consistency according to OWL semantics:
36
+ * - Disjoint class membership violations
37
+ * - Functional property constraints
38
+ * - Inverse functional property constraints
39
+ * - Asymmetric property violations
40
+ * - Irreflexive property violations
41
+ * - Duplicate triple detection
42
+ * - Circular dependency detection
43
+ *
44
+ * @traceability REQ-ONTO-001-F003
45
+ */
46
+ export declare class ConsistencyValidator {
47
+ private config;
48
+ constructor(config?: Partial<ConsistencyValidatorConfig>);
49
+ /**
50
+ * Validate entire store for consistency
51
+ */
52
+ validate(store: TripleStore): ConsistencyResult;
53
+ /**
54
+ * Validate a single triple before adding
55
+ */
56
+ validateTriple(triple: Triple, existingTriples: Triple[]): TripleValidationResult;
57
+ /**
58
+ * Find duplicate triples (exact match)
59
+ */
60
+ findDuplicates(triples: Triple[]): Triple[][];
61
+ /**
62
+ * Find semantically equivalent triples
63
+ */
64
+ findSemanticDuplicates(triples: Triple[]): Triple[][];
65
+ private checkDisjointClasses;
66
+ private checkFunctionalProperties;
67
+ private checkInverseFunctionalProperties;
68
+ private checkAsymmetricProperties;
69
+ private checkIrreflexiveProperties;
70
+ private checkDuplicates;
71
+ private checkCircularDependencies;
72
+ private findCycles;
73
+ private findFunctionalProperties;
74
+ private findInverseFunctionalProperties;
75
+ private findAsymmetricProperties;
76
+ private findIrreflexiveProperties;
77
+ private isValidUri;
78
+ private areSemanticallyEquivalent;
79
+ private generateSuggestions;
80
+ }
81
+ //# sourceMappingURL=consistency-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consistency-validator.d.ts","sourceRoot":"","sources":["../../src/validation/consistency-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,iBAAiB,EAGjB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAiBrB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,qCAAqC;IACrC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,0CAA0C;IAC1C,yBAAyB,EAAE,OAAO,CAAC;IACnC,kDAAkD;IAClD,gCAAgC,EAAE,OAAO,CAAC;IAC1C,0CAA0C;IAC1C,yBAAyB,EAAE,OAAO,CAAC;IACnC,2CAA2C;IAC3C,0BAA0B,EAAE,OAAO,CAAC;IACpC,iCAAiC;IACjC,eAAe,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,yBAAyB,EAAE,OAAO,CAAC;CACpC;AAYD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAA6B;gBAE/B,MAAM,GAAE,OAAO,CAAC,0BAA0B,CAAM;IAI5D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,iBAAiB;IA0C/C;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,sBAAsB;IA4FjF;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE;IAa7C;;OAEG;IACH,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE;IA6BrD,OAAO,CAAC,oBAAoB;IAsC5B,OAAO,CAAC,yBAAyB;IA8BjC,OAAO,CAAC,gCAAgC;IA8BxC,OAAO,CAAC,yBAAyB;IA6BjC,OAAO,CAAC,0BAA0B;IAsBlC,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,yBAAyB;IAqBjC,OAAO,CAAC,UAAU;IA4DlB,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,+BAA+B;IAQvC,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,mBAAmB;CAsD5B"}
@@ -0,0 +1,496 @@
1
+ /**
2
+ * @fileoverview Consistency validator for ontology stores
3
+ * @traceability REQ-ONTO-001-F003, DES-ONTO-001
4
+ */
5
+ /**
6
+ * OWL/RDF namespace URIs
7
+ */
8
+ const RDF = {
9
+ type: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type',
10
+ };
11
+ const OWL = {
12
+ disjointWith: 'http://www.w3.org/2002/07/owl#disjointWith',
13
+ FunctionalProperty: 'http://www.w3.org/2002/07/owl#FunctionalProperty',
14
+ InverseFunctionalProperty: 'http://www.w3.org/2002/07/owl#InverseFunctionalProperty',
15
+ AsymmetricProperty: 'http://www.w3.org/2002/07/owl#AsymmetricProperty',
16
+ IrreflexiveProperty: 'http://www.w3.org/2002/07/owl#IrreflexiveProperty',
17
+ };
18
+ const DEFAULT_CONFIG = {
19
+ checkDisjointClasses: true,
20
+ checkFunctionalProperties: true,
21
+ checkInverseFunctionalProperties: true,
22
+ checkAsymmetricProperties: true,
23
+ checkIrreflexiveProperties: true,
24
+ checkDuplicates: true,
25
+ checkCircularDependencies: true,
26
+ };
27
+ /**
28
+ * Consistency validator for RDF/OWL ontologies
29
+ *
30
+ * @description
31
+ * Validates ontology consistency according to OWL semantics:
32
+ * - Disjoint class membership violations
33
+ * - Functional property constraints
34
+ * - Inverse functional property constraints
35
+ * - Asymmetric property violations
36
+ * - Irreflexive property violations
37
+ * - Duplicate triple detection
38
+ * - Circular dependency detection
39
+ *
40
+ * @traceability REQ-ONTO-001-F003
41
+ */
42
+ export class ConsistencyValidator {
43
+ config;
44
+ constructor(config = {}) {
45
+ this.config = { ...DEFAULT_CONFIG, ...config };
46
+ }
47
+ /**
48
+ * Validate entire store for consistency
49
+ */
50
+ validate(store) {
51
+ const violations = [];
52
+ const triples = store.getTriples();
53
+ if (this.config.checkDisjointClasses) {
54
+ violations.push(...this.checkDisjointClasses(triples));
55
+ }
56
+ if (this.config.checkFunctionalProperties) {
57
+ violations.push(...this.checkFunctionalProperties(triples));
58
+ }
59
+ if (this.config.checkInverseFunctionalProperties) {
60
+ violations.push(...this.checkInverseFunctionalProperties(triples));
61
+ }
62
+ if (this.config.checkAsymmetricProperties) {
63
+ violations.push(...this.checkAsymmetricProperties(triples));
64
+ }
65
+ if (this.config.checkIrreflexiveProperties) {
66
+ violations.push(...this.checkIrreflexiveProperties(triples));
67
+ }
68
+ if (this.config.checkDuplicates) {
69
+ violations.push(...this.checkDuplicates(triples));
70
+ }
71
+ if (this.config.checkCircularDependencies) {
72
+ violations.push(...this.checkCircularDependencies(triples));
73
+ }
74
+ const suggestions = this.generateSuggestions(violations);
75
+ const hasErrors = violations.some(v => v.severity === 'error');
76
+ return {
77
+ consistent: !hasErrors,
78
+ violations,
79
+ suggestions,
80
+ };
81
+ }
82
+ /**
83
+ * Validate a single triple before adding
84
+ */
85
+ validateTriple(triple, existingTriples) {
86
+ const errors = [];
87
+ const warnings = [];
88
+ // Check for exact duplicate
89
+ const duplicate = existingTriples.find(t => t.subject === triple.subject &&
90
+ t.predicate === triple.predicate &&
91
+ t.object === triple.object);
92
+ if (duplicate) {
93
+ warnings.push(`Duplicate triple already exists`);
94
+ return { valid: true, errors, warnings, duplicateOf: duplicate };
95
+ }
96
+ // Check URI format
97
+ if (!this.isValidUri(triple.subject)) {
98
+ errors.push(`Invalid subject URI: ${triple.subject}`);
99
+ }
100
+ if (!this.isValidUri(triple.predicate)) {
101
+ errors.push(`Invalid predicate URI: ${triple.predicate}`);
102
+ }
103
+ // Check functional property violation
104
+ if (this.config.checkFunctionalProperties) {
105
+ const functionalProps = this.findFunctionalProperties(existingTriples);
106
+ if (functionalProps.has(triple.predicate)) {
107
+ const existing = existingTriples.find(t => t.subject === triple.subject &&
108
+ t.predicate === triple.predicate &&
109
+ t.object !== triple.object);
110
+ if (existing) {
111
+ errors.push(`Functional property violation: ${triple.predicate} already has value ${existing.object} for subject ${triple.subject}`);
112
+ }
113
+ }
114
+ }
115
+ // Check inverse functional property violation
116
+ if (this.config.checkInverseFunctionalProperties) {
117
+ const invFunctionalProps = this.findInverseFunctionalProperties(existingTriples);
118
+ if (invFunctionalProps.has(triple.predicate)) {
119
+ const existing = existingTriples.find(t => t.predicate === triple.predicate &&
120
+ t.object === triple.object &&
121
+ t.subject !== triple.subject);
122
+ if (existing) {
123
+ errors.push(`Inverse functional property violation: ${triple.object} is already the value of ${triple.predicate} for subject ${existing.subject}`);
124
+ }
125
+ }
126
+ }
127
+ // Check asymmetric property violation
128
+ if (this.config.checkAsymmetricProperties) {
129
+ const asymmetricProps = this.findAsymmetricProperties(existingTriples);
130
+ if (asymmetricProps.has(triple.predicate)) {
131
+ const inverse = existingTriples.find(t => t.subject === triple.object &&
132
+ t.predicate === triple.predicate &&
133
+ t.object === triple.subject);
134
+ if (inverse) {
135
+ errors.push(`Asymmetric property violation: inverse triple exists for ${triple.predicate}`);
136
+ }
137
+ }
138
+ }
139
+ // Check irreflexive property violation
140
+ if (this.config.checkIrreflexiveProperties) {
141
+ const irreflexiveProps = this.findIrreflexiveProperties(existingTriples);
142
+ if (irreflexiveProps.has(triple.predicate) && triple.subject === triple.object) {
143
+ errors.push(`Irreflexive property violation: ${triple.predicate} cannot relate a resource to itself`);
144
+ }
145
+ }
146
+ return {
147
+ valid: errors.length === 0,
148
+ errors,
149
+ warnings,
150
+ };
151
+ }
152
+ /**
153
+ * Find duplicate triples (exact match)
154
+ */
155
+ findDuplicates(triples) {
156
+ const groups = new Map();
157
+ for (const triple of triples) {
158
+ const key = `${triple.subject}|${triple.predicate}|${triple.object}`;
159
+ const existing = groups.get(key) ?? [];
160
+ existing.push(triple);
161
+ groups.set(key, existing);
162
+ }
163
+ return Array.from(groups.values()).filter(g => g.length > 1);
164
+ }
165
+ /**
166
+ * Find semantically equivalent triples
167
+ */
168
+ findSemanticDuplicates(triples) {
169
+ const groups = [];
170
+ const processed = new Set();
171
+ for (let i = 0; i < triples.length; i++) {
172
+ if (processed.has(i))
173
+ continue;
174
+ const group = [triples[i]];
175
+ processed.add(i);
176
+ for (let j = i + 1; j < triples.length; j++) {
177
+ if (processed.has(j))
178
+ continue;
179
+ if (this.areSemanticallyEquivalent(triples[i], triples[j])) {
180
+ group.push(triples[j]);
181
+ processed.add(j);
182
+ }
183
+ }
184
+ if (group.length > 1) {
185
+ groups.push(group);
186
+ }
187
+ }
188
+ return groups;
189
+ }
190
+ // ========== Private Methods ==========
191
+ checkDisjointClasses(triples) {
192
+ const violations = [];
193
+ // Find all disjoint class declarations
194
+ const disjointPairs = triples
195
+ .filter(t => t.predicate === OWL.disjointWith)
196
+ .map(t => ({ class1: t.subject, class2: t.object }));
197
+ // Find all type assertions
198
+ const typeAssertions = triples.filter(t => t.predicate === RDF.type);
199
+ const instanceToClasses = new Map();
200
+ for (const assertion of typeAssertions) {
201
+ const classes = instanceToClasses.get(assertion.subject) ?? new Set();
202
+ classes.add(assertion.object);
203
+ instanceToClasses.set(assertion.subject, classes);
204
+ }
205
+ // Check for violations
206
+ for (const { class1, class2 } of disjointPairs) {
207
+ for (const [instance, classes] of instanceToClasses) {
208
+ if (classes.has(class1) && classes.has(class2)) {
209
+ violations.push({
210
+ type: 'disjoint-class-membership',
211
+ message: `Instance ${instance} is member of disjoint classes ${class1} and ${class2}`,
212
+ triples: [
213
+ { subject: instance, predicate: RDF.type, object: class1 },
214
+ { subject: instance, predicate: RDF.type, object: class2 },
215
+ ],
216
+ severity: 'error',
217
+ });
218
+ }
219
+ }
220
+ }
221
+ return violations;
222
+ }
223
+ checkFunctionalProperties(triples) {
224
+ const violations = [];
225
+ const functionalProps = this.findFunctionalProperties(triples);
226
+ for (const prop of functionalProps) {
227
+ const propTriples = triples.filter(t => t.predicate === prop);
228
+ const subjectToValues = new Map();
229
+ for (const triple of propTriples) {
230
+ const existing = subjectToValues.get(triple.subject) ?? [];
231
+ existing.push(triple);
232
+ subjectToValues.set(triple.subject, existing);
233
+ }
234
+ for (const [subject, values] of subjectToValues) {
235
+ const distinctValues = new Set(values.map(v => v.object));
236
+ if (distinctValues.size > 1) {
237
+ violations.push({
238
+ type: 'functional-property-violation',
239
+ message: `Subject ${subject} has ${distinctValues.size} distinct values for functional property ${prop}`,
240
+ triples: values,
241
+ severity: 'error',
242
+ });
243
+ }
244
+ }
245
+ }
246
+ return violations;
247
+ }
248
+ checkInverseFunctionalProperties(triples) {
249
+ const violations = [];
250
+ const invFunctionalProps = this.findInverseFunctionalProperties(triples);
251
+ for (const prop of invFunctionalProps) {
252
+ const propTriples = triples.filter(t => t.predicate === prop);
253
+ const valueToSubjects = new Map();
254
+ for (const triple of propTriples) {
255
+ const existing = valueToSubjects.get(triple.object) ?? [];
256
+ existing.push(triple);
257
+ valueToSubjects.set(triple.object, existing);
258
+ }
259
+ for (const [value, subjects] of valueToSubjects) {
260
+ const distinctSubjects = new Set(subjects.map(s => s.subject));
261
+ if (distinctSubjects.size > 1) {
262
+ violations.push({
263
+ type: 'inverse-functional-violation',
264
+ message: `Value ${value} is shared by ${distinctSubjects.size} distinct subjects for inverse functional property ${prop}`,
265
+ triples: subjects,
266
+ severity: 'error',
267
+ });
268
+ }
269
+ }
270
+ }
271
+ return violations;
272
+ }
273
+ checkAsymmetricProperties(triples) {
274
+ const violations = [];
275
+ const asymmetricProps = this.findAsymmetricProperties(triples);
276
+ for (const prop of asymmetricProps) {
277
+ const propTriples = triples.filter(t => t.predicate === prop);
278
+ for (const triple of propTriples) {
279
+ const inverse = propTriples.find(t => t.subject === triple.object && t.object === triple.subject);
280
+ if (inverse) {
281
+ // Avoid duplicate reporting
282
+ if (triple.subject < triple.object) {
283
+ violations.push({
284
+ type: 'asymmetric-violation',
285
+ message: `Asymmetric property ${prop} has both (${triple.subject}, ${triple.object}) and inverse`,
286
+ triples: [triple, inverse],
287
+ severity: 'error',
288
+ });
289
+ }
290
+ }
291
+ }
292
+ }
293
+ return violations;
294
+ }
295
+ checkIrreflexiveProperties(triples) {
296
+ const violations = [];
297
+ const irreflexiveProps = this.findIrreflexiveProperties(triples);
298
+ for (const prop of irreflexiveProps) {
299
+ const reflexiveTriples = triples.filter(t => t.predicate === prop && t.subject === t.object);
300
+ for (const triple of reflexiveTriples) {
301
+ violations.push({
302
+ type: 'irreflexive-violation',
303
+ message: `Irreflexive property ${prop} relates ${triple.subject} to itself`,
304
+ triples: [triple],
305
+ severity: 'error',
306
+ });
307
+ }
308
+ }
309
+ return violations;
310
+ }
311
+ checkDuplicates(triples) {
312
+ const violations = [];
313
+ const duplicateGroups = this.findDuplicates(triples);
314
+ for (const group of duplicateGroups) {
315
+ violations.push({
316
+ type: 'duplicate-triple',
317
+ message: `Found ${group.length} duplicate triples`,
318
+ triples: group,
319
+ severity: 'warning',
320
+ });
321
+ }
322
+ return violations;
323
+ }
324
+ checkCircularDependencies(triples) {
325
+ const violations = [];
326
+ // Check for subClassOf cycles
327
+ const subClassTriples = triples.filter(t => t.predicate === 'http://www.w3.org/2000/01/rdf-schema#subClassOf');
328
+ const cycles = this.findCycles(subClassTriples);
329
+ for (const cycle of cycles) {
330
+ violations.push({
331
+ type: 'circular-dependency',
332
+ message: `Circular subClassOf dependency: ${cycle.map(t => t.subject).join(' -> ')}`,
333
+ triples: cycle,
334
+ severity: 'error',
335
+ });
336
+ }
337
+ return violations;
338
+ }
339
+ findCycles(triples) {
340
+ const cycles = [];
341
+ const graph = new Map();
342
+ // Build adjacency list
343
+ for (const triple of triples) {
344
+ const edges = graph.get(triple.subject) ?? [];
345
+ edges.push(triple.object);
346
+ graph.set(triple.subject, edges);
347
+ }
348
+ // DFS to find cycles
349
+ const visited = new Set();
350
+ const recursionStack = new Set();
351
+ const path = [];
352
+ const dfs = (node) => {
353
+ visited.add(node);
354
+ recursionStack.add(node);
355
+ path.push(node);
356
+ const neighbors = graph.get(node) ?? [];
357
+ for (const neighbor of neighbors) {
358
+ if (!visited.has(neighbor)) {
359
+ if (dfs(neighbor))
360
+ return true;
361
+ }
362
+ else if (recursionStack.has(neighbor)) {
363
+ // Found cycle
364
+ const cycleStart = path.indexOf(neighbor);
365
+ const cyclePath = path.slice(cycleStart);
366
+ cyclePath.push(neighbor);
367
+ const cycleTriples = [];
368
+ for (let i = 0; i < cyclePath.length - 1; i++) {
369
+ const triple = triples.find(t => t.subject === cyclePath[i] && t.object === cyclePath[i + 1]);
370
+ if (triple)
371
+ cycleTriples.push(triple);
372
+ }
373
+ if (cycleTriples.length > 0) {
374
+ cycles.push(cycleTriples);
375
+ }
376
+ return true;
377
+ }
378
+ }
379
+ path.pop();
380
+ recursionStack.delete(node);
381
+ return false;
382
+ };
383
+ for (const node of graph.keys()) {
384
+ if (!visited.has(node)) {
385
+ dfs(node);
386
+ }
387
+ }
388
+ return cycles;
389
+ }
390
+ findFunctionalProperties(triples) {
391
+ return new Set(triples
392
+ .filter(t => t.predicate === RDF.type && t.object === OWL.FunctionalProperty)
393
+ .map(t => t.subject));
394
+ }
395
+ findInverseFunctionalProperties(triples) {
396
+ return new Set(triples
397
+ .filter(t => t.predicate === RDF.type && t.object === OWL.InverseFunctionalProperty)
398
+ .map(t => t.subject));
399
+ }
400
+ findAsymmetricProperties(triples) {
401
+ return new Set(triples
402
+ .filter(t => t.predicate === RDF.type && t.object === OWL.AsymmetricProperty)
403
+ .map(t => t.subject));
404
+ }
405
+ findIrreflexiveProperties(triples) {
406
+ return new Set(triples
407
+ .filter(t => t.predicate === RDF.type && t.object === OWL.IrreflexiveProperty)
408
+ .map(t => t.subject));
409
+ }
410
+ isValidUri(uri) {
411
+ // Accept URIs and literals
412
+ if (uri.startsWith('http://') || uri.startsWith('https://')) {
413
+ return true;
414
+ }
415
+ // Accept blank nodes
416
+ if (uri.startsWith('_:')) {
417
+ return true;
418
+ }
419
+ // Accept prefixed names (simple check)
420
+ if (/^[a-zA-Z][a-zA-Z0-9]*:[a-zA-Z_][a-zA-Z0-9_-]*$/.test(uri)) {
421
+ return true;
422
+ }
423
+ // Accept literals (anything else)
424
+ return true;
425
+ }
426
+ areSemanticallyEquivalent(t1, t2) {
427
+ // Exact match
428
+ if (t1.subject === t2.subject && t1.predicate === t2.predicate && t1.object === t2.object) {
429
+ return true;
430
+ }
431
+ // Check for equivalent URIs (with/without trailing slash, http vs https)
432
+ const normalizeUri = (uri) => {
433
+ return uri
434
+ .replace(/\/$/, '')
435
+ .replace(/^https:/, 'http:');
436
+ };
437
+ return (normalizeUri(t1.subject) === normalizeUri(t2.subject) &&
438
+ normalizeUri(t1.predicate) === normalizeUri(t2.predicate) &&
439
+ normalizeUri(t1.object) === normalizeUri(t2.object));
440
+ }
441
+ generateSuggestions(violations) {
442
+ return violations.map(v => {
443
+ switch (v.type) {
444
+ case 'disjoint-class-membership':
445
+ return {
446
+ violation: v,
447
+ suggestion: 'Remove one of the class memberships or reconsider disjointness declaration',
448
+ autoFixable: false,
449
+ };
450
+ case 'functional-property-violation':
451
+ return {
452
+ violation: v,
453
+ suggestion: 'Keep only one value for the functional property',
454
+ autoFixable: true,
455
+ };
456
+ case 'inverse-functional-violation':
457
+ return {
458
+ violation: v,
459
+ suggestion: 'Ensure each value uniquely identifies at most one subject',
460
+ autoFixable: false,
461
+ };
462
+ case 'asymmetric-violation':
463
+ return {
464
+ violation: v,
465
+ suggestion: 'Remove one direction of the relationship',
466
+ autoFixable: true,
467
+ };
468
+ case 'irreflexive-violation':
469
+ return {
470
+ violation: v,
471
+ suggestion: 'Remove the self-referencing triple',
472
+ autoFixable: true,
473
+ };
474
+ case 'duplicate-triple':
475
+ return {
476
+ violation: v,
477
+ suggestion: 'Remove duplicate triples',
478
+ autoFixable: true,
479
+ };
480
+ case 'circular-dependency':
481
+ return {
482
+ violation: v,
483
+ suggestion: 'Break the circular dependency by removing one edge',
484
+ autoFixable: false,
485
+ };
486
+ default:
487
+ return {
488
+ violation: v,
489
+ suggestion: 'Review and fix the constraint violation',
490
+ autoFixable: false,
491
+ };
492
+ }
493
+ });
494
+ }
495
+ }
496
+ //# sourceMappingURL=consistency-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consistency-validator.js","sourceRoot":"","sources":["../../src/validation/consistency-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Validation module exports
3
+ * @traceability REQ-ONTO-001-F003
4
+ */
5
+ export { ConsistencyValidator, type TripleStore, type ConsistencyValidatorConfig } from './consistency-validator.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,KAAK,WAAW,EAAE,KAAK,0BAA0B,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Validation module exports
3
+ * @traceability REQ-ONTO-001-F003
4
+ */
5
+ export { ConsistencyValidator } from './consistency-validator.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAqD,MAAM,4BAA4B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nahisaho/musubix-ontology-mcp",
3
- "version": "1.0.0",
3
+ "version": "1.5.2",
4
4
  "description": "MUSUBIX Ontology Reasoning MCP - OWL 2 RL inference and SPARQL query",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",