@nahisaho/katashiro-knowledge 0.1.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/graph/index.d.ts +7 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +7 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/knowledge-graph.d.ts +164 -0
- package/dist/graph/knowledge-graph.d.ts.map +1 -0
- package/dist/graph/knowledge-graph.js +298 -0
- package/dist/graph/knowledge-graph.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces.d.ts +20 -0
- package/dist/interfaces.d.ts.map +1 -0
- package/dist/interfaces.js +5 -0
- package/dist/interfaces.js.map +1 -0
- package/dist/persistence/graph-persistence.d.ts +102 -0
- package/dist/persistence/graph-persistence.d.ts.map +1 -0
- package/dist/persistence/graph-persistence.js +222 -0
- package/dist/persistence/graph-persistence.js.map +1 -0
- package/dist/persistence/index.d.ts +7 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +7 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/query/graph-query.d.ts +103 -0
- package/dist/query/graph-query.d.ts.map +1 -0
- package/dist/query/graph-query.js +237 -0
- package/dist/query/graph-query.js.map +1 -0
- package/dist/query/index.d.ts +7 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +7 -0
- package/dist/query/index.js.map +1 -0
- package/dist/sync/graph-sync.d.ts +132 -0
- package/dist/sync/graph-sync.d.ts.map +1 -0
- package/dist/sync/graph-sync.js +338 -0
- package/dist/sync/graph-sync.js.map +1 -0
- package/dist/sync/index.d.ts +7 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +7 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/types.d.ts +43 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/visualization/graph-visualization.d.ts +139 -0
- package/dist/visualization/graph-visualization.d.ts.map +1 -0
- package/dist/visualization/graph-visualization.js +259 -0
- package/dist/visualization/graph-visualization.js.map +1 -0
- package/dist/visualization/index.d.ts +7 -0
- package/dist/visualization/index.d.ts.map +1 -0
- package/dist/visualization/index.js +7 -0
- package/dist/visualization/index.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,KAAK,SAAS,EACd,KAAK,SAAS,GACf,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,GAGf,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KnowledgeGraph - In-memory knowledge graph
|
|
3
|
+
*
|
|
4
|
+
* Provides graph data structure for entities and relationships
|
|
5
|
+
*
|
|
6
|
+
* @module @nahisaho/katashiro-knowledge
|
|
7
|
+
* @task TSK-040
|
|
8
|
+
*/
|
|
9
|
+
import { type Result } from '@nahisaho/katashiro-core';
|
|
10
|
+
/**
|
|
11
|
+
* Graph node representing an entity
|
|
12
|
+
*/
|
|
13
|
+
export interface GraphNode {
|
|
14
|
+
readonly id: string;
|
|
15
|
+
readonly type: string;
|
|
16
|
+
readonly label: string;
|
|
17
|
+
readonly properties: Record<string, unknown>;
|
|
18
|
+
readonly createdAt: string;
|
|
19
|
+
readonly updatedAt?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Graph edge representing a relationship
|
|
23
|
+
*/
|
|
24
|
+
export interface GraphEdge {
|
|
25
|
+
readonly id: string;
|
|
26
|
+
readonly source: string;
|
|
27
|
+
readonly target: string;
|
|
28
|
+
readonly predicate: string;
|
|
29
|
+
readonly weight: number;
|
|
30
|
+
readonly properties?: Record<string, unknown>;
|
|
31
|
+
readonly createdAt: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* KnowledgeGraph
|
|
35
|
+
*
|
|
36
|
+
* In-memory graph for storing entities and relationships
|
|
37
|
+
*/
|
|
38
|
+
export declare class KnowledgeGraph {
|
|
39
|
+
private nodes;
|
|
40
|
+
private edges;
|
|
41
|
+
private adjacencyList;
|
|
42
|
+
private reverseAdjacencyList;
|
|
43
|
+
/**
|
|
44
|
+
* Add a node to the graph
|
|
45
|
+
*
|
|
46
|
+
* @param node - Node to add
|
|
47
|
+
* @returns Result indicating success or failure
|
|
48
|
+
*/
|
|
49
|
+
addNode(node: GraphNode): Result<void, Error>;
|
|
50
|
+
/**
|
|
51
|
+
* Add an edge to the graph
|
|
52
|
+
*
|
|
53
|
+
* @param edge - Edge to add
|
|
54
|
+
* @returns Result indicating success or failure
|
|
55
|
+
*/
|
|
56
|
+
addEdge(edge: GraphEdge): Result<void, Error>;
|
|
57
|
+
/**
|
|
58
|
+
* Get a node by ID
|
|
59
|
+
*
|
|
60
|
+
* @param id - Node ID
|
|
61
|
+
* @returns The node or null if not found
|
|
62
|
+
*/
|
|
63
|
+
getNode(id: string): Result<GraphNode | null, Error>;
|
|
64
|
+
/**
|
|
65
|
+
* Get an edge by ID
|
|
66
|
+
*
|
|
67
|
+
* @param id - Edge ID
|
|
68
|
+
* @returns The edge or null if not found
|
|
69
|
+
*/
|
|
70
|
+
getEdge(id: string): Result<GraphEdge | null, Error>;
|
|
71
|
+
/**
|
|
72
|
+
* Get all neighbors of a node (outgoing edges)
|
|
73
|
+
*
|
|
74
|
+
* @param nodeId - Node ID
|
|
75
|
+
* @returns Array of neighboring nodes
|
|
76
|
+
*/
|
|
77
|
+
getNeighbors(nodeId: string): Result<GraphNode[], Error>;
|
|
78
|
+
/**
|
|
79
|
+
* Get incoming neighbors of a node
|
|
80
|
+
*
|
|
81
|
+
* @param nodeId - Node ID
|
|
82
|
+
* @returns Array of nodes with edges pointing to this node
|
|
83
|
+
*/
|
|
84
|
+
getIncomingNeighbors(nodeId: string): Result<GraphNode[], Error>;
|
|
85
|
+
/**
|
|
86
|
+
* Get all edges from a node
|
|
87
|
+
*
|
|
88
|
+
* @param nodeId - Node ID
|
|
89
|
+
* @returns Array of edges from this node
|
|
90
|
+
*/
|
|
91
|
+
getOutgoingEdges(nodeId: string): Result<GraphEdge[], Error>;
|
|
92
|
+
/**
|
|
93
|
+
* Remove a node and all its edges
|
|
94
|
+
*
|
|
95
|
+
* @param id - Node ID
|
|
96
|
+
* @returns Result indicating success or failure
|
|
97
|
+
*/
|
|
98
|
+
removeNode(id: string): Result<void, Error>;
|
|
99
|
+
/**
|
|
100
|
+
* Remove an edge
|
|
101
|
+
*
|
|
102
|
+
* @param id - Edge ID
|
|
103
|
+
* @returns Result indicating success or failure
|
|
104
|
+
*/
|
|
105
|
+
removeEdge(id: string): Result<void, Error>;
|
|
106
|
+
/**
|
|
107
|
+
* Find a path between two nodes using BFS
|
|
108
|
+
*
|
|
109
|
+
* @param startId - Start node ID
|
|
110
|
+
* @param endId - End node ID
|
|
111
|
+
* @returns Array of node IDs representing the path, or null if no path
|
|
112
|
+
*/
|
|
113
|
+
findPath(startId: string, endId: string): Result<string[] | null, Error>;
|
|
114
|
+
/**
|
|
115
|
+
* Get all nodes
|
|
116
|
+
*
|
|
117
|
+
* @returns Array of all nodes
|
|
118
|
+
*/
|
|
119
|
+
getAllNodes(): GraphNode[];
|
|
120
|
+
/**
|
|
121
|
+
* Get all edges
|
|
122
|
+
*
|
|
123
|
+
* @returns Array of all edges
|
|
124
|
+
*/
|
|
125
|
+
getAllEdges(): GraphEdge[];
|
|
126
|
+
/**
|
|
127
|
+
* Get node count
|
|
128
|
+
*
|
|
129
|
+
* @returns Number of nodes
|
|
130
|
+
*/
|
|
131
|
+
getNodeCount(): number;
|
|
132
|
+
/**
|
|
133
|
+
* Get edge count
|
|
134
|
+
*
|
|
135
|
+
* @returns Number of edges
|
|
136
|
+
*/
|
|
137
|
+
getEdgeCount(): number;
|
|
138
|
+
/**
|
|
139
|
+
* Clear all nodes and edges
|
|
140
|
+
*/
|
|
141
|
+
clear(): void;
|
|
142
|
+
/**
|
|
143
|
+
* Search nodes by label (partial match)
|
|
144
|
+
*
|
|
145
|
+
* @param query - Search query
|
|
146
|
+
* @returns Matching nodes
|
|
147
|
+
*/
|
|
148
|
+
searchByLabel(query: string): GraphNode[];
|
|
149
|
+
/**
|
|
150
|
+
* Get nodes by type
|
|
151
|
+
*
|
|
152
|
+
* @param type - Node type
|
|
153
|
+
* @returns Nodes of the specified type
|
|
154
|
+
*/
|
|
155
|
+
getNodesByType(type: string): GraphNode[];
|
|
156
|
+
/**
|
|
157
|
+
* Get edges by predicate
|
|
158
|
+
*
|
|
159
|
+
* @param predicate - Edge predicate
|
|
160
|
+
* @returns Edges with the specified predicate
|
|
161
|
+
*/
|
|
162
|
+
getEdgesByPredicate(predicate: string): GraphEdge[];
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=knowledge-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-graph.d.ts","sourceRoot":"","sources":["../../src/graph/knowledge-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KnowledgeGraph - In-memory knowledge graph
|
|
3
|
+
*
|
|
4
|
+
* Provides graph data structure for entities and relationships
|
|
5
|
+
*
|
|
6
|
+
* @module @nahisaho/katashiro-knowledge
|
|
7
|
+
* @task TSK-040
|
|
8
|
+
*/
|
|
9
|
+
import { ok, err } from '@nahisaho/katashiro-core';
|
|
10
|
+
/**
|
|
11
|
+
* KnowledgeGraph
|
|
12
|
+
*
|
|
13
|
+
* In-memory graph for storing entities and relationships
|
|
14
|
+
*/
|
|
15
|
+
export class KnowledgeGraph {
|
|
16
|
+
nodes = new Map();
|
|
17
|
+
edges = new Map();
|
|
18
|
+
adjacencyList = new Map();
|
|
19
|
+
reverseAdjacencyList = new Map();
|
|
20
|
+
/**
|
|
21
|
+
* Add a node to the graph
|
|
22
|
+
*
|
|
23
|
+
* @param node - Node to add
|
|
24
|
+
* @returns Result indicating success or failure
|
|
25
|
+
*/
|
|
26
|
+
addNode(node) {
|
|
27
|
+
if (this.nodes.has(node.id)) {
|
|
28
|
+
return err(new Error(`Node with ID ${node.id} already exists`));
|
|
29
|
+
}
|
|
30
|
+
this.nodes.set(node.id, node);
|
|
31
|
+
this.adjacencyList.set(node.id, new Set());
|
|
32
|
+
this.reverseAdjacencyList.set(node.id, new Set());
|
|
33
|
+
return ok(undefined);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Add an edge to the graph
|
|
37
|
+
*
|
|
38
|
+
* @param edge - Edge to add
|
|
39
|
+
* @returns Result indicating success or failure
|
|
40
|
+
*/
|
|
41
|
+
addEdge(edge) {
|
|
42
|
+
if (!this.nodes.has(edge.source)) {
|
|
43
|
+
return err(new Error(`Source node ${edge.source} does not exist`));
|
|
44
|
+
}
|
|
45
|
+
if (!this.nodes.has(edge.target)) {
|
|
46
|
+
return err(new Error(`Target node ${edge.target} does not exist`));
|
|
47
|
+
}
|
|
48
|
+
if (this.edges.has(edge.id)) {
|
|
49
|
+
return err(new Error(`Edge with ID ${edge.id} already exists`));
|
|
50
|
+
}
|
|
51
|
+
this.edges.set(edge.id, edge);
|
|
52
|
+
this.adjacencyList.get(edge.source)?.add(edge.target);
|
|
53
|
+
this.reverseAdjacencyList.get(edge.target)?.add(edge.source);
|
|
54
|
+
return ok(undefined);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get a node by ID
|
|
58
|
+
*
|
|
59
|
+
* @param id - Node ID
|
|
60
|
+
* @returns The node or null if not found
|
|
61
|
+
*/
|
|
62
|
+
getNode(id) {
|
|
63
|
+
const node = this.nodes.get(id);
|
|
64
|
+
return ok(node ?? null);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get an edge by ID
|
|
68
|
+
*
|
|
69
|
+
* @param id - Edge ID
|
|
70
|
+
* @returns The edge or null if not found
|
|
71
|
+
*/
|
|
72
|
+
getEdge(id) {
|
|
73
|
+
const edge = this.edges.get(id);
|
|
74
|
+
return ok(edge ?? null);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get all neighbors of a node (outgoing edges)
|
|
78
|
+
*
|
|
79
|
+
* @param nodeId - Node ID
|
|
80
|
+
* @returns Array of neighboring nodes
|
|
81
|
+
*/
|
|
82
|
+
getNeighbors(nodeId) {
|
|
83
|
+
const neighborIds = this.adjacencyList.get(nodeId);
|
|
84
|
+
if (!neighborIds) {
|
|
85
|
+
return err(new Error(`Node ${nodeId} does not exist`));
|
|
86
|
+
}
|
|
87
|
+
const neighbors = [];
|
|
88
|
+
for (const id of neighborIds) {
|
|
89
|
+
const node = this.nodes.get(id);
|
|
90
|
+
if (node) {
|
|
91
|
+
neighbors.push(node);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return ok(neighbors);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get incoming neighbors of a node
|
|
98
|
+
*
|
|
99
|
+
* @param nodeId - Node ID
|
|
100
|
+
* @returns Array of nodes with edges pointing to this node
|
|
101
|
+
*/
|
|
102
|
+
getIncomingNeighbors(nodeId) {
|
|
103
|
+
const neighborIds = this.reverseAdjacencyList.get(nodeId);
|
|
104
|
+
if (!neighborIds) {
|
|
105
|
+
return err(new Error(`Node ${nodeId} does not exist`));
|
|
106
|
+
}
|
|
107
|
+
const neighbors = [];
|
|
108
|
+
for (const id of neighborIds) {
|
|
109
|
+
const node = this.nodes.get(id);
|
|
110
|
+
if (node) {
|
|
111
|
+
neighbors.push(node);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return ok(neighbors);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get all edges from a node
|
|
118
|
+
*
|
|
119
|
+
* @param nodeId - Node ID
|
|
120
|
+
* @returns Array of edges from this node
|
|
121
|
+
*/
|
|
122
|
+
getOutgoingEdges(nodeId) {
|
|
123
|
+
if (!this.nodes.has(nodeId)) {
|
|
124
|
+
return err(new Error(`Node ${nodeId} does not exist`));
|
|
125
|
+
}
|
|
126
|
+
const edges = [];
|
|
127
|
+
for (const edge of this.edges.values()) {
|
|
128
|
+
if (edge.source === nodeId) {
|
|
129
|
+
edges.push(edge);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return ok(edges);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Remove a node and all its edges
|
|
136
|
+
*
|
|
137
|
+
* @param id - Node ID
|
|
138
|
+
* @returns Result indicating success or failure
|
|
139
|
+
*/
|
|
140
|
+
removeNode(id) {
|
|
141
|
+
if (!this.nodes.has(id)) {
|
|
142
|
+
return err(new Error(`Node ${id} does not exist`));
|
|
143
|
+
}
|
|
144
|
+
// Remove all edges involving this node
|
|
145
|
+
const edgesToRemove = [];
|
|
146
|
+
for (const [edgeId, edge] of this.edges) {
|
|
147
|
+
if (edge.source === id || edge.target === id) {
|
|
148
|
+
edgesToRemove.push(edgeId);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
for (const edgeId of edgesToRemove) {
|
|
152
|
+
this.edges.delete(edgeId);
|
|
153
|
+
}
|
|
154
|
+
// Update adjacency lists
|
|
155
|
+
for (const neighbors of this.adjacencyList.values()) {
|
|
156
|
+
neighbors.delete(id);
|
|
157
|
+
}
|
|
158
|
+
for (const neighbors of this.reverseAdjacencyList.values()) {
|
|
159
|
+
neighbors.delete(id);
|
|
160
|
+
}
|
|
161
|
+
// Remove the node itself
|
|
162
|
+
this.nodes.delete(id);
|
|
163
|
+
this.adjacencyList.delete(id);
|
|
164
|
+
this.reverseAdjacencyList.delete(id);
|
|
165
|
+
return ok(undefined);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Remove an edge
|
|
169
|
+
*
|
|
170
|
+
* @param id - Edge ID
|
|
171
|
+
* @returns Result indicating success or failure
|
|
172
|
+
*/
|
|
173
|
+
removeEdge(id) {
|
|
174
|
+
const edge = this.edges.get(id);
|
|
175
|
+
if (!edge) {
|
|
176
|
+
return err(new Error(`Edge ${id} does not exist`));
|
|
177
|
+
}
|
|
178
|
+
this.adjacencyList.get(edge.source)?.delete(edge.target);
|
|
179
|
+
this.reverseAdjacencyList.get(edge.target)?.delete(edge.source);
|
|
180
|
+
this.edges.delete(id);
|
|
181
|
+
return ok(undefined);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Find a path between two nodes using BFS
|
|
185
|
+
*
|
|
186
|
+
* @param startId - Start node ID
|
|
187
|
+
* @param endId - End node ID
|
|
188
|
+
* @returns Array of node IDs representing the path, or null if no path
|
|
189
|
+
*/
|
|
190
|
+
findPath(startId, endId) {
|
|
191
|
+
if (!this.nodes.has(startId)) {
|
|
192
|
+
return err(new Error(`Start node ${startId} does not exist`));
|
|
193
|
+
}
|
|
194
|
+
if (!this.nodes.has(endId)) {
|
|
195
|
+
return err(new Error(`End node ${endId} does not exist`));
|
|
196
|
+
}
|
|
197
|
+
if (startId === endId) {
|
|
198
|
+
return ok([startId]);
|
|
199
|
+
}
|
|
200
|
+
// BFS
|
|
201
|
+
const visited = new Set();
|
|
202
|
+
const queue = [
|
|
203
|
+
{ id: startId, path: [startId] },
|
|
204
|
+
];
|
|
205
|
+
while (queue.length > 0) {
|
|
206
|
+
const current = queue.shift();
|
|
207
|
+
if (current.id === endId) {
|
|
208
|
+
return ok(current.path);
|
|
209
|
+
}
|
|
210
|
+
if (visited.has(current.id)) {
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
visited.add(current.id);
|
|
214
|
+
const neighbors = this.adjacencyList.get(current.id);
|
|
215
|
+
if (neighbors) {
|
|
216
|
+
for (const neighborId of neighbors) {
|
|
217
|
+
if (!visited.has(neighborId)) {
|
|
218
|
+
queue.push({
|
|
219
|
+
id: neighborId,
|
|
220
|
+
path: [...current.path, neighborId],
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return ok(null);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Get all nodes
|
|
230
|
+
*
|
|
231
|
+
* @returns Array of all nodes
|
|
232
|
+
*/
|
|
233
|
+
getAllNodes() {
|
|
234
|
+
return Array.from(this.nodes.values());
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Get all edges
|
|
238
|
+
*
|
|
239
|
+
* @returns Array of all edges
|
|
240
|
+
*/
|
|
241
|
+
getAllEdges() {
|
|
242
|
+
return Array.from(this.edges.values());
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Get node count
|
|
246
|
+
*
|
|
247
|
+
* @returns Number of nodes
|
|
248
|
+
*/
|
|
249
|
+
getNodeCount() {
|
|
250
|
+
return this.nodes.size;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Get edge count
|
|
254
|
+
*
|
|
255
|
+
* @returns Number of edges
|
|
256
|
+
*/
|
|
257
|
+
getEdgeCount() {
|
|
258
|
+
return this.edges.size;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Clear all nodes and edges
|
|
262
|
+
*/
|
|
263
|
+
clear() {
|
|
264
|
+
this.nodes.clear();
|
|
265
|
+
this.edges.clear();
|
|
266
|
+
this.adjacencyList.clear();
|
|
267
|
+
this.reverseAdjacencyList.clear();
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Search nodes by label (partial match)
|
|
271
|
+
*
|
|
272
|
+
* @param query - Search query
|
|
273
|
+
* @returns Matching nodes
|
|
274
|
+
*/
|
|
275
|
+
searchByLabel(query) {
|
|
276
|
+
const lowerQuery = query.toLowerCase();
|
|
277
|
+
return Array.from(this.nodes.values()).filter((node) => node.label.toLowerCase().includes(lowerQuery));
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Get nodes by type
|
|
281
|
+
*
|
|
282
|
+
* @param type - Node type
|
|
283
|
+
* @returns Nodes of the specified type
|
|
284
|
+
*/
|
|
285
|
+
getNodesByType(type) {
|
|
286
|
+
return Array.from(this.nodes.values()).filter((node) => node.type === type);
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Get edges by predicate
|
|
290
|
+
*
|
|
291
|
+
* @param predicate - Edge predicate
|
|
292
|
+
* @returns Edges with the specified predicate
|
|
293
|
+
*/
|
|
294
|
+
getEdgesByPredicate(predicate) {
|
|
295
|
+
return Array.from(this.edges.values()).filter((edge) => edge.predicate === predicate);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=knowledge-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-graph.js","sourceRoot":"","sources":["../../src/graph/knowledge-graph.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nahisaho/katashiro-knowledge
|
|
3
|
+
* 知識管理・LLMパッケージ
|
|
4
|
+
*
|
|
5
|
+
* @requirement REQ-NFR-005, REQ-COLLECT-007, REQ-ANALYZE-007
|
|
6
|
+
* @design DES-KATASHIRO-001 §2.2 Knowledge Container
|
|
7
|
+
*/
|
|
8
|
+
export type { ILLMProvider, ISourceTracker, IYATAClient, } from './interfaces.js';
|
|
9
|
+
export type { LLMConfig, LLMResponse, LLMProvider, TrackedSource, KnowledgeEntity, } from './types.js';
|
|
10
|
+
export { KnowledgeGraph, type GraphNode, type GraphEdge, } from './graph/index.js';
|
|
11
|
+
export { GraphPersistence, type SerializedGraph, type GraphMetadata, type GraphDiff, } from './persistence/index.js';
|
|
12
|
+
export { GraphQuery, type QueryFilter, type GraphQueryDef, type QueryResult, } from './query/index.js';
|
|
13
|
+
export { GraphVisualization, type VisualizationConfig, type D3GraphData, type CytoscapeData, type GraphStats, } from './visualization/index.js';
|
|
14
|
+
export { GraphSync, type SyncOptions, type SyncResult, type ComparisonResult, type Conflict, } from './sync/index.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EACV,YAAY,EACZ,cAAc,EACd,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,KAAK,SAAS,EACd,KAAK,SAAS,GACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,SAAS,GACf,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,QAAQ,GACd,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nahisaho/katashiro-knowledge
|
|
3
|
+
* 知識管理・LLMパッケージ
|
|
4
|
+
*
|
|
5
|
+
* @requirement REQ-NFR-005, REQ-COLLECT-007, REQ-ANALYZE-007
|
|
6
|
+
* @design DES-KATASHIRO-001 §2.2 Knowledge Container
|
|
7
|
+
*/
|
|
8
|
+
// Graph module
|
|
9
|
+
export { KnowledgeGraph, } from './graph/index.js';
|
|
10
|
+
// Persistence module
|
|
11
|
+
export { GraphPersistence, } from './persistence/index.js';
|
|
12
|
+
// Query module
|
|
13
|
+
export { GraphQuery, } from './query/index.js';
|
|
14
|
+
// Visualization module
|
|
15
|
+
export { GraphVisualization, } from './visualization/index.js';
|
|
16
|
+
// Sync module
|
|
17
|
+
export { GraphSync, } from './sync/index.js';
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,eAAe;AACf,OAAO,EACL,cAAc,GAGf,MAAM,kBAAkB,CAAC;AAE1B,qBAAqB;AACrB,OAAO,EACL,gBAAgB,GAIjB,MAAM,wBAAwB,CAAC;AAEhC,eAAe;AACf,OAAO,EACL,UAAU,GAIX,MAAM,kBAAkB,CAAC;AAE1B,uBAAuB;AACvB,OAAO,EACL,kBAAkB,GAKnB,MAAM,0BAA0B,CAAC;AAElC,cAAc;AACd,OAAO,EACL,SAAS,GAKV,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Knowledgeインターフェース定義
|
|
3
|
+
*/
|
|
4
|
+
import type { Result, Source, ID } from '@nahisaho/katashiro-core';
|
|
5
|
+
import type { LLMConfig, LLMResponse, TrackedSource, KnowledgeEntity } from './types.js';
|
|
6
|
+
export interface ILLMProvider {
|
|
7
|
+
complete(prompt: string, config?: LLMConfig): Promise<Result<LLMResponse, Error>>;
|
|
8
|
+
stream(prompt: string, config?: LLMConfig): AsyncIterable<string>;
|
|
9
|
+
}
|
|
10
|
+
export interface ISourceTracker {
|
|
11
|
+
track(source: Source): Promise<Result<TrackedSource, Error>>;
|
|
12
|
+
get(id: ID): Promise<Result<TrackedSource | null, Error>>;
|
|
13
|
+
list(): Promise<Result<TrackedSource[], Error>>;
|
|
14
|
+
}
|
|
15
|
+
export interface IYATAClient {
|
|
16
|
+
store(entity: KnowledgeEntity): Promise<Result<void, Error>>;
|
|
17
|
+
query(sparql: string): Promise<Result<unknown[], Error>>;
|
|
18
|
+
infer(subject: string, predicate: string): Promise<Result<string[], Error>>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEzF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAClF,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7D,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7D,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IACzD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;CAC7E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|