@stevenvo780/autologic 1.0.0 → 2.0.1
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/atoms/coreference.d.ts +7 -2
- package/dist/atoms/coreference.d.ts.map +1 -1
- package/dist/atoms/coreference.js +93 -2
- package/dist/atoms/coreference.js.map +1 -1
- package/dist/atoms/index.d.ts.map +1 -1
- package/dist/atoms/index.js +16 -0
- package/dist/atoms/index.js.map +1 -1
- package/dist/discourse/markers-es.d.ts.map +1 -1
- package/dist/discourse/markers-es.js +3 -1
- package/dist/discourse/markers-es.js.map +1 -1
- package/dist/discourse/pattern-detector.d.ts.map +1 -1
- package/dist/discourse/pattern-detector.js +9 -3
- package/dist/discourse/pattern-detector.js.map +1 -1
- package/dist/discourse/role-classifier.d.ts.map +1 -1
- package/dist/discourse/role-classifier.js +50 -14
- package/dist/discourse/role-classifier.js.map +1 -1
- package/dist/formula/argument-builder.d.ts +18 -0
- package/dist/formula/argument-builder.d.ts.map +1 -0
- package/dist/formula/argument-builder.js +289 -0
- package/dist/formula/argument-builder.js.map +1 -0
- package/dist/formula/index.d.ts +7 -1
- package/dist/formula/index.d.ts.map +1 -1
- package/dist/formula/index.js +25 -7
- package/dist/formula/index.js.map +1 -1
- package/dist/formula/propositional.d.ts +2 -0
- package/dist/formula/propositional.d.ts.map +1 -1
- package/dist/formula/propositional.js +127 -64
- package/dist/formula/propositional.js.map +1 -1
- package/dist/generator/st-emitter.d.ts +1 -0
- package/dist/generator/st-emitter.d.ts.map +1 -1
- package/dist/generator/st-emitter.js +4 -12
- package/dist/generator/st-emitter.js.map +1 -1
- package/dist/segmenter/clause-splitter.d.ts.map +1 -1
- package/dist/segmenter/clause-splitter.js +56 -6
- package/dist/segmenter/clause-splitter.js.map +1 -1
- package/package.json +4 -1
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildCrossSentenceDerivations = buildCrossSentenceDerivations;
|
|
4
|
+
const connectors_1 = require("./connectors");
|
|
5
|
+
const coreference_1 = require("../atoms/coreference");
|
|
6
|
+
const keyword_extractor_1 = require("../atoms/keyword-extractor");
|
|
7
|
+
/**
|
|
8
|
+
* Enriquece las fórmulas per-sentence con derivaciones cross-sentence.
|
|
9
|
+
*/
|
|
10
|
+
function buildCrossSentenceDerivations(perSentenceFormulas, sentences, atomEntries, detectedPatterns) {
|
|
11
|
+
const extra = [];
|
|
12
|
+
let labelCounter = perSentenceFormulas.length + 1;
|
|
13
|
+
// Clasificar fórmulas existentes
|
|
14
|
+
const conditionals = perSentenceFormulas.filter(f => f.stType === 'axiom' && f.formula.includes(connectors_1.ST_OPERATORS.implication));
|
|
15
|
+
const simpleAxioms = perSentenceFormulas.filter(f => f.stType === 'axiom' && !f.formula.includes(connectors_1.ST_OPERATORS.implication) &&
|
|
16
|
+
!f.formula.includes(connectors_1.ST_OPERATORS.biconditional));
|
|
17
|
+
const negationAxioms = simpleAxioms.filter(f => f.formula.startsWith('!') || f.formula.startsWith('!('));
|
|
18
|
+
const positiveAxioms = simpleAxioms.filter(f => !f.formula.startsWith('!') && !f.formula.startsWith('!('));
|
|
19
|
+
const disjunctions = perSentenceFormulas.filter(f => f.stType === 'axiom' && f.formula.includes(connectors_1.ST_OPERATORS.disjunction)
|
|
20
|
+
&& !f.formula.includes(connectors_1.ST_OPERATORS.implication));
|
|
21
|
+
const existingDerives = perSentenceFormulas.filter(f => f.stType === 'derive');
|
|
22
|
+
// Si ya hay derives, no duplicar
|
|
23
|
+
if (existingDerives.length > 0)
|
|
24
|
+
return extra;
|
|
25
|
+
// ── Modus Ponens: A→B, A ⊢ B ──────────────────
|
|
26
|
+
if (detectedPatterns.includes('modus_ponens') || conditionals.length > 0) {
|
|
27
|
+
for (const cond of conditionals) {
|
|
28
|
+
const parsed = parseImplication(cond.formula);
|
|
29
|
+
if (!parsed)
|
|
30
|
+
continue;
|
|
31
|
+
// Buscar un axioma que unifique con el antecedente
|
|
32
|
+
const matchingPremise = findMatchingAxiom(parsed.antecedent, positiveAxioms, atomEntries);
|
|
33
|
+
if (matchingPremise) {
|
|
34
|
+
// Buscar si ya hay conclusión explícita
|
|
35
|
+
const conclusionSentences = sentences.filter(s => s.clauses.some(c => c.role === 'conclusion'));
|
|
36
|
+
extra.push({
|
|
37
|
+
formula: parsed.consequent,
|
|
38
|
+
stType: 'derive',
|
|
39
|
+
label: `mp_${labelCounter++}`,
|
|
40
|
+
sourceText: `Modus Ponens: de ${cond.label} y ${matchingPremise.label}`,
|
|
41
|
+
sourceSentence: cond.sourceSentence,
|
|
42
|
+
comment: `Modus Ponens: ${parsed.antecedent} → ${parsed.consequent}, ${parsed.antecedent} ⊢ ${parsed.consequent}`,
|
|
43
|
+
});
|
|
44
|
+
// Solo una derivación MP por condicional
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// ── Modus Tollens: A→B, ¬B ⊢ ¬A ──────────────
|
|
50
|
+
if (detectedPatterns.includes('modus_tollens') ||
|
|
51
|
+
(conditionals.length > 0 && negationAxioms.length > 0)) {
|
|
52
|
+
for (const cond of conditionals) {
|
|
53
|
+
const parsed = parseImplication(cond.formula);
|
|
54
|
+
if (!parsed)
|
|
55
|
+
continue;
|
|
56
|
+
// Buscar ¬B entre los axiomas de negación
|
|
57
|
+
const negConsequent = stripNegation(parsed.consequent);
|
|
58
|
+
if (!negConsequent)
|
|
59
|
+
continue;
|
|
60
|
+
const matchingNeg = negationAxioms.find(a => {
|
|
61
|
+
const stripped = stripNegation(a.formula);
|
|
62
|
+
return stripped !== null && atomsUnify(stripped, parsed.consequent, atomEntries);
|
|
63
|
+
});
|
|
64
|
+
// También buscar si el axioma negado es directamente ¬(consequent)
|
|
65
|
+
const matchingNeg2 = negationAxioms.find(a => {
|
|
66
|
+
const innerAtom = extractNegatedAtom(a.formula);
|
|
67
|
+
return innerAtom !== null && atomsUnify(innerAtom, parsed.consequent, atomEntries);
|
|
68
|
+
});
|
|
69
|
+
const foundNeg = matchingNeg || matchingNeg2;
|
|
70
|
+
if (foundNeg) {
|
|
71
|
+
extra.push({
|
|
72
|
+
formula: `${connectors_1.ST_OPERATORS.negation}(${parsed.antecedent})`,
|
|
73
|
+
stType: 'derive',
|
|
74
|
+
label: `mt_${labelCounter++}`,
|
|
75
|
+
sourceText: `Modus Tollens: de ${cond.label} y ${foundNeg.label}`,
|
|
76
|
+
sourceSentence: cond.sourceSentence,
|
|
77
|
+
comment: `Modus Tollens: ${parsed.antecedent}→${parsed.consequent}, ¬${parsed.consequent} ⊢ ¬${parsed.antecedent}`,
|
|
78
|
+
});
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// ── Silogismo Hipotético: A→B, B→C ⊢ A→C ─────
|
|
84
|
+
if (detectedPatterns.includes('hypothetical_syllogism') || conditionals.length >= 2) {
|
|
85
|
+
const chains = findConditionalChains(conditionals, atomEntries);
|
|
86
|
+
for (const chain of chains) {
|
|
87
|
+
extra.push({
|
|
88
|
+
formula: `${chain.start} ${connectors_1.ST_OPERATORS.implication} ${chain.end}`,
|
|
89
|
+
stType: 'derive',
|
|
90
|
+
label: `hs_${labelCounter++}`,
|
|
91
|
+
sourceText: `Silogismo Hipotético: cadena de ${chain.labels.join(', ')}`,
|
|
92
|
+
sourceSentence: conditionals[0].sourceSentence,
|
|
93
|
+
comment: `Silogismo Hipotético: ${chain.start} → ... → ${chain.end}`,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// ── Silogismo Disyuntivo: A∨B, ¬A ⊢ B ────────
|
|
98
|
+
if (detectedPatterns.includes('disjunctive_syllogism') ||
|
|
99
|
+
(disjunctions.length > 0 && negationAxioms.length > 0)) {
|
|
100
|
+
for (const disj of disjunctions) {
|
|
101
|
+
const parts = disj.formula.split(` ${connectors_1.ST_OPERATORS.disjunction} `).map(s => s.trim());
|
|
102
|
+
if (parts.length < 2)
|
|
103
|
+
continue;
|
|
104
|
+
for (const negAxiom of negationAxioms) {
|
|
105
|
+
const negated = extractNegatedAtom(negAxiom.formula);
|
|
106
|
+
if (!negated)
|
|
107
|
+
continue;
|
|
108
|
+
const negIdx = parts.findIndex(p => atomsUnify(p, negated, atomEntries));
|
|
109
|
+
if (negIdx >= 0) {
|
|
110
|
+
const remaining = parts.filter((_, i) => i !== negIdx).join(` ${connectors_1.ST_OPERATORS.disjunction} `);
|
|
111
|
+
extra.push({
|
|
112
|
+
formula: remaining,
|
|
113
|
+
stType: 'derive',
|
|
114
|
+
label: `ds_${labelCounter++}`,
|
|
115
|
+
sourceText: `Silogismo Disyuntivo: de ${disj.label} y ${negAxiom.label}`,
|
|
116
|
+
sourceSentence: disj.sourceSentence,
|
|
117
|
+
comment: `Silogismo Disyuntivo: ${disj.formula}, ${negAxiom.formula} ⊢ ${remaining}`,
|
|
118
|
+
});
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// ── Cadena condicional con MP final ────────────
|
|
125
|
+
// Si tenemos A→B, B→C, C→D y además A, derivar D
|
|
126
|
+
if (conditionals.length >= 2 && positiveAxioms.length > 0) {
|
|
127
|
+
const chains = findConditionalChains(conditionals, atomEntries);
|
|
128
|
+
for (const chain of chains) {
|
|
129
|
+
const matchingStart = findMatchingAxiom(chain.start, positiveAxioms, atomEntries);
|
|
130
|
+
if (matchingStart && extra.every(e => e.formula !== chain.end)) {
|
|
131
|
+
extra.push({
|
|
132
|
+
formula: chain.end,
|
|
133
|
+
stType: 'derive',
|
|
134
|
+
label: `chain_${labelCounter++}`,
|
|
135
|
+
sourceText: `Cadena + MP: de ${chain.labels.join(', ')} y ${matchingStart.label}`,
|
|
136
|
+
sourceSentence: conditionals[conditionals.length - 1].sourceSentence,
|
|
137
|
+
comment: `Cadena condicional + Modus Ponens: ${chain.start} → ... → ${chain.end}, ${chain.start} ⊢ ${chain.end}`,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// ── Instanciación Universal Proposicional ──────
|
|
143
|
+
// Si hay universal_instantiation + universal_generalization y una conclusión explícita
|
|
144
|
+
// sin condicionales, generar la regla implícita:
|
|
145
|
+
// "Todos F buscan V" (universal) + "S es F" (instancia) → "S busca V" (conclusión)
|
|
146
|
+
// Proposicionalmente: UNIVERSAL & INSTANCIA -> CONCLUSIÓN
|
|
147
|
+
if (detectedPatterns.includes('universal_instantiation') &&
|
|
148
|
+
conditionals.length === 0 && existingDerives.length > 0) {
|
|
149
|
+
// Hay derives per-sentence (la conclusión explícita con "por lo tanto")
|
|
150
|
+
// y axiomas universales + instancias, pero no hay condicionales.
|
|
151
|
+
// Generar regla proposicional: premisas → conclusión
|
|
152
|
+
const premiseFormulas = positiveAxioms.map(a => a.formula);
|
|
153
|
+
if (premiseFormulas.length >= 2 && existingDerives.length > 0) {
|
|
154
|
+
const conclusionFormula = existingDerives[0].formula;
|
|
155
|
+
const antecedent = premiseFormulas.length === 1
|
|
156
|
+
? premiseFormulas[0]
|
|
157
|
+
: `(${premiseFormulas.join(` ${connectors_1.ST_OPERATORS.conjunction} `)})`;
|
|
158
|
+
const premiseLabels = positiveAxioms.map(a => a.label);
|
|
159
|
+
// Solo agregar si no es redundante con la conclusión ya existente
|
|
160
|
+
if (!extra.some(e => e.formula === conclusionFormula)) {
|
|
161
|
+
extra.push({
|
|
162
|
+
formula: `${antecedent} ${connectors_1.ST_OPERATORS.implication} ${conclusionFormula}`,
|
|
163
|
+
stType: 'axiom',
|
|
164
|
+
label: `ui_regla_${labelCounter++}`,
|
|
165
|
+
sourceText: `Instanciación universal: ${premiseLabels.join(', ')} ⊢ ${conclusionFormula}`,
|
|
166
|
+
sourceSentence: existingDerives[0].sourceSentence,
|
|
167
|
+
comment: `Regla de instanciación universal (proposicional): ${antecedent} → ${conclusionFormula}`,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return extra;
|
|
173
|
+
}
|
|
174
|
+
// ══════════════════════════════════════════════════════════════
|
|
175
|
+
// Utilidades internas
|
|
176
|
+
// ══════════════════════════════════════════════════════════════
|
|
177
|
+
/** Parsea "A -> B" en { antecedent, consequent } */
|
|
178
|
+
function parseImplication(formula) {
|
|
179
|
+
const idx = formula.indexOf(` ${connectors_1.ST_OPERATORS.implication} `);
|
|
180
|
+
if (idx < 0)
|
|
181
|
+
return null;
|
|
182
|
+
const antecedent = formula.slice(0, idx).trim();
|
|
183
|
+
const consequent = formula.slice(idx + ` ${connectors_1.ST_OPERATORS.implication} `.length).trim();
|
|
184
|
+
if (!antecedent || !consequent)
|
|
185
|
+
return null;
|
|
186
|
+
return { antecedent, consequent };
|
|
187
|
+
}
|
|
188
|
+
/** Extrae el átomo dentro de una negación: "!(X)" → "X", "!X" → "X" */
|
|
189
|
+
function extractNegatedAtom(formula) {
|
|
190
|
+
const trimmed = formula.trim();
|
|
191
|
+
// "!(ATOM)" pattern
|
|
192
|
+
const match1 = trimmed.match(/^!\((.+)\)$/);
|
|
193
|
+
if (match1)
|
|
194
|
+
return match1[1].trim();
|
|
195
|
+
// "!ATOM" pattern
|
|
196
|
+
const match2 = trimmed.match(/^!(\w+)$/);
|
|
197
|
+
if (match2)
|
|
198
|
+
return match2[1].trim();
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
/** Remueve negación si existe, retorna null si no es negación */
|
|
202
|
+
function stripNegation(formula) {
|
|
203
|
+
const inner = extractNegatedAtom(formula);
|
|
204
|
+
return inner;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Verifica si dos expresiones atómicas se "unifican" (son el mismo concepto).
|
|
208
|
+
* Usa similitud de stems para manejar variaciones morfológicas.
|
|
209
|
+
*/
|
|
210
|
+
function atomsUnify(a, b, atomEntries) {
|
|
211
|
+
// Igualdad directa
|
|
212
|
+
if (a === b)
|
|
213
|
+
return true;
|
|
214
|
+
// Normalizar quitando paréntesis externos
|
|
215
|
+
const na = a.replace(/^\(|\)$/g, '').trim();
|
|
216
|
+
const nb = b.replace(/^\(|\)$/g, '').trim();
|
|
217
|
+
if (na === nb)
|
|
218
|
+
return true;
|
|
219
|
+
// Buscar los textos originales de los átomos
|
|
220
|
+
const textA = atomEntries.find(e => e.id === na)?.text;
|
|
221
|
+
const textB = atomEntries.find(e => e.id === nb)?.text;
|
|
222
|
+
if (textA && textB) {
|
|
223
|
+
const stemsA = (0, keyword_extractor_1.bagOfStems)(textA, 'es');
|
|
224
|
+
const stemsB = (0, keyword_extractor_1.bagOfStems)(textB, 'es');
|
|
225
|
+
return (0, coreference_1.diceSimilarity)(stemsA, stemsB) >= 0.5;
|
|
226
|
+
}
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Busca un axioma simple que unifique con un átomo/fórmula dado.
|
|
231
|
+
*/
|
|
232
|
+
function findMatchingAxiom(target, axioms, atomEntries) {
|
|
233
|
+
// Match exacto primero
|
|
234
|
+
const exact = axioms.find(a => a.formula === target);
|
|
235
|
+
if (exact)
|
|
236
|
+
return exact;
|
|
237
|
+
// Match por unificación
|
|
238
|
+
for (const axiom of axioms) {
|
|
239
|
+
if (atomsUnify(axiom.formula, target, atomEntries)) {
|
|
240
|
+
return axiom;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Encuentra cadenas de condicionales: A→B, B→C → chain(A, C)
|
|
247
|
+
*/
|
|
248
|
+
function findConditionalChains(conditionals, atomEntries) {
|
|
249
|
+
const parsed = conditionals
|
|
250
|
+
.map(c => ({ ...parseImplication(c.formula), label: c.label }))
|
|
251
|
+
.filter(p => p.antecedent && p.consequent);
|
|
252
|
+
if (parsed.length < 2)
|
|
253
|
+
return [];
|
|
254
|
+
const chains = [];
|
|
255
|
+
// Buscar cadenas empezando por cada condicional
|
|
256
|
+
for (let i = 0; i < parsed.length; i++) {
|
|
257
|
+
let current = parsed[i];
|
|
258
|
+
const chain = [current.label];
|
|
259
|
+
let end = current.consequent;
|
|
260
|
+
for (let j = 0; j < parsed.length; j++) {
|
|
261
|
+
if (j === i || chain.includes(parsed[j].label))
|
|
262
|
+
continue;
|
|
263
|
+
if (atomsUnify(end, parsed[j].antecedent, atomEntries)) {
|
|
264
|
+
chain.push(parsed[j].label);
|
|
265
|
+
end = parsed[j].consequent;
|
|
266
|
+
j = -1; // restart search for next link
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (chain.length >= 2) {
|
|
270
|
+
chains.push({
|
|
271
|
+
start: parsed[i].antecedent,
|
|
272
|
+
end,
|
|
273
|
+
labels: chain,
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
// Deduplicar: quedarse con la cadena más larga para cada par start→end
|
|
278
|
+
const seen = new Set();
|
|
279
|
+
return chains
|
|
280
|
+
.sort((a, b) => b.labels.length - a.labels.length)
|
|
281
|
+
.filter(c => {
|
|
282
|
+
const key = `${c.start}->${c.end}`;
|
|
283
|
+
if (seen.has(key))
|
|
284
|
+
return false;
|
|
285
|
+
seen.add(key);
|
|
286
|
+
return true;
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=argument-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argument-builder.js","sourceRoot":"","sources":["../../src/formula/argument-builder.ts"],"names":[],"mappings":";;AAoBA,sEAmMC;AA1MD,6CAA4C;AAC5C,sDAAsD;AACtD,kEAAwD;AAExD;;GAEG;AACH,SAAgB,6BAA6B,CAC3C,mBAAmC,EACnC,SAA6B,EAC7B,WAAwB,EACxB,gBAA0B;IAE1B,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,IAAI,YAAY,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;IAElD,iCAAiC;IACjC,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAClD,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAY,CAAC,WAAW,CAAC,CACrE,CAAC;IACF,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAClD,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAY,CAAC,WAAW,CAAC;QACrE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAY,CAAC,aAAa,CAAC,CAChD,CAAC;IACF,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC7C,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CACxD,CAAC;IACF,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC7C,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAC1D,CAAC;IACF,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAClD,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAY,CAAC,WAAW,CAAC;WACjE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAY,CAAC,WAAW,CAAC,CACjD,CAAC;IACF,MAAM,eAAe,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAE/E,iCAAiC;IACjC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7C,iDAAiD;IACjD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM;gBAAE,SAAS;YAEtB,mDAAmD;YACnD,MAAM,eAAe,GAAG,iBAAiB,CACvC,MAAM,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,CAC/C,CAAC;YAEF,IAAI,eAAe,EAAE,CAAC;gBACpB,wCAAwC;gBACxC,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC/C,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAC7C,CAAC;gBAEF,KAAK,CAAC,IAAI,CAAC;oBACT,OAAO,EAAE,MAAM,CAAC,UAAU;oBAC1B,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,MAAM,YAAY,EAAE,EAAE;oBAC7B,UAAU,EAAE,oBAAoB,IAAI,CAAC,KAAK,MAAM,eAAe,CAAC,KAAK,EAAE;oBACvE,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,OAAO,EAAE,iBAAiB,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,UAAU,EAAE;iBAClH,CAAC,CAAC;gBACH,yCAAyC;gBACzC,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC1C,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3D,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM;gBAAE,SAAS;YAEtB,0CAA0C;YAC1C,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACvD,IAAI,CAAC,aAAa;gBAAE,SAAS;YAE7B,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC1C,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC1C,OAAO,QAAQ,KAAK,IAAI,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;YAEH,mEAAmE;YACnE,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC3C,MAAM,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAChD,OAAO,SAAS,KAAK,IAAI,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,WAAW,IAAI,YAAY,CAAC;YAC7C,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,CAAC,IAAI,CAAC;oBACT,OAAO,EAAE,GAAG,yBAAY,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,GAAG;oBACzD,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,MAAM,YAAY,EAAE,EAAE;oBAC7B,UAAU,EAAE,qBAAqB,IAAI,CAAC,KAAK,MAAM,QAAQ,CAAC,KAAK,EAAE;oBACjE,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,OAAO,EAAE,kBAAkB,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,UAAU,OAAO,MAAM,CAAC,UAAU,EAAE;iBACnH,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACpF,MAAM,MAAM,GAAG,qBAAqB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAChE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,IAAI,yBAAY,CAAC,WAAW,IAAI,KAAK,CAAC,GAAG,EAAE;gBAClE,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,MAAM,YAAY,EAAE,EAAE;gBAC7B,UAAU,EAAE,mCAAmC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc;gBAC9C,OAAO,EAAE,yBAAyB,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,GAAG,EAAE;aACrE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAClD,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3D,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,yBAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACrF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YAE/B,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACrD,IAAI,CAAC,OAAO;oBAAE,SAAS;gBAEvB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;gBACzE,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;oBAChB,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,yBAAY,CAAC,WAAW,GAAG,CAAC,CAAC;oBAC7F,KAAK,CAAC,IAAI,CAAC;wBACT,OAAO,EAAE,SAAS;wBAClB,MAAM,EAAE,QAAQ;wBAChB,KAAK,EAAE,MAAM,YAAY,EAAE,EAAE;wBAC7B,UAAU,EAAE,4BAA4B,IAAI,CAAC,KAAK,MAAM,QAAQ,CAAC,KAAK,EAAE;wBACxE,cAAc,EAAE,IAAI,CAAC,cAAc;wBACnC,OAAO,EAAE,yBAAyB,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,MAAM,SAAS,EAAE;qBACrF,CAAC,CAAC;oBACH,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,iDAAiD;IACjD,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,qBAAqB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAChE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;YAClF,IAAI,aAAa,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/D,KAAK,CAAC,IAAI,CAAC;oBACT,OAAO,EAAE,KAAK,CAAC,GAAG;oBAClB,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,SAAS,YAAY,EAAE,EAAE;oBAChC,UAAU,EAAE,mBAAmB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,KAAK,EAAE;oBACjF,cAAc,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,cAAc;oBACpE,OAAO,EAAE,sCAAsC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,GAAG,EAAE;iBACjH,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,uFAAuF;IACvF,iDAAiD;IACjD,mFAAmF;IACnF,0DAA0D;IAC1D,IAAI,gBAAgB,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACpD,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,wEAAwE;QACxE,iEAAiE;QACjE,qDAAqD;QACrD,MAAM,eAAe,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,iBAAiB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACrD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC;gBAC7C,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;gBACpB,CAAC,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,yBAAY,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC;YACjE,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAEvD,kEAAkE;YAClE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,iBAAiB,CAAC,EAAE,CAAC;gBACtD,KAAK,CAAC,IAAI,CAAC;oBACT,OAAO,EAAE,GAAG,UAAU,IAAI,yBAAY,CAAC,WAAW,IAAI,iBAAiB,EAAE;oBACzE,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,YAAY,YAAY,EAAE,EAAE;oBACnC,UAAU,EAAE,4BAA4B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,iBAAiB,EAAE;oBACzF,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,cAAc;oBACjD,OAAO,EAAE,qDAAqD,UAAU,MAAM,iBAAiB,EAAE;iBAClG,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iEAAiE;AACjE,sBAAsB;AACtB,iEAAiE;AAEjE,oDAAoD;AACpD,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,yBAAY,CAAC,WAAW,GAAG,CAAC,CAAC;IAC7D,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,yBAAY,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACtF,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpC,CAAC;AAED,uEAAuE;AACvE,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,oBAAoB;IACpB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC5C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,kBAAkB;IAClB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iEAAiE;AACjE,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,WAAwB;IAChE,mBAAmB;IACnB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzB,0CAA0C;IAC1C,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAE3B,6CAA6C;IAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC;IACvD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC;IAEvD,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,IAAA,8BAAU,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAA,8BAAU,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO,IAAA,4BAAc,EAAC,MAAM,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC;IAC/C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,MAAc,EACd,MAAsB,EACtB,WAAwB;IAExB,uBAAuB;IACvB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;IACrD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAExB,wBAAwB;IACxB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAQD;;GAEG;AACH,SAAS,qBAAqB,CAC5B,YAA4B,EAC5B,WAAwB;IAExB,MAAM,MAAM,GAAG,YAAY;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;SAC/D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;IAE7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,gDAAgD;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,KAAK,GAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;QAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE,SAAS;YACzD,IAAI,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;gBACvD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC5B,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC3B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,+BAA+B;YACzC,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU;gBAC3B,GAAG;gBACH,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,MAAM;SACV,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;SACjD,MAAM,CAAC,CAAC,CAAC,EAAE;QACV,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/formula/index.d.ts
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Formula — Orquestador de construcción de fórmulas
|
|
3
|
+
*
|
|
4
|
+
* Pipeline:
|
|
5
|
+
* 1. Construir fórmulas per-sentence (según perfil lógico)
|
|
6
|
+
* 2. Enriquecer con derivaciones cross-sentence (argument-builder)
|
|
3
7
|
*/
|
|
4
8
|
export { buildPropositional } from './propositional';
|
|
5
9
|
export { buildFirstOrder } from './first-order';
|
|
6
10
|
export { buildModal } from './modal';
|
|
7
11
|
export { buildTemporal } from './temporal';
|
|
12
|
+
export { buildCrossSentenceDerivations } from './argument-builder';
|
|
8
13
|
export { roleToOperator, profileSupportsOperator, ST_OPERATORS } from './connectors';
|
|
9
14
|
import type { AnalyzedSentence, AtomEntry, FormulaEntry, LogicProfile } from '../types';
|
|
10
15
|
/**
|
|
11
16
|
* Construye fórmulas ST según el perfil lógico seleccionado.
|
|
12
|
-
* Delega al builder específico del perfil
|
|
17
|
+
* Delega al builder específico del perfil, luego enriquece
|
|
18
|
+
* con derivaciones cross-sentence.
|
|
13
19
|
*/
|
|
14
20
|
export declare function buildFormulas(sentences: AnalyzedSentence[], atomEntries: AtomEntry[], profile: LogicProfile, detectedPatterns: string[]): FormulaEntry[];
|
|
15
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/formula/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/formula/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAErF,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAOxF;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,gBAAgB,EAAE,EAC7B,WAAW,EAAE,SAAS,EAAE,EACxB,OAAO,EAAE,YAAY,EACrB,gBAAgB,EAAE,MAAM,EAAE,GACzB,YAAY,EAAE,CA0ChB"}
|
package/dist/formula/index.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ST_OPERATORS = exports.profileSupportsOperator = exports.roleToOperator = exports.buildTemporal = exports.buildModal = exports.buildFirstOrder = exports.buildPropositional = void 0;
|
|
3
|
+
exports.ST_OPERATORS = exports.profileSupportsOperator = exports.roleToOperator = exports.buildCrossSentenceDerivations = exports.buildTemporal = exports.buildModal = exports.buildFirstOrder = exports.buildPropositional = void 0;
|
|
4
4
|
exports.buildFormulas = buildFormulas;
|
|
5
5
|
/**
|
|
6
6
|
* Formula — Orquestador de construcción de fórmulas
|
|
7
|
+
*
|
|
8
|
+
* Pipeline:
|
|
9
|
+
* 1. Construir fórmulas per-sentence (según perfil lógico)
|
|
10
|
+
* 2. Enriquecer con derivaciones cross-sentence (argument-builder)
|
|
7
11
|
*/
|
|
8
12
|
var propositional_1 = require("./propositional");
|
|
9
13
|
Object.defineProperty(exports, "buildPropositional", { enumerable: true, get: function () { return propositional_1.buildPropositional; } });
|
|
@@ -13,6 +17,8 @@ var modal_1 = require("./modal");
|
|
|
13
17
|
Object.defineProperty(exports, "buildModal", { enumerable: true, get: function () { return modal_1.buildModal; } });
|
|
14
18
|
var temporal_1 = require("./temporal");
|
|
15
19
|
Object.defineProperty(exports, "buildTemporal", { enumerable: true, get: function () { return temporal_1.buildTemporal; } });
|
|
20
|
+
var argument_builder_1 = require("./argument-builder");
|
|
21
|
+
Object.defineProperty(exports, "buildCrossSentenceDerivations", { enumerable: true, get: function () { return argument_builder_1.buildCrossSentenceDerivations; } });
|
|
16
22
|
var connectors_1 = require("./connectors");
|
|
17
23
|
Object.defineProperty(exports, "roleToOperator", { enumerable: true, get: function () { return connectors_1.roleToOperator; } });
|
|
18
24
|
Object.defineProperty(exports, "profileSupportsOperator", { enumerable: true, get: function () { return connectors_1.profileSupportsOperator; } });
|
|
@@ -21,29 +27,41 @@ const propositional_2 = require("./propositional");
|
|
|
21
27
|
const first_order_2 = require("./first-order");
|
|
22
28
|
const modal_2 = require("./modal");
|
|
23
29
|
const temporal_2 = require("./temporal");
|
|
30
|
+
const argument_builder_2 = require("./argument-builder");
|
|
24
31
|
/**
|
|
25
32
|
* Construye fórmulas ST según el perfil lógico seleccionado.
|
|
26
|
-
* Delega al builder específico del perfil
|
|
33
|
+
* Delega al builder específico del perfil, luego enriquece
|
|
34
|
+
* con derivaciones cross-sentence.
|
|
27
35
|
*/
|
|
28
36
|
function buildFormulas(sentences, atomEntries, profile, detectedPatterns) {
|
|
37
|
+
// ── Paso 1: fórmulas per-sentence ─────────────
|
|
38
|
+
let perSentence;
|
|
29
39
|
switch (profile) {
|
|
30
40
|
case 'classical.propositional':
|
|
31
41
|
case 'intuitionistic.propositional':
|
|
32
42
|
case 'paraconsistent.belnap':
|
|
33
43
|
case 'arithmetic':
|
|
34
44
|
case 'probabilistic.basic':
|
|
35
|
-
|
|
45
|
+
perSentence = (0, propositional_2.buildPropositional)(sentences, atomEntries, detectedPatterns);
|
|
46
|
+
break;
|
|
36
47
|
case 'classical.first_order':
|
|
37
48
|
case 'aristotelian.syllogistic':
|
|
38
|
-
|
|
49
|
+
perSentence = (0, first_order_2.buildFirstOrder)(sentences, atomEntries, detectedPatterns);
|
|
50
|
+
break;
|
|
39
51
|
case 'modal.k':
|
|
40
52
|
case 'epistemic.s5':
|
|
41
53
|
case 'deontic.standard':
|
|
42
|
-
|
|
54
|
+
perSentence = (0, modal_2.buildModal)(sentences, atomEntries, profile);
|
|
55
|
+
break;
|
|
43
56
|
case 'temporal.ltl':
|
|
44
|
-
|
|
57
|
+
perSentence = (0, temporal_2.buildTemporal)(sentences, atomEntries);
|
|
58
|
+
break;
|
|
45
59
|
default:
|
|
46
|
-
|
|
60
|
+
perSentence = (0, propositional_2.buildPropositional)(sentences, atomEntries, detectedPatterns);
|
|
61
|
+
break;
|
|
47
62
|
}
|
|
63
|
+
// ── Paso 2: derivaciones cross-sentence ───────
|
|
64
|
+
const crossDerives = (0, argument_builder_2.buildCrossSentenceDerivations)(perSentence, sentences, atomEntries, detectedPatterns);
|
|
65
|
+
return [...perSentence, ...crossDerives];
|
|
48
66
|
}
|
|
49
67
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/formula/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/formula/index.ts"],"names":[],"mappings":";;;AA0BA,sCA+CC;AAzED;;;;;;GAMG;AACH,iDAAqD;AAA5C,mHAAA,kBAAkB,OAAA;AAC3B,6CAAgD;AAAvC,8GAAA,eAAe,OAAA;AACxB,iCAAqC;AAA5B,mGAAA,UAAU,OAAA;AACnB,uCAA2C;AAAlC,yGAAA,aAAa,OAAA;AACtB,uDAAmE;AAA1D,iIAAA,6BAA6B,OAAA;AACtC,2CAAqF;AAA5E,4GAAA,cAAc,OAAA;AAAE,qHAAA,uBAAuB,OAAA;AAAE,0GAAA,YAAY,OAAA;AAG9D,mDAAqD;AACrD,+CAAgD;AAChD,mCAAqC;AACrC,yCAA2C;AAC3C,yDAAmE;AAEnE;;;;GAIG;AACH,SAAgB,aAAa,CAC3B,SAA6B,EAC7B,WAAwB,EACxB,OAAqB,EACrB,gBAA0B;IAE1B,iDAAiD;IACjD,IAAI,WAA2B,CAAC;IAEhC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,yBAAyB,CAAC;QAC/B,KAAK,8BAA8B,CAAC;QACpC,KAAK,uBAAuB,CAAC;QAC7B,KAAK,YAAY,CAAC;QAClB,KAAK,qBAAqB;YACxB,WAAW,GAAG,IAAA,kCAAkB,EAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;YAC3E,MAAM;QAER,KAAK,uBAAuB,CAAC;QAC7B,KAAK,0BAA0B;YAC7B,WAAW,GAAG,IAAA,6BAAe,EAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;YACxE,MAAM;QAER,KAAK,SAAS,CAAC;QACf,KAAK,cAAc,CAAC;QACpB,KAAK,kBAAkB;YACrB,WAAW,GAAG,IAAA,kBAAU,EAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAC1D,MAAM;QAER,KAAK,cAAc;YACjB,WAAW,GAAG,IAAA,wBAAa,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACpD,MAAM;QAER;YACE,WAAW,GAAG,IAAA,kCAAkB,EAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;YAC3E,MAAM;IACV,CAAC;IAED,iDAAiD;IACjD,MAAM,YAAY,GAAG,IAAA,gDAA6B,EAChD,WAAW,EACX,SAAS,EACT,WAAW,EACX,gBAAgB,CACjB,CAAC;IAEF,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
* Propositional Formula Builder
|
|
3
3
|
*
|
|
4
4
|
* Construye fórmulas de lógica proposicional a partir de átomos con roles.
|
|
5
|
+
* Genera fórmulas reales con conectivos: →, ∧, ∨, ¬, ↔
|
|
5
6
|
*/
|
|
6
7
|
import type { AnalyzedSentence, AtomEntry, FormulaEntry } from '../types';
|
|
7
8
|
/**
|
|
8
9
|
* Construye fórmulas proposicionales para un conjunto de oraciones.
|
|
10
|
+
* Cada oración se procesa según su tipo detectado.
|
|
9
11
|
*/
|
|
10
12
|
export declare function buildPropositional(sentences: AnalyzedSentence[], atomEntries: AtomEntry[], detectedPatterns: string[]): FormulaEntry[];
|
|
11
13
|
//# sourceMappingURL=propositional.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propositional.d.ts","sourceRoot":"","sources":["../../src/formula/propositional.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"propositional.d.ts","sourceRoot":"","sources":["../../src/formula/propositional.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAmB,MAAM,UAAU,CAAC;AAG3F;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,gBAAgB,EAAE,EAC7B,WAAW,EAAE,SAAS,EAAE,EACxB,gBAAgB,EAAE,MAAM,EAAE,GACzB,YAAY,EAAE,CAiBhB"}
|