@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,259 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GraphVisualization - Graph export to various formats
|
|
3
|
+
*
|
|
4
|
+
* Generates visual representations of knowledge graphs
|
|
5
|
+
*
|
|
6
|
+
* @module @nahisaho/katashiro-knowledge
|
|
7
|
+
* @task TSK-043
|
|
8
|
+
*/
|
|
9
|
+
import { ok, err, isOk } from '@nahisaho/katashiro-core';
|
|
10
|
+
/**
|
|
11
|
+
* GraphVisualization
|
|
12
|
+
*
|
|
13
|
+
* Exports knowledge graphs to various visualization formats
|
|
14
|
+
*/
|
|
15
|
+
export class GraphVisualization {
|
|
16
|
+
graph;
|
|
17
|
+
constructor(graph) {
|
|
18
|
+
this.graph = graph;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Generate Mermaid diagram syntax
|
|
22
|
+
*
|
|
23
|
+
* @param config - Visualization configuration
|
|
24
|
+
* @returns Mermaid syntax string
|
|
25
|
+
*/
|
|
26
|
+
toMermaid(config = {}) {
|
|
27
|
+
try {
|
|
28
|
+
const direction = config.direction ?? 'TB';
|
|
29
|
+
const lines = [];
|
|
30
|
+
lines.push(`graph ${direction}`);
|
|
31
|
+
// Add nodes
|
|
32
|
+
const nodes = this.graph.getAllNodes();
|
|
33
|
+
for (const node of nodes) {
|
|
34
|
+
const shape = this.getMermaidShape(node.type, config);
|
|
35
|
+
lines.push(` ${this.sanitizeId(node.id)}${shape.open}"${this.escapeLabel(node.label)}"${shape.close}`);
|
|
36
|
+
}
|
|
37
|
+
// Add edges
|
|
38
|
+
const edges = this.graph.getAllEdges();
|
|
39
|
+
for (const edge of edges) {
|
|
40
|
+
const sourceId = this.sanitizeId(edge.source);
|
|
41
|
+
const targetId = this.sanitizeId(edge.target);
|
|
42
|
+
if (config.showEdgeLabels) {
|
|
43
|
+
lines.push(` ${sourceId} -->|${edge.predicate}| ${targetId}`);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
lines.push(` ${sourceId} --> ${targetId}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return ok(lines.join('\n'));
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
return err(error instanceof Error ? error : new Error(String(error)));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Generate DOT format (Graphviz)
|
|
57
|
+
*
|
|
58
|
+
* @param config - Visualization configuration
|
|
59
|
+
* @returns DOT syntax string
|
|
60
|
+
*/
|
|
61
|
+
toDOT(config = {}) {
|
|
62
|
+
try {
|
|
63
|
+
const lines = [];
|
|
64
|
+
lines.push('digraph G {');
|
|
65
|
+
lines.push(' rankdir=TB;');
|
|
66
|
+
lines.push(' node [fontname="Helvetica"];');
|
|
67
|
+
lines.push(' edge [fontname="Helvetica"];');
|
|
68
|
+
// Add nodes
|
|
69
|
+
const nodes = this.graph.getAllNodes();
|
|
70
|
+
for (const node of nodes) {
|
|
71
|
+
const shape = config.nodeShapes?.[node.type] ?? 'ellipse';
|
|
72
|
+
const color = config.nodeColors?.[node.type] ?? 'lightblue';
|
|
73
|
+
lines.push(` "${node.id}" [label="${this.escapeLabel(node.label)}" shape=${shape} fillcolor="${color}" style=filled];`);
|
|
74
|
+
}
|
|
75
|
+
// Add edges
|
|
76
|
+
const edges = this.graph.getAllEdges();
|
|
77
|
+
for (const edge of edges) {
|
|
78
|
+
const color = config.edgeColors?.[edge.predicate] ?? 'black';
|
|
79
|
+
if (config.showEdgeLabels) {
|
|
80
|
+
lines.push(` "${edge.source}" -> "${edge.target}" [label="${edge.predicate}" color="${color}"];`);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
lines.push(` "${edge.source}" -> "${edge.target}" [color="${color}"];`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
lines.push('}');
|
|
87
|
+
return ok(lines.join('\n'));
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
return err(error instanceof Error ? error : new Error(String(error)));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Generate D3.js compatible JSON
|
|
95
|
+
*
|
|
96
|
+
* @returns D3 graph data
|
|
97
|
+
*/
|
|
98
|
+
toD3Json() {
|
|
99
|
+
try {
|
|
100
|
+
const nodes = this.graph.getAllNodes().map((node) => ({
|
|
101
|
+
id: node.id,
|
|
102
|
+
label: node.label,
|
|
103
|
+
type: node.type,
|
|
104
|
+
properties: node.properties,
|
|
105
|
+
}));
|
|
106
|
+
const links = this.graph.getAllEdges().map((edge) => ({
|
|
107
|
+
source: edge.source,
|
|
108
|
+
target: edge.target,
|
|
109
|
+
predicate: edge.predicate,
|
|
110
|
+
weight: edge.weight,
|
|
111
|
+
}));
|
|
112
|
+
return ok({ nodes, links });
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
return err(error instanceof Error ? error : new Error(String(error)));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Generate Cytoscape.js compatible JSON
|
|
120
|
+
*
|
|
121
|
+
* @returns Cytoscape data
|
|
122
|
+
*/
|
|
123
|
+
toCytoscape() {
|
|
124
|
+
try {
|
|
125
|
+
const nodes = this.graph.getAllNodes().map((node) => ({
|
|
126
|
+
data: {
|
|
127
|
+
id: node.id,
|
|
128
|
+
label: node.label,
|
|
129
|
+
type: node.type,
|
|
130
|
+
...node.properties,
|
|
131
|
+
},
|
|
132
|
+
}));
|
|
133
|
+
const edges = this.graph.getAllEdges().map((edge) => ({
|
|
134
|
+
data: {
|
|
135
|
+
id: edge.id,
|
|
136
|
+
source: edge.source,
|
|
137
|
+
target: edge.target,
|
|
138
|
+
label: edge.predicate,
|
|
139
|
+
weight: edge.weight,
|
|
140
|
+
},
|
|
141
|
+
}));
|
|
142
|
+
return ok({
|
|
143
|
+
elements: { nodes, edges },
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
return err(error instanceof Error ? error : new Error(String(error)));
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get graph statistics
|
|
152
|
+
*
|
|
153
|
+
* @returns Graph statistics
|
|
154
|
+
*/
|
|
155
|
+
getStats() {
|
|
156
|
+
try {
|
|
157
|
+
const nodes = this.graph.getAllNodes();
|
|
158
|
+
const edges = this.graph.getAllEdges();
|
|
159
|
+
const nodeTypes = [...new Set(nodes.map((n) => n.type))];
|
|
160
|
+
const predicates = [...new Set(edges.map((e) => e.predicate))];
|
|
161
|
+
// Calculate density
|
|
162
|
+
const n = nodes.length;
|
|
163
|
+
const e = edges.length;
|
|
164
|
+
const maxEdges = n * (n - 1); // Directed graph
|
|
165
|
+
const density = maxEdges > 0 ? e / maxEdges : 0;
|
|
166
|
+
// Calculate average degree
|
|
167
|
+
const avgDegree = n > 0 ? (2 * e) / n : 0;
|
|
168
|
+
return ok({
|
|
169
|
+
nodeCount: n,
|
|
170
|
+
edgeCount: e,
|
|
171
|
+
nodeTypes,
|
|
172
|
+
predicates,
|
|
173
|
+
density,
|
|
174
|
+
avgDegree,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
return err(error instanceof Error ? error : new Error(String(error)));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Generate subgraph around a node
|
|
183
|
+
*
|
|
184
|
+
* @param nodeId - Center node ID
|
|
185
|
+
* @param depth - Depth of neighbors to include
|
|
186
|
+
* @returns Subgraph data
|
|
187
|
+
*/
|
|
188
|
+
getSubgraph(nodeId, depth = 1) {
|
|
189
|
+
try {
|
|
190
|
+
const visited = new Set();
|
|
191
|
+
const queue = [
|
|
192
|
+
{ id: nodeId, currentDepth: 0 },
|
|
193
|
+
];
|
|
194
|
+
while (queue.length > 0) {
|
|
195
|
+
const current = queue.shift();
|
|
196
|
+
if (visited.has(current.id) || current.currentDepth > depth) {
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
visited.add(current.id);
|
|
200
|
+
if (current.currentDepth < depth) {
|
|
201
|
+
const neighborsResult = this.graph.getNeighbors(current.id);
|
|
202
|
+
if (isOk(neighborsResult)) {
|
|
203
|
+
for (const neighbor of neighborsResult.value) {
|
|
204
|
+
if (!visited.has(neighbor.id)) {
|
|
205
|
+
queue.push({ id: neighbor.id, currentDepth: current.currentDepth + 1 });
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const nodes = this.graph
|
|
212
|
+
.getAllNodes()
|
|
213
|
+
.filter((n) => visited.has(n.id))
|
|
214
|
+
.map((node) => ({
|
|
215
|
+
id: node.id,
|
|
216
|
+
label: node.label,
|
|
217
|
+
type: node.type,
|
|
218
|
+
properties: node.properties,
|
|
219
|
+
}));
|
|
220
|
+
const links = this.graph
|
|
221
|
+
.getAllEdges()
|
|
222
|
+
.filter((e) => visited.has(e.source) && visited.has(e.target))
|
|
223
|
+
.map((edge) => ({
|
|
224
|
+
source: edge.source,
|
|
225
|
+
target: edge.target,
|
|
226
|
+
predicate: edge.predicate,
|
|
227
|
+
weight: edge.weight,
|
|
228
|
+
}));
|
|
229
|
+
return ok({ nodes, links });
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
return err(error instanceof Error ? error : new Error(String(error)));
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Get Mermaid shape markers for node type
|
|
237
|
+
*/
|
|
238
|
+
getMermaidShape(type, _config) {
|
|
239
|
+
const shapes = {
|
|
240
|
+
concept: { open: '([', close: '])' },
|
|
241
|
+
entity: { open: '{{', close: '}}' },
|
|
242
|
+
default: { open: '[', close: ']' },
|
|
243
|
+
};
|
|
244
|
+
return shapes[type] ?? shapes['default'];
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Sanitize ID for Mermaid
|
|
248
|
+
*/
|
|
249
|
+
sanitizeId(id) {
|
|
250
|
+
return id.replace(/[^a-zA-Z0-9_]/g, '_');
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Escape label for diagram syntax
|
|
254
|
+
*/
|
|
255
|
+
escapeLabel(label) {
|
|
256
|
+
return label.replace(/"/g, "'").replace(/\n/g, ' ');
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=graph-visualization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-visualization.js","sourceRoot":"","sources":["../../src/visualization/graph-visualization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Visualization module exports
|
|
3
|
+
*
|
|
4
|
+
* @module @nahisaho/katashiro-knowledge
|
|
5
|
+
*/
|
|
6
|
+
export { GraphVisualization, type VisualizationConfig, type D3GraphData, type CytoscapeData, type GraphStats, } from './graph-visualization.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/visualization/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,GAChB,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/visualization/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,GAKnB,MAAM,0BAA0B,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nahisaho/katashiro-knowledge",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "KATASHIRO Knowledge - 知識管理・LLMパッケージ",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsc",
|
|
19
|
+
"clean": "rm -rf dist",
|
|
20
|
+
"test": "vitest run"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@nahisaho/katashiro-core": "*"
|
|
24
|
+
},
|
|
25
|
+
"author": "nahisaho",
|
|
26
|
+
"license": "MIT",
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "https://github.com/nahisaho/katashiro.git",
|
|
30
|
+
"directory": "packages/knowledge"
|
|
31
|
+
},
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://github.com/nahisaho/katashiro#readme",
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/nahisaho/katashiro/issues"
|
|
38
|
+
}
|
|
39
|
+
}
|