@stevenvo780/autologic 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/LICENSE +21 -0
- package/README.md +166 -0
- package/dist/atoms/coreference.d.ts +29 -0
- package/dist/atoms/coreference.d.ts.map +1 -0
- package/dist/atoms/coreference.js +75 -0
- package/dist/atoms/coreference.js.map +1 -0
- package/dist/atoms/identifier-gen.d.ts +23 -0
- package/dist/atoms/identifier-gen.d.ts.map +1 -0
- package/dist/atoms/identifier-gen.js +83 -0
- package/dist/atoms/identifier-gen.js.map +1 -0
- package/dist/atoms/index.d.ts +20 -0
- package/dist/atoms/index.d.ts.map +1 -0
- package/dist/atoms/index.js +112 -0
- package/dist/atoms/index.js.map +1 -0
- package/dist/atoms/keyword-extractor.d.ts +29 -0
- package/dist/atoms/keyword-extractor.d.ts.map +1 -0
- package/dist/atoms/keyword-extractor.js +73 -0
- package/dist/atoms/keyword-extractor.js.map +1 -0
- package/dist/autologic.d.ts +63 -0
- package/dist/autologic.d.ts.map +1 -0
- package/dist/autologic.js +107 -0
- package/dist/autologic.js.map +1 -0
- package/dist/discourse/index.d.ts +18 -0
- package/dist/discourse/index.d.ts.map +1 -0
- package/dist/discourse/index.js +43 -0
- package/dist/discourse/index.js.map +1 -0
- package/dist/discourse/markers-en.d.ts +7 -0
- package/dist/discourse/markers-en.d.ts.map +1 -0
- package/dist/discourse/markers-en.js +113 -0
- package/dist/discourse/markers-en.js.map +1 -0
- package/dist/discourse/markers-es.d.ts +7 -0
- package/dist/discourse/markers-es.d.ts.map +1 -0
- package/dist/discourse/markers-es.js +134 -0
- package/dist/discourse/markers-es.js.map +1 -0
- package/dist/discourse/pattern-detector.d.ts +16 -0
- package/dist/discourse/pattern-detector.d.ts.map +1 -0
- package/dist/discourse/pattern-detector.js +95 -0
- package/dist/discourse/pattern-detector.js.map +1 -0
- package/dist/discourse/role-classifier.d.ts +12 -0
- package/dist/discourse/role-classifier.d.ts.map +1 -0
- package/dist/discourse/role-classifier.js +141 -0
- package/dist/discourse/role-classifier.js.map +1 -0
- package/dist/formalize.d.ts +25 -0
- package/dist/formalize.d.ts.map +1 -0
- package/dist/formalize.js +123 -0
- package/dist/formalize.js.map +1 -0
- package/dist/formula/connectors.d.ts +31 -0
- package/dist/formula/connectors.d.ts.map +1 -0
- package/dist/formula/connectors.js +90 -0
- package/dist/formula/connectors.js.map +1 -0
- package/dist/formula/first-order.d.ts +11 -0
- package/dist/formula/first-order.d.ts.map +1 -0
- package/dist/formula/first-order.js +156 -0
- package/dist/formula/first-order.js.map +1 -0
- package/dist/formula/index.d.ts +15 -0
- package/dist/formula/index.d.ts.map +1 -0
- package/dist/formula/index.js +49 -0
- package/dist/formula/index.js.map +1 -0
- package/dist/formula/modal.d.ts +11 -0
- package/dist/formula/modal.d.ts.map +1 -0
- package/dist/formula/modal.js +138 -0
- package/dist/formula/modal.js.map +1 -0
- package/dist/formula/propositional.d.ts +11 -0
- package/dist/formula/propositional.d.ts.map +1 -0
- package/dist/formula/propositional.js +241 -0
- package/dist/formula/propositional.js.map +1 -0
- package/dist/formula/temporal.d.ts +11 -0
- package/dist/formula/temporal.d.ts.map +1 -0
- package/dist/formula/temporal.js +134 -0
- package/dist/formula/temporal.js.map +1 -0
- package/dist/generator/index.d.ts +6 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +12 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/st-emitter.d.ts +23 -0
- package/dist/generator/st-emitter.d.ts.map +1 -0
- package/dist/generator/st-emitter.js +134 -0
- package/dist/generator/st-emitter.js.map +1 -0
- package/dist/generator/validator.d.ts +22 -0
- package/dist/generator/validator.d.ts.map +1 -0
- package/dist/generator/validator.js +53 -0
- package/dist/generator/validator.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/nlp/index.d.ts +8 -0
- package/dist/nlp/index.d.ts.map +1 -0
- package/dist/nlp/index.js +17 -0
- package/dist/nlp/index.js.map +1 -0
- package/dist/nlp/stemmer-en.d.ts +10 -0
- package/dist/nlp/stemmer-en.d.ts.map +1 -0
- package/dist/nlp/stemmer-en.js +149 -0
- package/dist/nlp/stemmer-en.js.map +1 -0
- package/dist/nlp/stemmer-es.d.ts +10 -0
- package/dist/nlp/stemmer-es.d.ts.map +1 -0
- package/dist/nlp/stemmer-es.js +117 -0
- package/dist/nlp/stemmer-es.js.map +1 -0
- package/dist/nlp/stopwords.d.ts +11 -0
- package/dist/nlp/stopwords.d.ts.map +1 -0
- package/dist/nlp/stopwords.js +73 -0
- package/dist/nlp/stopwords.js.map +1 -0
- package/dist/nlp/tokenizer.d.ts +13 -0
- package/dist/nlp/tokenizer.d.ts.map +1 -0
- package/dist/nlp/tokenizer.js +36 -0
- package/dist/nlp/tokenizer.js.map +1 -0
- package/dist/segmenter/clause-splitter.d.ts +15 -0
- package/dist/segmenter/clause-splitter.d.ts.map +1 -0
- package/dist/segmenter/clause-splitter.js +192 -0
- package/dist/segmenter/clause-splitter.js.map +1 -0
- package/dist/segmenter/index.d.ts +11 -0
- package/dist/segmenter/index.d.ts.map +1 -0
- package/dist/segmenter/index.js +25 -0
- package/dist/segmenter/index.js.map +1 -0
- package/dist/segmenter/sentence-splitter.d.ts +13 -0
- package/dist/segmenter/sentence-splitter.d.ts.map +1 -0
- package/dist/segmenter/sentence-splitter.js +69 -0
- package/dist/segmenter/sentence-splitter.js.map +1 -0
- package/dist/types.d.ts +184 -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 +51 -0
- package/readme.md +1 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MARKERS_ES = void 0;
|
|
4
|
+
exports.MARKERS_ES = [
|
|
5
|
+
// ── Condicionales ───────────────────────────────
|
|
6
|
+
{ text: 'si y solo si', role: 'biconditional', language: 'es', priority: 10 },
|
|
7
|
+
{ text: 'si y sólo si', role: 'biconditional', language: 'es', priority: 10 },
|
|
8
|
+
{ text: 'siempre y cuando', role: 'condition', language: 'es', priority: 9 },
|
|
9
|
+
{ text: 'en el caso de que', role: 'condition', language: 'es', priority: 9 },
|
|
10
|
+
{ text: 'a condición de que', role: 'condition', language: 'es', priority: 9 },
|
|
11
|
+
{ text: 'con tal de que', role: 'condition', language: 'es', priority: 8 },
|
|
12
|
+
{ text: 'siempre que', role: 'condition', language: 'es', priority: 8 },
|
|
13
|
+
{ text: 'en caso de que', role: 'condition', language: 'es', priority: 8 },
|
|
14
|
+
{ text: 'con la condición de que', role: 'condition', language: 'es', priority: 9 },
|
|
15
|
+
{ text: 'suponiendo que', role: 'condition', language: 'es', priority: 7 },
|
|
16
|
+
{ text: 'supongamos que', role: 'condition', language: 'es', priority: 7 },
|
|
17
|
+
{ text: 'en caso de', role: 'condition', language: 'es', priority: 7 },
|
|
18
|
+
{ text: 'si', role: 'condition', language: 'es', priority: 3 },
|
|
19
|
+
// ── Consecuentes / Conclusiones ─────────────────
|
|
20
|
+
{ text: 'por consiguiente', role: 'conclusion', language: 'es', priority: 8 },
|
|
21
|
+
{ text: 'en consecuencia', role: 'conclusion', language: 'es', priority: 8 },
|
|
22
|
+
{ text: 'de lo cual se sigue', role: 'conclusion', language: 'es', priority: 9 },
|
|
23
|
+
{ text: 'se sigue que', role: 'conclusion', language: 'es', priority: 8 },
|
|
24
|
+
{ text: 'se concluye que', role: 'conclusion', language: 'es', priority: 8 },
|
|
25
|
+
{ text: 'por lo tanto', role: 'conclusion', language: 'es', priority: 8 },
|
|
26
|
+
{ text: 'por lo cual', role: 'conclusion', language: 'es', priority: 7 },
|
|
27
|
+
{ text: 'por ende', role: 'conclusion', language: 'es', priority: 7 },
|
|
28
|
+
{ text: 'de modo que', role: 'conclusion', language: 'es', priority: 7 },
|
|
29
|
+
{ text: 'de manera que', role: 'conclusion', language: 'es', priority: 7 },
|
|
30
|
+
{ text: 'de ahí que', role: 'conclusion', language: 'es', priority: 7 },
|
|
31
|
+
{ text: 'por eso', role: 'conclusion', language: 'es', priority: 6 },
|
|
32
|
+
{ text: 'por tanto', role: 'conclusion', language: 'es', priority: 7 },
|
|
33
|
+
{ text: 'por ello', role: 'conclusion', language: 'es', priority: 6 },
|
|
34
|
+
{ text: 'en conclusión', role: 'conclusion', language: 'es', priority: 8 },
|
|
35
|
+
{ text: 'entonces', role: 'consequent', language: 'es', priority: 5 },
|
|
36
|
+
{ text: 'luego', role: 'conclusion', language: 'es', priority: 5 },
|
|
37
|
+
{ text: 'así que', role: 'conclusion', language: 'es', priority: 6 },
|
|
38
|
+
{ text: 'así pues', role: 'conclusion', language: 'es', priority: 6 },
|
|
39
|
+
// ── Premisas / Razones ──────────────────────────
|
|
40
|
+
{ text: 'dado que', role: 'premise', language: 'es', priority: 7 },
|
|
41
|
+
{ text: 'puesto que', role: 'premise', language: 'es', priority: 7 },
|
|
42
|
+
{ text: 'ya que', role: 'premise', language: 'es', priority: 6 },
|
|
43
|
+
{ text: 'debido a que', role: 'premise', language: 'es', priority: 7 },
|
|
44
|
+
{ text: 'en virtud de que', role: 'premise', language: 'es', priority: 8 },
|
|
45
|
+
{ text: 'considerando que', role: 'premise', language: 'es', priority: 7 },
|
|
46
|
+
{ text: 'teniendo en cuenta que', role: 'premise', language: 'es', priority: 8 },
|
|
47
|
+
{ text: 'sabiendo que', role: 'premise', language: 'es', priority: 6 },
|
|
48
|
+
{ text: 'visto que', role: 'premise', language: 'es', priority: 6 },
|
|
49
|
+
{ text: 'porque', role: 'premise', language: 'es', priority: 5 },
|
|
50
|
+
{ text: 'pues', role: 'premise', language: 'es', priority: 4 },
|
|
51
|
+
// ── Conjunción ──────────────────────────────────
|
|
52
|
+
{ text: 'además de que', role: 'and', language: 'es', priority: 7 },
|
|
53
|
+
{ text: 'y además', role: 'and', language: 'es', priority: 6 },
|
|
54
|
+
{ text: 'así como', role: 'and', language: 'es', priority: 6 },
|
|
55
|
+
{ text: 'asimismo', role: 'and', language: 'es', priority: 6 },
|
|
56
|
+
{ text: 'igualmente', role: 'and', language: 'es', priority: 5 },
|
|
57
|
+
{ text: 'también', role: 'and', language: 'es', priority: 5 },
|
|
58
|
+
{ text: 'además', role: 'and', language: 'es', priority: 5 },
|
|
59
|
+
// ── Disyunción ──────────────────────────────────
|
|
60
|
+
{ text: 'o bien', role: 'or', language: 'es', priority: 6 },
|
|
61
|
+
{ text: 'ya sea', role: 'or', language: 'es', priority: 6 },
|
|
62
|
+
{ text: 'ya sea que', role: 'or', language: 'es', priority: 7 },
|
|
63
|
+
// ── Adversativas ────────────────────────────────
|
|
64
|
+
{ text: 'sin embargo', role: 'adversative', language: 'es', priority: 7 },
|
|
65
|
+
{ text: 'no obstante', role: 'adversative', language: 'es', priority: 7 },
|
|
66
|
+
{ text: 'a pesar de que', role: 'adversative', language: 'es', priority: 8 },
|
|
67
|
+
{ text: 'a pesar de', role: 'adversative', language: 'es', priority: 7 },
|
|
68
|
+
{ text: 'en cambio', role: 'adversative', language: 'es', priority: 6 },
|
|
69
|
+
{ text: 'por el contrario', role: 'adversative', language: 'es', priority: 7 },
|
|
70
|
+
{ text: 'con todo', role: 'adversative', language: 'es', priority: 6 },
|
|
71
|
+
{ text: 'pero', role: 'adversative', language: 'es', priority: 5 },
|
|
72
|
+
{ text: 'aunque', role: 'adversative', language: 'es', priority: 5 },
|
|
73
|
+
{ text: 'mas', role: 'adversative', language: 'es', priority: 4 },
|
|
74
|
+
// ── Negación ────────────────────────────────────
|
|
75
|
+
{ text: 'no es el caso que', role: 'negation', language: 'es', priority: 9 },
|
|
76
|
+
{ text: 'no es cierto que', role: 'negation', language: 'es', priority: 9 },
|
|
77
|
+
{ text: 'no es verdad que', role: 'negation', language: 'es', priority: 9 },
|
|
78
|
+
{ text: 'de ninguna manera', role: 'negation', language: 'es', priority: 8 },
|
|
79
|
+
{ text: 'en ningún caso', role: 'negation', language: 'es', priority: 8 },
|
|
80
|
+
{ text: 'nunca', role: 'negation', language: 'es', priority: 5 },
|
|
81
|
+
{ text: 'jamás', role: 'negation', language: 'es', priority: 5 },
|
|
82
|
+
{ text: 'ningún', role: 'negation', language: 'es', priority: 5 },
|
|
83
|
+
{ text: 'ninguno', role: 'negation', language: 'es', priority: 5 },
|
|
84
|
+
{ text: 'no', role: 'negation', language: 'es', priority: 3 },
|
|
85
|
+
// ── Cuantificadores universales ─────────────────
|
|
86
|
+
{ text: 'para todo', role: 'universal', language: 'es', priority: 7 },
|
|
87
|
+
{ text: 'todos los', role: 'universal', language: 'es', priority: 6 },
|
|
88
|
+
{ text: 'todas las', role: 'universal', language: 'es', priority: 6 },
|
|
89
|
+
{ text: 'cualquier', role: 'universal', language: 'es', priority: 5 },
|
|
90
|
+
{ text: 'todo', role: 'universal', language: 'es', priority: 4 },
|
|
91
|
+
{ text: 'todos', role: 'universal', language: 'es', priority: 4 },
|
|
92
|
+
{ text: 'cada', role: 'universal', language: 'es', priority: 5 },
|
|
93
|
+
{ text: 'siempre', role: 'universal', language: 'es', priority: 4 },
|
|
94
|
+
// ── Cuantificadores existenciales ───────────────
|
|
95
|
+
{ text: 'existe al menos un', role: 'existential', language: 'es', priority: 8 },
|
|
96
|
+
{ text: 'existe al menos', role: 'existential', language: 'es', priority: 7 },
|
|
97
|
+
{ text: 'hay al menos', role: 'existential', language: 'es', priority: 7 },
|
|
98
|
+
{ text: 'existe algún', role: 'existential', language: 'es', priority: 7 },
|
|
99
|
+
{ text: 'algún', role: 'existential', language: 'es', priority: 5 },
|
|
100
|
+
{ text: 'alguno', role: 'existential', language: 'es', priority: 5 },
|
|
101
|
+
{ text: 'algunos', role: 'existential', language: 'es', priority: 5 },
|
|
102
|
+
{ text: 'existe', role: 'existential', language: 'es', priority: 4 },
|
|
103
|
+
{ text: 'hay', role: 'existential', language: 'es', priority: 3 },
|
|
104
|
+
// ── Modal: Necesidad ────────────────────────────
|
|
105
|
+
{ text: 'es necesario que', role: 'necessity', language: 'es', priority: 8 },
|
|
106
|
+
{ text: 'necesariamente', role: 'necessity', language: 'es', priority: 7 },
|
|
107
|
+
{ text: 'obligatoriamente', role: 'necessity', language: 'es', priority: 7 },
|
|
108
|
+
{ text: 'es obligatorio', role: 'necessity', language: 'es', priority: 7 },
|
|
109
|
+
{ text: 'debe', role: 'necessity', language: 'es', priority: 4 },
|
|
110
|
+
{ text: 'deben', role: 'necessity', language: 'es', priority: 4 },
|
|
111
|
+
// ── Modal: Posibilidad ──────────────────────────
|
|
112
|
+
{ text: 'es posible que', role: 'possibility', language: 'es', priority: 8 },
|
|
113
|
+
{ text: 'posiblemente', role: 'possibility', language: 'es', priority: 7 },
|
|
114
|
+
{ text: 'está permitido', role: 'possibility', language: 'es', priority: 7 },
|
|
115
|
+
{ text: 'puede que', role: 'possibility', language: 'es', priority: 6 },
|
|
116
|
+
{ text: 'quizás', role: 'possibility', language: 'es', priority: 5 },
|
|
117
|
+
{ text: 'tal vez', role: 'possibility', language: 'es', priority: 5 },
|
|
118
|
+
{ text: 'puede', role: 'possibility', language: 'es', priority: 3 },
|
|
119
|
+
// ── Bicondicional ───────────────────────────────
|
|
120
|
+
{ text: 'equivale a decir que', role: 'biconditional', language: 'es', priority: 9 },
|
|
121
|
+
{ text: 'equivale a', role: 'biconditional', language: 'es', priority: 7 },
|
|
122
|
+
{ text: 'es equivalente a', role: 'biconditional', language: 'es', priority: 8 },
|
|
123
|
+
// ── Temporales ──────────────────────────────────
|
|
124
|
+
{ text: 'después de que', role: 'temporal_next', language: 'es', priority: 7 },
|
|
125
|
+
{ text: 'después de', role: 'temporal_next', language: 'es', priority: 6 },
|
|
126
|
+
{ text: 'a continuación', role: 'temporal_next', language: 'es', priority: 6 },
|
|
127
|
+
{ text: 'hasta que', role: 'temporal_until', language: 'es', priority: 7 },
|
|
128
|
+
{ text: 'mientras que', role: 'temporal', language: 'es', priority: 6 },
|
|
129
|
+
{ text: 'mientras', role: 'temporal', language: 'es', priority: 5 },
|
|
130
|
+
{ text: 'antes de que', role: 'temporal', language: 'es', priority: 7 },
|
|
131
|
+
{ text: 'antes de', role: 'temporal', language: 'es', priority: 6 },
|
|
132
|
+
{ text: 'después', role: 'temporal_next', language: 'es', priority: 4 },
|
|
133
|
+
];
|
|
134
|
+
//# sourceMappingURL=markers-es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markers-es.js","sourceRoot":"","sources":["../../src/discourse/markers-es.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Detector — Detecta patrones argumentales conocidos
|
|
3
|
+
*
|
|
4
|
+
* Analiza la estructura argumental global para identificar
|
|
5
|
+
* Modus Ponens, Modus Tollens, silogismos, etc.
|
|
6
|
+
*/
|
|
7
|
+
import type { AnalyzedSentence, ArgumentPattern, ArgumentStructure } from '../types';
|
|
8
|
+
/**
|
|
9
|
+
* Detecta patrones argumentales en un conjunto de oraciones analizadas.
|
|
10
|
+
*/
|
|
11
|
+
export declare function detectPatterns(sentences: AnalyzedSentence[]): ArgumentPattern[];
|
|
12
|
+
/**
|
|
13
|
+
* Construye la estructura argumental a partir de oraciones analizadas.
|
|
14
|
+
*/
|
|
15
|
+
export declare function buildArgumentStructure(sentences: AnalyzedSentence[]): ArgumentStructure;
|
|
16
|
+
//# sourceMappingURL=pattern-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-detector.d.ts","sourceRoot":"","sources":["../../src/discourse/pattern-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAErF;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,gBAAgB,EAAE,GAAG,eAAe,EAAE,CA0E/E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,EAAE,GAAG,iBAAiB,CAqCvF"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.detectPatterns = detectPatterns;
|
|
4
|
+
exports.buildArgumentStructure = buildArgumentStructure;
|
|
5
|
+
/**
|
|
6
|
+
* Detecta patrones argumentales en un conjunto de oraciones analizadas.
|
|
7
|
+
*/
|
|
8
|
+
function detectPatterns(sentences) {
|
|
9
|
+
const patterns = [];
|
|
10
|
+
const conditionals = sentences.filter(s => s.type === 'conditional');
|
|
11
|
+
const assertions = sentences.filter(s => s.type === 'assertion' || s.clauses.some(c => c.role === 'premise'));
|
|
12
|
+
const conclusions = sentences.filter(s => s.clauses.some(c => c.role === 'conclusion'));
|
|
13
|
+
const negations = sentences.filter(s => s.type === 'negation' || s.clauses.some(c => c.modifiers.some(m => m.type === 'negation')));
|
|
14
|
+
// Modus Ponens: A→B, A ⊢ B
|
|
15
|
+
if (conditionals.length > 0 && assertions.length > 0 && conclusions.length > 0) {
|
|
16
|
+
patterns.push('modus_ponens');
|
|
17
|
+
}
|
|
18
|
+
// Modus Tollens: A→B, ¬B ⊢ ¬A
|
|
19
|
+
if (conditionals.length > 0 && negations.length > 0 && conclusions.length > 0) {
|
|
20
|
+
const conclusionHasNegation = conclusions.some(s => s.clauses.some(c => c.modifiers.some(m => m.type === 'negation')));
|
|
21
|
+
if (conclusionHasNegation) {
|
|
22
|
+
patterns.push('modus_tollens');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// Silogismo hipotético: A→B, B→C ⊢ A→C
|
|
26
|
+
if (conditionals.length >= 2) {
|
|
27
|
+
patterns.push('hypothetical_syllogism');
|
|
28
|
+
}
|
|
29
|
+
// Silogismo disyuntivo: A∨B, ¬A ⊢ B
|
|
30
|
+
const disjunctions = sentences.filter(s => s.type === 'disjunction');
|
|
31
|
+
if (disjunctions.length > 0 && negations.length > 0) {
|
|
32
|
+
patterns.push('disjunctive_syllogism');
|
|
33
|
+
}
|
|
34
|
+
// Cadena condicional: múltiples condicionales encadenadas
|
|
35
|
+
if (conditionals.length >= 3) {
|
|
36
|
+
patterns.push('conditional_chain');
|
|
37
|
+
}
|
|
38
|
+
// Generalización universal: predicados con cuantificador universal
|
|
39
|
+
const universals = sentences.filter(s => s.type === 'universal');
|
|
40
|
+
if (universals.length > 0) {
|
|
41
|
+
patterns.push('universal_generalization');
|
|
42
|
+
}
|
|
43
|
+
// Instanciación universal: universal + instancia concreta
|
|
44
|
+
if (universals.length > 0 && assertions.length > 0) {
|
|
45
|
+
patterns.push('universal_instantiation');
|
|
46
|
+
}
|
|
47
|
+
// Conjunción introducción: múltiples aserciones unidas por "y"
|
|
48
|
+
const conjunctions = sentences.filter(s => s.type === 'conjunction');
|
|
49
|
+
if (conjunctions.length > 0) {
|
|
50
|
+
patterns.push('conjunction_introduction');
|
|
51
|
+
}
|
|
52
|
+
// Bicondicional
|
|
53
|
+
const biconditionals = sentences.filter(s => s.type === 'biconditional');
|
|
54
|
+
if (biconditionals.length > 0) {
|
|
55
|
+
patterns.push('biconditional_introduction');
|
|
56
|
+
}
|
|
57
|
+
// Si no se detectó ningún patrón complejo, es aserción simple
|
|
58
|
+
if (patterns.length === 0 && sentences.length > 0) {
|
|
59
|
+
patterns.push('simple_assertion');
|
|
60
|
+
}
|
|
61
|
+
return patterns;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Construye la estructura argumental a partir de oraciones analizadas.
|
|
65
|
+
*/
|
|
66
|
+
function buildArgumentStructure(sentences) {
|
|
67
|
+
const premises = [];
|
|
68
|
+
const conclusions = [];
|
|
69
|
+
const conditions = [];
|
|
70
|
+
sentences.forEach((sentence, idx) => {
|
|
71
|
+
const hasPremise = sentence.clauses.some(c => c.role === 'premise' || c.role === 'condition');
|
|
72
|
+
const hasConclusion = sentence.clauses.some(c => c.role === 'conclusion' || c.role === 'consequent');
|
|
73
|
+
if (sentence.type === 'conditional') {
|
|
74
|
+
conditions.push(idx);
|
|
75
|
+
}
|
|
76
|
+
if (hasPremise && !hasConclusion) {
|
|
77
|
+
premises.push(idx);
|
|
78
|
+
}
|
|
79
|
+
else if (hasConclusion) {
|
|
80
|
+
conclusions.push(idx);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// Oraciones sin roles explícitos son premisas por defecto
|
|
84
|
+
premises.push(idx);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
// Construir relaciones: premisas soportan conclusiones
|
|
88
|
+
const relations = conclusions.flatMap(concIdx => premises.map(premIdx => ({
|
|
89
|
+
from: premIdx,
|
|
90
|
+
to: concIdx,
|
|
91
|
+
type: 'supports',
|
|
92
|
+
})));
|
|
93
|
+
return { premises, conclusions, conditions, relations };
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=pattern-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-detector.js","sourceRoot":"","sources":["../../src/discourse/pattern-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Role Classifier — Asigna roles lógicos a cláusulas
|
|
3
|
+
*
|
|
4
|
+
* Usa marcadores discursivos y posición contextual para determinar
|
|
5
|
+
* si una cláusula es premisa, conclusión, condición, etc.
|
|
6
|
+
*/
|
|
7
|
+
import type { Clause, Language, AnalyzedSentence } from '../types';
|
|
8
|
+
/**
|
|
9
|
+
* Clasifica las cláusulas de una oración segmentada, asignando roles y modificadores.
|
|
10
|
+
*/
|
|
11
|
+
export declare function classifyClauses(clauses: Clause[], language?: Language): AnalyzedSentence;
|
|
12
|
+
//# sourceMappingURL=role-classifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-classifier.d.ts","sourceRoot":"","sources":["../../src/discourse/role-classifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACV,MAAM,EACM,QAAQ,EAAE,gBAAgB,EACvC,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAE,QAAe,GAAG,gBAAgB,CAoB9F"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.classifyClauses = classifyClauses;
|
|
4
|
+
/**
|
|
5
|
+
* Clasifica las cláusulas de una oración segmentada, asignando roles y modificadores.
|
|
6
|
+
*/
|
|
7
|
+
function classifyClauses(clauses, language = 'es') {
|
|
8
|
+
const analyzed = clauses.map(clause => {
|
|
9
|
+
const role = inferRole(clause, clauses);
|
|
10
|
+
const modifiers = extractModifiers(clause, language);
|
|
11
|
+
return {
|
|
12
|
+
text: clause.text,
|
|
13
|
+
role,
|
|
14
|
+
markers: clause.markers,
|
|
15
|
+
modifiers,
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
const type = inferSentenceType(analyzed);
|
|
19
|
+
return {
|
|
20
|
+
original: clauses.map(c => c.text).join(', '),
|
|
21
|
+
clauses: analyzed,
|
|
22
|
+
type,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Infiere el rol de una cláusula basándose en sus marcadores y contexto.
|
|
27
|
+
*/
|
|
28
|
+
function inferRole(clause, allClauses) {
|
|
29
|
+
// Si tiene marcadores explícitos, usar el de mayor prioridad
|
|
30
|
+
if (clause.markers.length > 0) {
|
|
31
|
+
const primaryMarker = clause.markers.reduce((best, m) => {
|
|
32
|
+
const bestDef = best;
|
|
33
|
+
return bestDef ? best : m;
|
|
34
|
+
});
|
|
35
|
+
return markerRoleToClauseRole(primaryMarker.role);
|
|
36
|
+
}
|
|
37
|
+
// Sin marcadores: inferir por posición
|
|
38
|
+
if (allClauses.length === 1)
|
|
39
|
+
return 'assertion';
|
|
40
|
+
// Si es la primera cláusula sin marcador, probablemente es premisa o condición
|
|
41
|
+
if (clause.index === 0)
|
|
42
|
+
return 'premise';
|
|
43
|
+
// Si es la última cláusula y hay marcadores de conclusión antes, es conclusión
|
|
44
|
+
if (clause.index === allClauses.length - 1) {
|
|
45
|
+
const hasConclusion = allClauses.some(c => c.markers.some(m => m.role === 'conclusion' || m.role === 'consequent'));
|
|
46
|
+
if (hasConclusion)
|
|
47
|
+
return 'conclusion';
|
|
48
|
+
}
|
|
49
|
+
// Default: assertion
|
|
50
|
+
return 'assertion';
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Mapea roles de marcadores a roles de cláusulas.
|
|
54
|
+
*/
|
|
55
|
+
function markerRoleToClauseRole(role) {
|
|
56
|
+
switch (role) {
|
|
57
|
+
case 'condition': return 'condition';
|
|
58
|
+
case 'consequent': return 'consequent';
|
|
59
|
+
case 'conclusion': return 'conclusion';
|
|
60
|
+
case 'premise': return 'premise';
|
|
61
|
+
case 'and': return 'conjunction';
|
|
62
|
+
case 'or': return 'disjunction';
|
|
63
|
+
case 'adversative': return 'premise'; // adversativas generalmente introducen contra-premisas
|
|
64
|
+
case 'negation': return 'negation';
|
|
65
|
+
case 'biconditional': return 'condition';
|
|
66
|
+
default: return 'assertion';
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Extrae modificadores lógicos de una cláusula.
|
|
71
|
+
*/
|
|
72
|
+
function extractModifiers(clause, _language) {
|
|
73
|
+
const modifiers = [];
|
|
74
|
+
for (const marker of clause.markers) {
|
|
75
|
+
switch (marker.role) {
|
|
76
|
+
case 'negation':
|
|
77
|
+
modifiers.push({ type: 'negation', text: marker.text });
|
|
78
|
+
break;
|
|
79
|
+
case 'universal':
|
|
80
|
+
modifiers.push({ type: 'universal', text: marker.text });
|
|
81
|
+
break;
|
|
82
|
+
case 'existential':
|
|
83
|
+
modifiers.push({ type: 'existential', text: marker.text });
|
|
84
|
+
break;
|
|
85
|
+
case 'necessity':
|
|
86
|
+
modifiers.push({ type: 'necessity', text: marker.text });
|
|
87
|
+
break;
|
|
88
|
+
case 'possibility':
|
|
89
|
+
modifiers.push({ type: 'possibility', text: marker.text });
|
|
90
|
+
break;
|
|
91
|
+
case 'temporal_next':
|
|
92
|
+
modifiers.push({ type: 'temporal_next', text: marker.text });
|
|
93
|
+
break;
|
|
94
|
+
case 'temporal_until':
|
|
95
|
+
modifiers.push({ type: 'temporal_until', text: marker.text });
|
|
96
|
+
break;
|
|
97
|
+
case 'temporal_always':
|
|
98
|
+
modifiers.push({ type: 'temporal_always', text: marker.text });
|
|
99
|
+
break;
|
|
100
|
+
case 'temporal_eventually':
|
|
101
|
+
modifiers.push({ type: 'temporal_eventually', text: marker.text });
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return modifiers;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Infiere el tipo de oración a partir de las cláusulas analizadas.
|
|
109
|
+
*/
|
|
110
|
+
function inferSentenceType(clauses) {
|
|
111
|
+
const allMarkerRoles = new Set();
|
|
112
|
+
for (const c of clauses) {
|
|
113
|
+
for (const m of c.markers) {
|
|
114
|
+
allMarkerRoles.add(m.role);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (allMarkerRoles.has('biconditional'))
|
|
118
|
+
return 'biconditional';
|
|
119
|
+
if (allMarkerRoles.has('condition') || allMarkerRoles.has('consequent'))
|
|
120
|
+
return 'conditional';
|
|
121
|
+
if (allMarkerRoles.has('necessity') || allMarkerRoles.has('possibility'))
|
|
122
|
+
return 'modal';
|
|
123
|
+
if (allMarkerRoles.has('universal') || allMarkerRoles.has('existential')) {
|
|
124
|
+
return allMarkerRoles.has('universal') ? 'universal' : 'existential';
|
|
125
|
+
}
|
|
126
|
+
if (allMarkerRoles.has('temporal') || allMarkerRoles.has('temporal_next') ||
|
|
127
|
+
allMarkerRoles.has('temporal_until') || allMarkerRoles.has('temporal_always') ||
|
|
128
|
+
allMarkerRoles.has('temporal_eventually'))
|
|
129
|
+
return 'temporal';
|
|
130
|
+
if (allMarkerRoles.has('or'))
|
|
131
|
+
return 'disjunction';
|
|
132
|
+
if (allMarkerRoles.has('and'))
|
|
133
|
+
return 'conjunction';
|
|
134
|
+
if (allMarkerRoles.has('negation'))
|
|
135
|
+
return 'negation';
|
|
136
|
+
if (clauses.some(c => c.role === 'conclusion') && clauses.some(c => c.role === 'premise')) {
|
|
137
|
+
return 'complex';
|
|
138
|
+
}
|
|
139
|
+
return 'assertion';
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=role-classifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-classifier.js","sourceRoot":"","sources":["../../src/discourse/role-classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* formalize() — Función stateless principal de Autologic
|
|
3
|
+
*
|
|
4
|
+
* Toma texto natural + opciones y produce código ST válido.
|
|
5
|
+
* Pipeline: Segment → Analyze → Extract Atoms → Build Formulas → Emit ST → Validate
|
|
6
|
+
*/
|
|
7
|
+
import type { FormalizeOptions, FormalizationResult } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Formaliza texto natural a código ST.
|
|
10
|
+
*
|
|
11
|
+
* @param text Texto en lenguaje natural a formalizar
|
|
12
|
+
* @param options Opciones de formalización
|
|
13
|
+
* @returns Resultado con código ST, análisis y diagnósticos
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* const result = formalize(
|
|
18
|
+
* "Si llueve, entonces la calle se moja. Está lloviendo. Por lo tanto, la calle está mojada.",
|
|
19
|
+
* { profile: 'classical.propositional', language: 'es' }
|
|
20
|
+
* );
|
|
21
|
+
* console.log(result.stCode);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function formalize(text: string, options?: FormalizeOptions): FormalizationResult;
|
|
25
|
+
//# sourceMappingURL=formalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formalize.d.ts","sourceRoot":"","sources":["../src/formalize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAiD,MAAM,SAAS,CAAC;AAkBpH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,mBAAmB,CAoF3F"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formalize = formalize;
|
|
4
|
+
const segmenter_1 = require("./segmenter");
|
|
5
|
+
const discourse_1 = require("./discourse");
|
|
6
|
+
const atoms_1 = require("./atoms");
|
|
7
|
+
const formula_1 = require("./formula");
|
|
8
|
+
const st_emitter_1 = require("./generator/st-emitter");
|
|
9
|
+
const validator_1 = require("./generator/validator");
|
|
10
|
+
/** Opciones por defecto */
|
|
11
|
+
const DEFAULTS = {
|
|
12
|
+
profile: 'classical.propositional',
|
|
13
|
+
language: 'es',
|
|
14
|
+
atomStyle: 'keywords',
|
|
15
|
+
includeComments: true,
|
|
16
|
+
validateOutput: true,
|
|
17
|
+
maxClauseDepth: 3,
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Formaliza texto natural a código ST.
|
|
21
|
+
*
|
|
22
|
+
* @param text Texto en lenguaje natural a formalizar
|
|
23
|
+
* @param options Opciones de formalización
|
|
24
|
+
* @returns Resultado con código ST, análisis y diagnósticos
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* const result = formalize(
|
|
29
|
+
* "Si llueve, entonces la calle se moja. Está lloviendo. Por lo tanto, la calle está mojada.",
|
|
30
|
+
* { profile: 'classical.propositional', language: 'es' }
|
|
31
|
+
* );
|
|
32
|
+
* console.log(result.stCode);
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
function formalize(text, options = {}) {
|
|
36
|
+
const opts = { ...DEFAULTS, ...options };
|
|
37
|
+
const diagnostics = [];
|
|
38
|
+
// ── Validación de entrada ───────────────────
|
|
39
|
+
if (!text || !text.trim()) {
|
|
40
|
+
return emptyResult('El texto de entrada está vacío.', diagnostics);
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
// ── 1. Segmentación ─────────────────────────
|
|
44
|
+
const sentences = (0, segmenter_1.segment)(text, opts.language);
|
|
45
|
+
if (sentences.length === 0) {
|
|
46
|
+
return emptyResult('No se detectaron oraciones en el texto.', diagnostics);
|
|
47
|
+
}
|
|
48
|
+
// ── 2. Análisis discursivo ──────────────────
|
|
49
|
+
const analysis = (0, discourse_1.analyzeDiscourse)(sentences, opts.language);
|
|
50
|
+
// ── 3. Extracción de átomos ─────────────────
|
|
51
|
+
const { atoms, entries: atomEntries } = (0, atoms_1.extractAtoms)(analysis.sentences, {
|
|
52
|
+
language: opts.language,
|
|
53
|
+
atomStyle: opts.atomStyle,
|
|
54
|
+
profile: opts.profile,
|
|
55
|
+
});
|
|
56
|
+
// ── 4. Construcción de fórmulas ─────────────
|
|
57
|
+
const formulas = (0, formula_1.buildFormulas)(analysis.sentences, atomEntries, opts.profile, analysis.detectedPatterns);
|
|
58
|
+
// ── 5. Generación de código ST ──────────────
|
|
59
|
+
const { code, diagnostics: emitDiags } = (0, st_emitter_1.emitST)({
|
|
60
|
+
profile: opts.profile,
|
|
61
|
+
language: opts.language,
|
|
62
|
+
includeComments: opts.includeComments,
|
|
63
|
+
atoms,
|
|
64
|
+
formulas,
|
|
65
|
+
detectedPatterns: analysis.detectedPatterns,
|
|
66
|
+
});
|
|
67
|
+
diagnostics.push(...emitDiags);
|
|
68
|
+
// ── 6. Validación (opcional) ────────────────
|
|
69
|
+
let stValidation;
|
|
70
|
+
if (opts.validateOutput) {
|
|
71
|
+
stValidation = (0, validator_1.validateST)(code);
|
|
72
|
+
diagnostics.push(...(0, validator_1.validationToDiagnostics)(stValidation));
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
ok: diagnostics.every(d => d.severity !== 'error'),
|
|
76
|
+
stCode: code,
|
|
77
|
+
analysis,
|
|
78
|
+
atoms,
|
|
79
|
+
formulas,
|
|
80
|
+
diagnostics,
|
|
81
|
+
stValidation,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
86
|
+
diagnostics.push({
|
|
87
|
+
severity: 'error',
|
|
88
|
+
message: `Error en pipeline de formalización: ${message}`,
|
|
89
|
+
code: 'PIPELINE_ERROR',
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
ok: false,
|
|
93
|
+
stCode: '',
|
|
94
|
+
analysis: {
|
|
95
|
+
sentences: [],
|
|
96
|
+
argumentStructure: { premises: [], conclusions: [], conditions: [], relations: [] },
|
|
97
|
+
detectedPatterns: [],
|
|
98
|
+
},
|
|
99
|
+
atoms: new Map(),
|
|
100
|
+
formulas: [],
|
|
101
|
+
diagnostics,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Resultado vacío con error.
|
|
107
|
+
*/
|
|
108
|
+
function emptyResult(message, diagnostics) {
|
|
109
|
+
diagnostics.push({ severity: 'warning', message, code: 'EMPTY_INPUT' });
|
|
110
|
+
return {
|
|
111
|
+
ok: false,
|
|
112
|
+
stCode: '',
|
|
113
|
+
analysis: {
|
|
114
|
+
sentences: [],
|
|
115
|
+
argumentStructure: { premises: [], conclusions: [], conditions: [], relations: [] },
|
|
116
|
+
detectedPatterns: [],
|
|
117
|
+
},
|
|
118
|
+
atoms: new Map(),
|
|
119
|
+
formulas: [],
|
|
120
|
+
diagnostics,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=formalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formalize.js","sourceRoot":"","sources":["../src/formalize.ts"],"names":[],"mappings":"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"}
|