@nahisaho/musubix-ontology-mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/inference/index.d.ts +6 -0
- package/dist/inference/index.d.ts.map +1 -0
- package/dist/inference/index.js +6 -0
- package/dist/inference/index.js.map +1 -0
- package/dist/inference/rule-engine.d.ts +149 -0
- package/dist/inference/rule-engine.d.ts.map +1 -0
- package/dist/inference/rule-engine.js +478 -0
- package/dist/inference/rule-engine.js.map +1 -0
- package/dist/integration/index.d.ts +6 -0
- package/dist/integration/index.d.ts.map +1 -0
- package/dist/integration/index.js +6 -0
- package/dist/integration/index.js.map +1 -0
- package/dist/integration/pattern-bridge.d.ts +146 -0
- package/dist/integration/pattern-bridge.d.ts.map +1 -0
- package/dist/integration/pattern-bridge.js +517 -0
- package/dist/integration/pattern-bridge.js.map +1 -0
- package/dist/privacy/index.d.ts +6 -0
- package/dist/privacy/index.d.ts.map +1 -0
- package/dist/privacy/index.js +6 -0
- package/dist/privacy/index.js.map +1 -0
- package/dist/privacy/privacy-guard.d.ts +43 -0
- package/dist/privacy/privacy-guard.d.ts.map +1 -0
- package/dist/privacy/privacy-guard.js +59 -0
- package/dist/privacy/privacy-guard.js.map +1 -0
- package/dist/store/index.d.ts +7 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +7 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/n3-store.d.ts +115 -0
- package/dist/store/n3-store.d.ts.map +1 -0
- package/dist/store/n3-store.js +344 -0
- package/dist/store/n3-store.js.map +1 -0
- package/dist/store/ontology-store.d.ts +59 -0
- package/dist/store/ontology-store.d.ts.map +1 -0
- package/dist/store/ontology-store.js +135 -0
- package/dist/store/ontology-store.js.map +1 -0
- package/dist/types.d.ts +81 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Ontology store with local persistence
|
|
3
|
+
* @traceability TSK-ONTO-001, REQ-ONTO-001-F001
|
|
4
|
+
*/
|
|
5
|
+
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
6
|
+
import { dirname } from 'node:path';
|
|
7
|
+
/**
|
|
8
|
+
* Ontology store with local JSON persistence
|
|
9
|
+
*
|
|
10
|
+
* @description
|
|
11
|
+
* Manages ontology storage locally (no external communication).
|
|
12
|
+
* Supports CRUD operations on ontologies and triples.
|
|
13
|
+
*/
|
|
14
|
+
export class OntologyStore {
|
|
15
|
+
ontologies = new Map();
|
|
16
|
+
config;
|
|
17
|
+
dirty = false;
|
|
18
|
+
constructor(config = {}) {
|
|
19
|
+
this.config = {
|
|
20
|
+
storagePath: config.storagePath ?? './storage/ontology/store.json',
|
|
21
|
+
enableInference: config.enableInference ?? true,
|
|
22
|
+
maxTriples: config.maxTriples ?? 100000,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Load store from disk
|
|
27
|
+
*/
|
|
28
|
+
async load() {
|
|
29
|
+
try {
|
|
30
|
+
const data = await readFile(this.config.storagePath, 'utf-8');
|
|
31
|
+
const parsed = JSON.parse(data);
|
|
32
|
+
this.ontologies.clear();
|
|
33
|
+
for (const onto of parsed.ontologies) {
|
|
34
|
+
this.ontologies.set(onto.id, onto);
|
|
35
|
+
}
|
|
36
|
+
this.dirty = false;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// File doesn't exist yet - start with empty store
|
|
40
|
+
this.ontologies.clear();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Save store to disk
|
|
45
|
+
*/
|
|
46
|
+
async save() {
|
|
47
|
+
if (!this.dirty)
|
|
48
|
+
return;
|
|
49
|
+
const dir = dirname(this.config.storagePath);
|
|
50
|
+
await mkdir(dir, { recursive: true });
|
|
51
|
+
const data = {
|
|
52
|
+
version: '1.0.0',
|
|
53
|
+
updatedAt: new Date().toISOString(),
|
|
54
|
+
ontologies: Array.from(this.ontologies.values()),
|
|
55
|
+
};
|
|
56
|
+
await writeFile(this.config.storagePath, JSON.stringify(data, null, 2), 'utf-8');
|
|
57
|
+
this.dirty = false;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create new ontology
|
|
61
|
+
*/
|
|
62
|
+
create(id, namespace, prefixes = {}) {
|
|
63
|
+
const now = new Date().toISOString();
|
|
64
|
+
const ontology = {
|
|
65
|
+
id,
|
|
66
|
+
namespace,
|
|
67
|
+
prefixes,
|
|
68
|
+
triples: [],
|
|
69
|
+
createdAt: now,
|
|
70
|
+
updatedAt: now,
|
|
71
|
+
};
|
|
72
|
+
this.ontologies.set(id, ontology);
|
|
73
|
+
this.dirty = true;
|
|
74
|
+
return ontology;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get ontology by ID
|
|
78
|
+
*/
|
|
79
|
+
get(id) {
|
|
80
|
+
return this.ontologies.get(id);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Delete ontology
|
|
84
|
+
*/
|
|
85
|
+
delete(id) {
|
|
86
|
+
const deleted = this.ontologies.delete(id);
|
|
87
|
+
if (deleted) {
|
|
88
|
+
this.dirty = true;
|
|
89
|
+
}
|
|
90
|
+
return deleted;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Add triple to ontology
|
|
94
|
+
*/
|
|
95
|
+
addTriple(ontologyId, triple) {
|
|
96
|
+
const ontology = this.ontologies.get(ontologyId);
|
|
97
|
+
if (!ontology)
|
|
98
|
+
return false;
|
|
99
|
+
const totalTriples = Array.from(this.ontologies.values())
|
|
100
|
+
.reduce((sum, o) => sum + o.triples.length, 0);
|
|
101
|
+
if (totalTriples >= this.config.maxTriples) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
ontology.triples.push(triple);
|
|
105
|
+
ontology.updatedAt = new Date().toISOString();
|
|
106
|
+
this.dirty = true;
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get all triples from ontology
|
|
111
|
+
*/
|
|
112
|
+
getTriples(ontologyId) {
|
|
113
|
+
return this.ontologies.get(ontologyId)?.triples ?? [];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* List all ontologies
|
|
117
|
+
*/
|
|
118
|
+
list() {
|
|
119
|
+
return Array.from(this.ontologies.values());
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get total triple count
|
|
123
|
+
*/
|
|
124
|
+
get tripleCount() {
|
|
125
|
+
return Array.from(this.ontologies.values())
|
|
126
|
+
.reduce((sum, o) => sum + o.triples.length, 0);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get ontology count
|
|
130
|
+
*/
|
|
131
|
+
get size() {
|
|
132
|
+
return this.ontologies.size;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=ontology-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Ontology MCP type definitions
|
|
3
|
+
* @traceability REQ-ONTO-001
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* RDF Triple
|
|
7
|
+
*/
|
|
8
|
+
export interface Triple {
|
|
9
|
+
subject: string;
|
|
10
|
+
predicate: string;
|
|
11
|
+
object: string;
|
|
12
|
+
graph?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Ontology definition
|
|
16
|
+
*/
|
|
17
|
+
export interface Ontology {
|
|
18
|
+
id: string;
|
|
19
|
+
namespace: string;
|
|
20
|
+
prefixes: Record<string, string>;
|
|
21
|
+
triples: Triple[];
|
|
22
|
+
createdAt: string;
|
|
23
|
+
updatedAt: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Ontology store configuration
|
|
27
|
+
*/
|
|
28
|
+
export interface OntologyStoreConfig {
|
|
29
|
+
storagePath: string;
|
|
30
|
+
enableInference: boolean;
|
|
31
|
+
maxTriples: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* SPARQL query result
|
|
35
|
+
*/
|
|
36
|
+
export interface QueryResult {
|
|
37
|
+
type: 'select' | 'ask' | 'construct';
|
|
38
|
+
bindings?: Record<string, string>[];
|
|
39
|
+
boolean?: boolean;
|
|
40
|
+
triples?: Triple[];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Inference result with proof tree
|
|
44
|
+
*/
|
|
45
|
+
export interface InferenceResult {
|
|
46
|
+
inferred: Triple[];
|
|
47
|
+
proofTree: ProofNode[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Proof tree node
|
|
51
|
+
*/
|
|
52
|
+
export interface ProofNode {
|
|
53
|
+
conclusion: Triple;
|
|
54
|
+
rule: string;
|
|
55
|
+
premises: ProofNode[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Consistency check result
|
|
59
|
+
*/
|
|
60
|
+
export interface ConsistencyResult {
|
|
61
|
+
consistent: boolean;
|
|
62
|
+
violations: ConsistencyViolation[];
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Consistency violation
|
|
66
|
+
*/
|
|
67
|
+
export interface ConsistencyViolation {
|
|
68
|
+
type: string;
|
|
69
|
+
message: string;
|
|
70
|
+
triples: Triple[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Query error with position
|
|
74
|
+
*/
|
|
75
|
+
export interface QueryError {
|
|
76
|
+
message: string;
|
|
77
|
+
line: number;
|
|
78
|
+
column: number;
|
|
79
|
+
suggestion?: string;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nahisaho/musubix-ontology-mcp",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MUSUBIX Ontology Reasoning MCP - OWL 2 RL inference and SPARQL query",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsc",
|
|
19
|
+
"test": "vitest run",
|
|
20
|
+
"clean": "rm -rf dist",
|
|
21
|
+
"typecheck": "tsc --noEmit"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"musubix",
|
|
25
|
+
"ontology",
|
|
26
|
+
"mcp",
|
|
27
|
+
"owl",
|
|
28
|
+
"sparql",
|
|
29
|
+
"reasoning"
|
|
30
|
+
],
|
|
31
|
+
"author": "nahisaho",
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "https://github.com/nahisaho/MUSUBIX.git",
|
|
36
|
+
"directory": "packages/ontology-mcp"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
40
|
+
"n3": "^1.26.0"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@types/n3": "^1.26.1",
|
|
44
|
+
"typescript": "^5.7.0",
|
|
45
|
+
"vitest": "^3.0.0"
|
|
46
|
+
},
|
|
47
|
+
"peerDependencies": {
|
|
48
|
+
"@nahisaho/musubix-core": "^1.2.0"
|
|
49
|
+
}
|
|
50
|
+
}
|