memento-mcp-server 1.14.0-b → 1.15.0-c

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.
Files changed (81) hide show
  1. package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.d.ts +18 -0
  2. package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.d.ts.map +1 -0
  3. package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.js +346 -0
  4. package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.js.map +1 -0
  5. package/dist/domains/memory/tools/recall-tool.d.ts +177 -0
  6. package/dist/domains/memory/tools/recall-tool.d.ts.map +1 -1
  7. package/dist/domains/memory/tools/recall-tool.js +329 -3
  8. package/dist/domains/memory/tools/recall-tool.js.map +1 -1
  9. package/dist/domains/memory/tools/remember-tool.d.ts.map +1 -1
  10. package/dist/domains/memory/tools/remember-tool.js +182 -1
  11. package/dist/domains/memory/tools/remember-tool.js.map +1 -1
  12. package/dist/infrastructure/database/database/migration/migrations/005-relation-engine-schema.sql +7 -7
  13. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.d.ts +65 -0
  14. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.d.ts.map +1 -0
  15. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.js +250 -0
  16. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.js.map +1 -0
  17. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.sql +86 -0
  18. package/dist/infrastructure/logging/triple-extraction-logger.d.ts +92 -0
  19. package/dist/infrastructure/logging/triple-extraction-logger.d.ts.map +1 -0
  20. package/dist/infrastructure/logging/triple-extraction-logger.js +194 -0
  21. package/dist/infrastructure/logging/triple-extraction-logger.js.map +1 -0
  22. package/dist/infrastructure/scheduler/batch-scheduler.d.ts +57 -0
  23. package/dist/infrastructure/scheduler/batch-scheduler.d.ts.map +1 -1
  24. package/dist/infrastructure/scheduler/batch-scheduler.js +220 -0
  25. package/dist/infrastructure/scheduler/batch-scheduler.js.map +1 -1
  26. package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.d.ts +194 -0
  27. package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.d.ts.map +1 -0
  28. package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.js +639 -0
  29. package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.js.map +1 -0
  30. package/dist/services/semantic-memory/semantic-memory-statistics.d.ts +64 -0
  31. package/dist/services/semantic-memory/semantic-memory-statistics.d.ts.map +1 -0
  32. package/dist/services/semantic-memory/semantic-memory-statistics.js +113 -0
  33. package/dist/services/semantic-memory/semantic-memory-statistics.js.map +1 -0
  34. package/dist/services/semantic-memory/semantic-memory-update-service.d.ts +257 -0
  35. package/dist/services/semantic-memory/semantic-memory-update-service.d.ts.map +1 -0
  36. package/dist/services/semantic-memory/semantic-memory-update-service.js +696 -0
  37. package/dist/services/semantic-memory/semantic-memory-update-service.js.map +1 -0
  38. package/dist/services/triple-extraction/entity-linker.d.ts +55 -0
  39. package/dist/services/triple-extraction/entity-linker.d.ts.map +1 -0
  40. package/dist/services/triple-extraction/entity-linker.js +154 -0
  41. package/dist/services/triple-extraction/entity-linker.js.map +1 -0
  42. package/dist/services/triple-extraction/predicate-canonicalizer.d.ts +63 -0
  43. package/dist/services/triple-extraction/predicate-canonicalizer.d.ts.map +1 -0
  44. package/dist/services/triple-extraction/predicate-canonicalizer.js +166 -0
  45. package/dist/services/triple-extraction/predicate-canonicalizer.js.map +1 -0
  46. package/dist/services/triple-extraction/triple-extraction-service.d.ts +181 -0
  47. package/dist/services/triple-extraction/triple-extraction-service.d.ts.map +1 -0
  48. package/dist/services/triple-extraction/triple-extraction-service.js +907 -0
  49. package/dist/services/triple-extraction/triple-extraction-service.js.map +1 -0
  50. package/dist/services/triple-extraction/triple-extraction-statistics.d.ts +74 -0
  51. package/dist/services/triple-extraction/triple-extraction-statistics.d.ts.map +1 -0
  52. package/dist/services/triple-extraction/triple-extraction-statistics.js +146 -0
  53. package/dist/services/triple-extraction/triple-extraction-statistics.js.map +1 -0
  54. package/dist/shared/types/index.d.ts +1 -0
  55. package/dist/shared/types/index.d.ts.map +1 -1
  56. package/dist/shared/types/index.js.map +1 -1
  57. package/dist/shared/types/triple-extraction.d.ts +99 -0
  58. package/dist/shared/types/triple-extraction.d.ts.map +1 -0
  59. package/dist/shared/types/triple-extraction.js +6 -0
  60. package/dist/shared/types/triple-extraction.js.map +1 -0
  61. package/dist/shared/utils/pii-masker.d.ts +67 -0
  62. package/dist/shared/utils/pii-masker.d.ts.map +1 -0
  63. package/dist/shared/utils/pii-masker.js +205 -0
  64. package/dist/shared/utils/pii-masker.js.map +1 -0
  65. package/dist/shared/utils/prompt-template-loader.d.ts +42 -0
  66. package/dist/shared/utils/prompt-template-loader.d.ts.map +1 -0
  67. package/dist/shared/utils/prompt-template-loader.js +92 -0
  68. package/dist/shared/utils/prompt-template-loader.js.map +1 -0
  69. package/dist/shared/utils/triple-cache.d.ts +90 -0
  70. package/dist/shared/utils/triple-cache.d.ts.map +1 -0
  71. package/dist/shared/utils/triple-cache.js +124 -0
  72. package/dist/shared/utils/triple-cache.js.map +1 -0
  73. package/dist/tools/index.d.ts +2 -1
  74. package/dist/tools/index.d.ts.map +1 -1
  75. package/dist/tools/index.js +3 -1
  76. package/dist/tools/index.js.map +1 -1
  77. package/dist/tools/types.d.ts +1 -0
  78. package/dist/tools/types.d.ts.map +1 -1
  79. package/dist/tools/types.js +2 -0
  80. package/dist/tools/types.js.map +1 -1
  81. 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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"}