@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 +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/store/n3-store.d.ts +34 -4
- package/dist/store/n3-store.d.ts.map +1 -1
- package/dist/store/n3-store.js +74 -2
- package/dist/store/n3-store.js.map +1 -1
- package/dist/store/ontology-store.d.ts +30 -5
- package/dist/store/ontology-store.d.ts.map +1 -1
- package/dist/store/ontology-store.js +73 -4
- package/dist/store/ontology-store.js.map +1 -1
- package/dist/types.d.ts +24 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/validation/consistency-validator.d.ts +81 -0
- package/dist/validation/consistency-validator.d.ts.map +1 -0
- package/dist/validation/consistency-validator.js +496 -0
- package/dist/validation/consistency-validator.js.map +1 -0
- package/dist/validation/index.d.ts +6 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +6 -0
- package/dist/validation/index.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/store/n3-store.d.ts
CHANGED
|
@@ -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
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"n3-store.d.ts","sourceRoot":"","sources":["../../src/store/n3-store.ts"],"names":[],"mappings":"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"}
|
package/dist/store/n3-store.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
49
|
+
* Add a triple with validation and return detailed result
|
|
44
50
|
*/
|
|
45
|
-
|
|
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;
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
-
|
|
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":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
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
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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;
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAqD,MAAM,4BAA4B,CAAC"}
|