memento-mcp-server 1.14.0 β 1.15.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/domains/memory/tools/convert-episodic-to-semantic-tool.d.ts +18 -0
- package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.d.ts.map +1 -0
- package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.js +346 -0
- package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.js.map +1 -0
- package/dist/domains/memory/tools/remember-tool.d.ts.map +1 -1
- package/dist/domains/memory/tools/remember-tool.js +182 -1
- package/dist/domains/memory/tools/remember-tool.js.map +1 -1
- package/dist/infrastructure/database/database/migration/migrations/005-relation-engine-schema.sql +7 -7
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.d.ts +65 -0
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.d.ts.map +1 -0
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.js +250 -0
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.js.map +1 -0
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.sql +86 -0
- package/dist/infrastructure/logging/triple-extraction-logger.d.ts +92 -0
- package/dist/infrastructure/logging/triple-extraction-logger.d.ts.map +1 -0
- package/dist/infrastructure/logging/triple-extraction-logger.js +194 -0
- package/dist/infrastructure/logging/triple-extraction-logger.js.map +1 -0
- package/dist/infrastructure/scheduler/batch-scheduler.d.ts +57 -0
- package/dist/infrastructure/scheduler/batch-scheduler.d.ts.map +1 -1
- package/dist/infrastructure/scheduler/batch-scheduler.js +220 -0
- package/dist/infrastructure/scheduler/batch-scheduler.js.map +1 -1
- package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.d.ts +194 -0
- package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.d.ts.map +1 -0
- package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.js +639 -0
- package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.js.map +1 -0
- package/dist/services/semantic-memory/semantic-memory-statistics.d.ts +64 -0
- package/dist/services/semantic-memory/semantic-memory-statistics.d.ts.map +1 -0
- package/dist/services/semantic-memory/semantic-memory-statistics.js +113 -0
- package/dist/services/semantic-memory/semantic-memory-statistics.js.map +1 -0
- package/dist/services/semantic-memory/semantic-memory-update-service.d.ts +257 -0
- package/dist/services/semantic-memory/semantic-memory-update-service.d.ts.map +1 -0
- package/dist/services/semantic-memory/semantic-memory-update-service.js +696 -0
- package/dist/services/semantic-memory/semantic-memory-update-service.js.map +1 -0
- package/dist/services/triple-extraction/entity-linker.d.ts +55 -0
- package/dist/services/triple-extraction/entity-linker.d.ts.map +1 -0
- package/dist/services/triple-extraction/entity-linker.js +154 -0
- package/dist/services/triple-extraction/entity-linker.js.map +1 -0
- package/dist/services/triple-extraction/predicate-canonicalizer.d.ts +63 -0
- package/dist/services/triple-extraction/predicate-canonicalizer.d.ts.map +1 -0
- package/dist/services/triple-extraction/predicate-canonicalizer.js +166 -0
- package/dist/services/triple-extraction/predicate-canonicalizer.js.map +1 -0
- package/dist/services/triple-extraction/triple-extraction-service.d.ts +181 -0
- package/dist/services/triple-extraction/triple-extraction-service.d.ts.map +1 -0
- package/dist/services/triple-extraction/triple-extraction-service.js +907 -0
- package/dist/services/triple-extraction/triple-extraction-service.js.map +1 -0
- package/dist/services/triple-extraction/triple-extraction-statistics.d.ts +74 -0
- package/dist/services/triple-extraction/triple-extraction-statistics.d.ts.map +1 -0
- package/dist/services/triple-extraction/triple-extraction-statistics.js +146 -0
- package/dist/services/triple-extraction/triple-extraction-statistics.js.map +1 -0
- package/dist/shared/types/index.d.ts +1 -0
- package/dist/shared/types/index.d.ts.map +1 -1
- package/dist/shared/types/index.js.map +1 -1
- package/dist/shared/types/triple-extraction.d.ts +99 -0
- package/dist/shared/types/triple-extraction.d.ts.map +1 -0
- package/dist/shared/types/triple-extraction.js +6 -0
- package/dist/shared/types/triple-extraction.js.map +1 -0
- package/dist/shared/utils/pii-masker.d.ts +67 -0
- package/dist/shared/utils/pii-masker.d.ts.map +1 -0
- package/dist/shared/utils/pii-masker.js +205 -0
- package/dist/shared/utils/pii-masker.js.map +1 -0
- package/dist/shared/utils/prompt-template-loader.d.ts +42 -0
- package/dist/shared/utils/prompt-template-loader.d.ts.map +1 -0
- package/dist/shared/utils/prompt-template-loader.js +92 -0
- package/dist/shared/utils/prompt-template-loader.js.map +1 -0
- package/dist/shared/utils/triple-cache.d.ts +90 -0
- package/dist/shared/utils/triple-cache.d.ts.map +1 -0
- package/dist/shared/utils/triple-cache.js +124 -0
- package/dist/shared/utils/triple-cache.js.map +1 -0
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/types.d.ts +1 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-memory-update-service.js","sourceRoot":"","sources":["../../../src/services/semantic-memory/semantic-memory-update-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Linker
|
|
3
|
+
* Subject/Object μν°ν°λ₯Ό μ κ·ννκ³ λμΌν μν°ν°λ‘ μ°κ²°ν©λλ€.
|
|
4
|
+
*/
|
|
5
|
+
import type { EntityLinkingResult } from '../../shared/types/triple-extraction.js';
|
|
6
|
+
/**
|
|
7
|
+
* Entity μ¬μ
|
|
8
|
+
* νμ€ μν°ν°μ λμμ΄ λ§€ν
|
|
9
|
+
*
|
|
10
|
+
* ꡬ쑰:
|
|
11
|
+
* - key: νμ€ μν°ν° (canonical form)
|
|
12
|
+
* - value: λμμ΄ λ°°μ΄
|
|
13
|
+
*/
|
|
14
|
+
interface EntityDictionary {
|
|
15
|
+
[canonical: string]: string[];
|
|
16
|
+
}
|
|
17
|
+
export declare class EntityLinker {
|
|
18
|
+
private dictionary;
|
|
19
|
+
private reverseIndex;
|
|
20
|
+
constructor(customDictionary?: EntityDictionary);
|
|
21
|
+
/**
|
|
22
|
+
* μμΈλ±μ€ κ΅¬μΆ (λμμ΄ -> νμ€ μν°ν°)
|
|
23
|
+
*/
|
|
24
|
+
private buildReverseIndex;
|
|
25
|
+
/**
|
|
26
|
+
* κ²μμ© ν€ μ κ·ν
|
|
27
|
+
* λμλ¬Έμ 무μ, 곡백 μ κ±°
|
|
28
|
+
*/
|
|
29
|
+
private normalizeKey;
|
|
30
|
+
/**
|
|
31
|
+
* ꡬ쑰νλ μν°ν°μΈμ§ νμΈ (μμΈ κ·μΉ μ μ©)
|
|
32
|
+
* μ«μ, λ μ§, μκ° λ±μ λ³ννμ§ μμ
|
|
33
|
+
*/
|
|
34
|
+
private isStructuredEntity;
|
|
35
|
+
/**
|
|
36
|
+
* Entity Linking λ° μ κ·ν μν
|
|
37
|
+
*
|
|
38
|
+
* @param entity μλ³Έ μν°ν° λ¬Έμμ΄
|
|
39
|
+
* @returns EntityLinkingResult
|
|
40
|
+
*/
|
|
41
|
+
link(entity: string): EntityLinkingResult;
|
|
42
|
+
/**
|
|
43
|
+
* μ¬λ¬ μν°ν° μΌκ΄ Linking
|
|
44
|
+
*/
|
|
45
|
+
linkBatch(entities: string[]): EntityLinkingResult[];
|
|
46
|
+
/**
|
|
47
|
+
* μ¬μ μ Entity μΆκ°
|
|
48
|
+
*
|
|
49
|
+
* @param canonical νμ€ μν°ν°
|
|
50
|
+
* @param synonyms λμμ΄ λ°°μ΄
|
|
51
|
+
*/
|
|
52
|
+
addEntity(canonical: string, synonyms: string[]): void;
|
|
53
|
+
}
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=entity-linker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-linker.d.ts","sourceRoot":"","sources":["../../../src/services/triple-extraction/entity-linker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAEnF;;;;;;;GAOG;AACH,UAAU,gBAAgB;IACtB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACjC;AAmBD,qBAAa,YAAY;IACrB,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,YAAY,CAAsB;gBAE9B,gBAAgB,CAAC,EAAE,gBAAgB;IAM/C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;;;;OAKG;IACI,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAuDhD;;OAEG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE;IAI3D;;;;;OAKG;IACI,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;CAehE"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Linker
|
|
3
|
+
* Subject/Object μν°ν°λ₯Ό μ κ·ννκ³ λμΌν μν°ν°λ‘ μ°κ²°ν©λλ€.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* κΈ°λ³Έ Entity μ¬μ
|
|
7
|
+
* μμ£Ό μ¬μ©λλ μΌλ°μ μΈ μν°ν°λ€μ λν λ§€ν
|
|
8
|
+
*/
|
|
9
|
+
const DEFAULT_ENTITY_DICTIONARY = {
|
|
10
|
+
// μ¬μ©μ κ΄λ ¨
|
|
11
|
+
'μ¬μ©μ': ['user', 'μ μ ', 'μ¬μ©μ', 'λ', 'i', 'me', 'myself', 'λ΄'],
|
|
12
|
+
// μμ€ν
/AI κ΄λ ¨
|
|
13
|
+
'μμ€ν
': ['system', 'μμ€ν
', 'ai', 'artificial intelligence', 'assistant', 'μ΄μμ€ν΄νΈ', 'λ', 'you', 'λΉμ '],
|
|
14
|
+
// μκ°/λ μ§ κ΄λ ¨ (μλμ μΈ ννμ μ λμ μΈ κ°λ
μΌλ‘ λ§€ννκΈ°λ μ΄λ ΅μ§λ§, μΌλ°μ μΈ νν ν΅μΌ)
|
|
15
|
+
'μ€λ': ['today', 'κΈμΌ', 'νμ¬'],
|
|
16
|
+
'λ΄μΌ': ['tomorrow', 'μ΅μΌ', 'λ€μλ '],
|
|
17
|
+
'μ΄μ ': ['yesterday', 'μμΌ', 'μ λ '],
|
|
18
|
+
};
|
|
19
|
+
export class EntityLinker {
|
|
20
|
+
dictionary;
|
|
21
|
+
reverseIndex; // λμμ΄ -> νμ€ μν°ν° λ§€ν
|
|
22
|
+
constructor(customDictionary) {
|
|
23
|
+
this.dictionary = customDictionary || DEFAULT_ENTITY_DICTIONARY;
|
|
24
|
+
this.reverseIndex = new Map();
|
|
25
|
+
this.buildReverseIndex();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* μμΈλ±μ€ κ΅¬μΆ (λμμ΄ -> νμ€ μν°ν°)
|
|
29
|
+
*/
|
|
30
|
+
buildReverseIndex() {
|
|
31
|
+
this.reverseIndex = new Map();
|
|
32
|
+
for (const [canonical, synonyms] of Object.entries(this.dictionary)) {
|
|
33
|
+
// νμ€ μν°ν° μ체λ λ§€ν
|
|
34
|
+
this.reverseIndex.set(this.normalizeKey(canonical), canonical);
|
|
35
|
+
// λμμ΄λ€ λ§€ν
|
|
36
|
+
for (const synonym of synonyms) {
|
|
37
|
+
this.reverseIndex.set(this.normalizeKey(synonym), canonical);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* κ²μμ© ν€ μ κ·ν
|
|
43
|
+
* λμλ¬Έμ 무μ, 곡백 μ κ±°
|
|
44
|
+
*/
|
|
45
|
+
normalizeKey(key) {
|
|
46
|
+
return key.toLowerCase().trim().replace(/\s+/g, '');
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* ꡬ쑰νλ μν°ν°μΈμ§ νμΈ (μμΈ κ·μΉ μ μ©)
|
|
50
|
+
* μ«μ, λ μ§, μκ° λ±μ λ³ννμ§ μμ
|
|
51
|
+
*/
|
|
52
|
+
isStructuredEntity(entity) {
|
|
53
|
+
const trimmed = entity.trim();
|
|
54
|
+
// μ«μ (μ μ, μ€μ, μμ ν¬ν¨)
|
|
55
|
+
// μ: 123, -45.67, 0.5
|
|
56
|
+
if (/^-?\d+(\.\d+)?$/.test(trimmed))
|
|
57
|
+
return true;
|
|
58
|
+
// λ μ§ (YYYY-MM-DD, YYYY/MM/DD, YYYY.MM.DD)
|
|
59
|
+
// μ: 2025-01-15, 2025/01/01
|
|
60
|
+
if (/^\d{4}[-./]\d{1,2}[-./]\d{1,2}$/.test(trimmed))
|
|
61
|
+
return true;
|
|
62
|
+
// μκ° (HH:MM, HH:MM:SS)
|
|
63
|
+
// μ: 14:30, 09:00:00
|
|
64
|
+
if (/^\d{1,2}:\d{1,2}(:\d{1,2})?$/.test(trimmed))
|
|
65
|
+
return true;
|
|
66
|
+
// μ΄λ©μΌ μ£Όμ (κ°λ¨ν μ κ·μ)
|
|
67
|
+
if (/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(trimmed))
|
|
68
|
+
return true;
|
|
69
|
+
// URL (http/httpsλ‘ μμνλ κ²½μ°)
|
|
70
|
+
if (/^https?:\/\//i.test(trimmed))
|
|
71
|
+
return true;
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Entity Linking λ° μ κ·ν μν
|
|
76
|
+
*
|
|
77
|
+
* @param entity μλ³Έ μν°ν° λ¬Έμμ΄
|
|
78
|
+
* @returns EntityLinkingResult
|
|
79
|
+
*/
|
|
80
|
+
link(entity) {
|
|
81
|
+
if (!entity || typeof entity !== 'string') {
|
|
82
|
+
return {
|
|
83
|
+
linked: entity || '',
|
|
84
|
+
original: entity || '',
|
|
85
|
+
success: false,
|
|
86
|
+
normalized: false
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
const trimmed = entity.trim();
|
|
90
|
+
if (trimmed.length === 0) {
|
|
91
|
+
return {
|
|
92
|
+
linked: '',
|
|
93
|
+
original: entity,
|
|
94
|
+
success: false,
|
|
95
|
+
normalized: false
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
// 1. ꡬ쑰νλ μν°ν° μμΈ μ²λ¦¬ (μ«μ, λ μ§ λ±)
|
|
99
|
+
if (this.isStructuredEntity(trimmed)) {
|
|
100
|
+
return {
|
|
101
|
+
linked: trimmed,
|
|
102
|
+
original: trimmed,
|
|
103
|
+
success: true,
|
|
104
|
+
normalized: false // λ³ννμ§ μμμμ νμ
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
// 2. μ¬μ κΈ°λ° λ§€ν νμΈ
|
|
108
|
+
const normalizedKey = this.normalizeKey(trimmed);
|
|
109
|
+
const canonical = this.reverseIndex.get(normalizedKey);
|
|
110
|
+
if (canonical) {
|
|
111
|
+
return {
|
|
112
|
+
linked: canonical,
|
|
113
|
+
original: trimmed,
|
|
114
|
+
success: true,
|
|
115
|
+
normalized: canonical !== trimmed
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
// 3. λ§€νλμ§ μμ κ²½μ° κΈ°λ³Έ μ κ·ν
|
|
119
|
+
// Lowercasing + λ΄λΆ λ€μ€ 곡백μ λ¨μΌ 곡백μΌλ‘ μΉν
|
|
120
|
+
let basicNormalized = trimmed.toLowerCase().replace(/\s+/g, ' ');
|
|
121
|
+
return {
|
|
122
|
+
linked: basicNormalized,
|
|
123
|
+
original: trimmed,
|
|
124
|
+
success: true, // μ¬μ μλ μμ§λ§ μΌλ° μ κ·ν μ±κ³΅μΌλ‘ κ°μ£Ό (Open World Assumption)
|
|
125
|
+
normalized: basicNormalized !== trimmed
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* μ¬λ¬ μν°ν° μΌκ΄ Linking
|
|
130
|
+
*/
|
|
131
|
+
linkBatch(entities) {
|
|
132
|
+
return entities.map(entity => this.link(entity));
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* μ¬μ μ Entity μΆκ°
|
|
136
|
+
*
|
|
137
|
+
* @param canonical νμ€ μν°ν°
|
|
138
|
+
* @param synonyms λμμ΄ λ°°μ΄
|
|
139
|
+
*/
|
|
140
|
+
addEntity(canonical, synonyms) {
|
|
141
|
+
if (!this.dictionary[canonical]) {
|
|
142
|
+
this.dictionary[canonical] = [];
|
|
143
|
+
}
|
|
144
|
+
// μ€λ³΅ μ κ±° ν μΆκ°
|
|
145
|
+
const existingSynonyms = new Set(this.dictionary[canonical]);
|
|
146
|
+
for (const synonym of synonyms) {
|
|
147
|
+
existingSynonyms.add(synonym);
|
|
148
|
+
}
|
|
149
|
+
this.dictionary[canonical] = Array.from(existingSynonyms);
|
|
150
|
+
// μμΈλ±μ€ μ¬κ΅¬μΆ
|
|
151
|
+
this.buildReverseIndex();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=entity-linker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-linker.js","sourceRoot":"","sources":["../../../src/services/triple-extraction/entity-linker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Predicate μ κ·νκΈ° (Canonicalizer)
|
|
3
|
+
* λμμ΄/μ μ¬ ννμ νμ€ predicateλ‘ λ³νν©λλ€.
|
|
4
|
+
*
|
|
5
|
+
* AriGraph λ
Όλ¬Έμ μ°Έκ³ νμ¬ κ΅¬νλμμΌλ©°, μ§μ κ·Έλνμ μΌκ΄μ±μ 보μ₯ν©λλ€.
|
|
6
|
+
*/
|
|
7
|
+
import type { PredicateCanonicalizationResult } from '../../shared/types/triple-extraction.js';
|
|
8
|
+
/**
|
|
9
|
+
* Predicate μ¬μ
|
|
10
|
+
* νμ€ predicateμ λμμ΄ λ§€ν
|
|
11
|
+
*
|
|
12
|
+
* ꡬ쑰:
|
|
13
|
+
* - key: νμ€ predicate (canonical form)
|
|
14
|
+
* - value: λμμ΄ λ°°μ΄
|
|
15
|
+
*/
|
|
16
|
+
interface PredicateDictionary {
|
|
17
|
+
[canonical: string]: string[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Predicate μ κ·νκΈ°
|
|
21
|
+
*/
|
|
22
|
+
export declare class PredicateCanonicalizer {
|
|
23
|
+
private dictionary;
|
|
24
|
+
private reverseIndex;
|
|
25
|
+
constructor(customDictionary?: PredicateDictionary);
|
|
26
|
+
/**
|
|
27
|
+
* μμΈλ±μ€ κ΅¬μΆ (λμμ΄ -> νμ€ predicate)
|
|
28
|
+
*/
|
|
29
|
+
private buildReverseIndex;
|
|
30
|
+
/**
|
|
31
|
+
* ν€ μ κ·ν (κ²μμ©)
|
|
32
|
+
* λμλ¬Έμ 무μ, 곡백 μ κ±°
|
|
33
|
+
*/
|
|
34
|
+
private normalizeKey;
|
|
35
|
+
/**
|
|
36
|
+
* Predicate μ κ·ν
|
|
37
|
+
*
|
|
38
|
+
* @param predicate μλ³Έ predicate
|
|
39
|
+
* @returns μ κ·ν κ²°κ³Ό
|
|
40
|
+
*/
|
|
41
|
+
canonicalize(predicate: string): PredicateCanonicalizationResult;
|
|
42
|
+
/**
|
|
43
|
+
* μ¬λ¬ Predicate μΌκ΄ μ κ·ν
|
|
44
|
+
*/
|
|
45
|
+
canonicalizeBatch(predicates: string[]): PredicateCanonicalizationResult[];
|
|
46
|
+
/**
|
|
47
|
+
* μ¬μ μ Predicate μΆκ°
|
|
48
|
+
*
|
|
49
|
+
* @param canonical νμ€ predicate
|
|
50
|
+
* @param synonyms λμμ΄ λ°°μ΄
|
|
51
|
+
*/
|
|
52
|
+
addPredicate(canonical: string, synonyms: string[]): void;
|
|
53
|
+
/**
|
|
54
|
+
* μ¬μ μ‘°ν (ν
μ€νΈ/λλ²κΉ
μ©)
|
|
55
|
+
*/
|
|
56
|
+
getDictionary(): Readonly<PredicateDictionary>;
|
|
57
|
+
/**
|
|
58
|
+
* νμ€ predicate λͺ©λ‘ μ‘°ν
|
|
59
|
+
*/
|
|
60
|
+
getCanonicalPredicates(): string[];
|
|
61
|
+
}
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=predicate-canonicalizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predicate-canonicalizer.d.ts","sourceRoot":"","sources":["../../../src/services/triple-extraction/predicate-canonicalizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAG/F;;;;;;;GAOG;AACH,UAAU,mBAAmB;IAC3B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC/B;AAwED;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,YAAY,CAAkC;gBAE1C,gBAAgB,CAAC,EAAE,mBAAmB;IAKlD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,+BAA+B;IAuChE;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,+BAA+B,EAAE;IAI1E;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAgBzD;;OAEG;IACH,aAAa,IAAI,QAAQ,CAAC,mBAAmB,CAAC;IAI9C;;OAEG;IACH,sBAAsB,IAAI,MAAM,EAAE;CAGnC"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Predicate μ κ·νκΈ° (Canonicalizer)
|
|
3
|
+
* λμμ΄/μ μ¬ ννμ νμ€ predicateλ‘ λ³νν©λλ€.
|
|
4
|
+
*
|
|
5
|
+
* AriGraph λ
Όλ¬Έμ μ°Έκ³ νμ¬ κ΅¬νλμμΌλ©°, μ§μ κ·Έλνμ μΌκ΄μ±μ 보μ₯ν©λλ€.
|
|
6
|
+
*/
|
|
7
|
+
import { logger } from '../../shared/utils/logger.js';
|
|
8
|
+
/**
|
|
9
|
+
* κΈ°λ³Έ Predicate μ¬μ
|
|
10
|
+
*
|
|
11
|
+
* νκΈ predicate μ€μ¬μΌλ‘ ꡬμ±λλ©°, ν₯ν νμ₯ κ°λ₯ν©λλ€.
|
|
12
|
+
*/
|
|
13
|
+
const DEFAULT_PREDICATE_DICTIONARY = {
|
|
14
|
+
// μ νΈ/μ’μν¨ κ΄λ ¨
|
|
15
|
+
'μ’μν¨': ['μ’μνλ€', 'μ νΈνλ€', 'μ νΈν¨', 'μ’μν¨', 'μ’μν¨', 'μ νΈ', 'like', 'prefer', 'favorite'],
|
|
16
|
+
// μ¬μ©/νμ© κ΄λ ¨
|
|
17
|
+
'μ¬μ©ν¨': ['μ¬μ©νλ€', 'μ¬μ©ν¨', 'νμ©νλ€', 'νμ©ν¨', 'μ°λ€', 'use', 'utilize'],
|
|
18
|
+
// μμ±/λ§λ€κΈ° κ΄λ ¨
|
|
19
|
+
'μμ±ν¨': ['λ§λ λ€', 'μμ±νλ€', 'μμ±ν¨', 'λ§λ€λ€', 'create', 'generate', 'make'],
|
|
20
|
+
// μμ /μ κ±° κ΄λ ¨
|
|
21
|
+
'μμ ν¨': ['μμ νλ€', 'μμ ν¨', 'μ κ±°νλ€', 'μ κ±°ν¨', 'μ§μ΄λ€', 'delete', 'remove'],
|
|
22
|
+
// μ
λ°μ΄νΈ/μμ κ΄λ ¨
|
|
23
|
+
'μ
λ°μ΄νΈν¨': ['μ
λ°μ΄νΈνλ€', 'μ
λ°μ΄νΈν¨', 'μμ νλ€', 'μμ ν¨', 'λ³κ²½νλ€', 'λ³κ²½ν¨', 'update', 'modify', 'change'],
|
|
24
|
+
// ν¬ν¨/ν¬ν¨ν¨ κ΄λ ¨
|
|
25
|
+
'ν¬ν¨ν¨': ['ν¬ν¨νλ€', 'ν¬ν¨ν¨', 'λ€μ΄μλ€', 'include', 'contain'],
|
|
26
|
+
// μμ‘΄/μμ‘΄ν¨ κ΄λ ¨
|
|
27
|
+
'μμ‘΄ν¨': ['μμ‘΄νλ€', 'μμ‘΄ν¨', 'λ°λ₯Έλ€', 'depend', 'rely'],
|
|
28
|
+
// μμΈ/μμΈν¨ κ΄λ ¨
|
|
29
|
+
'μμΈν¨': ['μμΈμ΄λ€', 'μμΈν¨', 'μΌμΌν¨λ€', 'cause', 'lead to'],
|
|
30
|
+
// μ°Έμ‘°/μ°Έμ‘°ν¨ κ΄λ ¨
|
|
31
|
+
'μ°Έμ‘°ν¨': ['μ°Έμ‘°νλ€', 'μ°Έμ‘°ν¨', 'μΈκΈνλ€', 'μΈκΈν¨', 'reference', 'refer', 'mention'],
|
|
32
|
+
// μμ /μμ ν¨ κ΄λ ¨
|
|
33
|
+
'μμ ν¨': ['μμ νλ€', 'μμ ν¨', 'κ°μ§κ³ μλ€', 'has', 'own', 'possess'],
|
|
34
|
+
// μν¨/μν¨ κ΄λ ¨
|
|
35
|
+
'μν¨': ['μνλ€', 'μν¨', 'belong to', 'belongs to'],
|
|
36
|
+
// μΌμΉ/μΌμΉν¨ κ΄λ ¨
|
|
37
|
+
'μΌμΉν¨': ['μΌμΉνλ€', 'μΌμΉν¨', 'κ°λ€', 'λμΌνλ€', 'match', 'equal', 'same'],
|
|
38
|
+
// λ€λ¦/λ€λ¦ κ΄λ ¨
|
|
39
|
+
'λ€λ¦': ['λ€λ₯΄λ€', 'λ€λ¦', 'λ€λ₯΄λ€', 'different', 'differs'],
|
|
40
|
+
// μ°κ²°/μ°κ²°ν¨ κ΄λ ¨
|
|
41
|
+
'μ°κ²°ν¨': ['μ°κ²°νλ€', 'μ°κ²°ν¨', 'μ°κ²°λμ΄ μλ€', 'connect', 'link'],
|
|
42
|
+
// κ΄λ ¨/κ΄λ ¨ν¨ κ΄λ ¨
|
|
43
|
+
'κ΄λ ¨ν¨': ['κ΄λ ¨νλ€', 'κ΄λ ¨ν¨', 'μ°κ΄λλ€', 'μ°κ΄λ¨', 'related', 'relate', 'associated'],
|
|
44
|
+
// νμ/νμν¨ κ΄λ ¨
|
|
45
|
+
'νμν¨': ['νμνλ€', 'νμν¨', 'νμμ΄λ€', 'required', 'need', 'necessary'],
|
|
46
|
+
// μ§μ/μ§μν¨ κ΄λ ¨
|
|
47
|
+
'μ§μν¨': ['μ§μνλ€', 'μ§μν¨', 'μ§μ§νλ€', 'support', 'back'],
|
|
48
|
+
// λ°λ/λ°λν¨ κ΄λ ¨
|
|
49
|
+
'λ°λν¨': ['λ°λνλ€', 'λ°λν¨', 'oppose', 'against'],
|
|
50
|
+
// λ°λΌμ΄/λ°λΌμ΄ κ΄λ ¨
|
|
51
|
+
'λ°λΌμ΄': ['λ°λΌμ¨λ€', 'λ°λΌμ΄', 'follow', 'follows'],
|
|
52
|
+
// μ νν¨/μ νν¨ κ΄λ ¨
|
|
53
|
+
'μ νν¨': ['μ ννλ€', 'μ νν¨', 'precede', 'precedes', 'before'],
|
|
54
|
+
// ννν¨/ννν¨ κ΄λ ¨
|
|
55
|
+
'ννν¨': ['νννλ€', 'ννν¨', 'succeed', 'succeeds', 'after']
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Predicate μ κ·νκΈ°
|
|
59
|
+
*/
|
|
60
|
+
export class PredicateCanonicalizer {
|
|
61
|
+
dictionary;
|
|
62
|
+
reverseIndex = new Map(); // λμμ΄ -> νμ€ predicate λ§€ν
|
|
63
|
+
constructor(customDictionary) {
|
|
64
|
+
this.dictionary = customDictionary || DEFAULT_PREDICATE_DICTIONARY;
|
|
65
|
+
this.buildReverseIndex();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* μμΈλ±μ€ κ΅¬μΆ (λμμ΄ -> νμ€ predicate)
|
|
69
|
+
*/
|
|
70
|
+
buildReverseIndex() {
|
|
71
|
+
this.reverseIndex = new Map();
|
|
72
|
+
for (const [canonical, synonyms] of Object.entries(this.dictionary)) {
|
|
73
|
+
// νμ€ predicate μ체λ λ§€ν
|
|
74
|
+
this.reverseIndex.set(this.normalizeKey(canonical), canonical);
|
|
75
|
+
// λμμ΄λ€ λ§€ν
|
|
76
|
+
for (const synonym of synonyms) {
|
|
77
|
+
this.reverseIndex.set(this.normalizeKey(synonym), canonical);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* ν€ μ κ·ν (κ²μμ©)
|
|
83
|
+
* λμλ¬Έμ 무μ, 곡백 μ κ±°
|
|
84
|
+
*/
|
|
85
|
+
normalizeKey(key) {
|
|
86
|
+
return key.toLowerCase().trim().replace(/\s+/g, '');
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Predicate μ κ·ν
|
|
90
|
+
*
|
|
91
|
+
* @param predicate μλ³Έ predicate
|
|
92
|
+
* @returns μ κ·ν κ²°κ³Ό
|
|
93
|
+
*/
|
|
94
|
+
canonicalize(predicate) {
|
|
95
|
+
if (!predicate || typeof predicate !== 'string') {
|
|
96
|
+
return {
|
|
97
|
+
canonical: predicate || '',
|
|
98
|
+
original: predicate || '',
|
|
99
|
+
success: false
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
const trimmed = predicate.trim();
|
|
103
|
+
if (trimmed.length === 0) {
|
|
104
|
+
return {
|
|
105
|
+
canonical: '',
|
|
106
|
+
original: predicate,
|
|
107
|
+
success: false
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
// μ κ·νλ ν€λ‘ κ²μ
|
|
111
|
+
const normalizedKey = this.normalizeKey(trimmed);
|
|
112
|
+
const canonical = this.reverseIndex.get(normalizedKey);
|
|
113
|
+
if (canonical) {
|
|
114
|
+
return {
|
|
115
|
+
canonical,
|
|
116
|
+
original: trimmed,
|
|
117
|
+
success: true,
|
|
118
|
+
synonym: canonical !== trimmed ? trimmed : undefined
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
// λ§€μΉλμ§ μμ κ²½μ° μλ³Έ λ°ν (μ κ·ν μ€ν¨)
|
|
122
|
+
return {
|
|
123
|
+
canonical: trimmed,
|
|
124
|
+
original: trimmed,
|
|
125
|
+
success: false
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* μ¬λ¬ Predicate μΌκ΄ μ κ·ν
|
|
130
|
+
*/
|
|
131
|
+
canonicalizeBatch(predicates) {
|
|
132
|
+
return predicates.map(pred => this.canonicalize(pred));
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* μ¬μ μ Predicate μΆκ°
|
|
136
|
+
*
|
|
137
|
+
* @param canonical νμ€ predicate
|
|
138
|
+
* @param synonyms λμμ΄ λ°°μ΄
|
|
139
|
+
*/
|
|
140
|
+
addPredicate(canonical, synonyms) {
|
|
141
|
+
if (!this.dictionary[canonical]) {
|
|
142
|
+
this.dictionary[canonical] = [];
|
|
143
|
+
}
|
|
144
|
+
// μ€λ³΅ μ κ±° ν μΆκ°
|
|
145
|
+
const existingSynonyms = new Set(this.dictionary[canonical]);
|
|
146
|
+
for (const synonym of synonyms) {
|
|
147
|
+
existingSynonyms.add(synonym);
|
|
148
|
+
}
|
|
149
|
+
this.dictionary[canonical] = Array.from(existingSynonyms);
|
|
150
|
+
// μμΈλ±μ€ μ¬κ΅¬μΆ
|
|
151
|
+
this.buildReverseIndex();
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* μ¬μ μ‘°ν (ν
μ€νΈ/λλ²κΉ
μ©)
|
|
155
|
+
*/
|
|
156
|
+
getDictionary() {
|
|
157
|
+
return { ...this.dictionary };
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* νμ€ predicate λͺ©λ‘ μ‘°ν
|
|
161
|
+
*/
|
|
162
|
+
getCanonicalPredicates() {
|
|
163
|
+
return Object.keys(this.dictionary);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=predicate-canonicalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predicate-canonicalizer.js","sourceRoot":"","sources":["../../../src/services/triple-extraction/predicate-canonicalizer.ts"],"names":[],"mappings":"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"}
|