@stevenvo780/st-lang 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/belief-revision/agm.d.ts +76 -0
- package/dist/belief-revision/agm.d.ts.map +1 -0
- package/dist/belief-revision/agm.js +249 -0
- package/dist/belief-revision/agm.js.map +1 -0
- package/dist/belief-revision/index.d.ts +6 -0
- package/dist/belief-revision/index.d.ts.map +1 -0
- package/dist/belief-revision/index.js +33 -0
- package/dist/belief-revision/index.js.map +1 -0
- package/dist/belief-revision/parser.d.ts +16 -0
- package/dist/belief-revision/parser.d.ts.map +1 -0
- package/dist/belief-revision/parser.js +199 -0
- package/dist/belief-revision/parser.js.map +1 -0
- package/dist/belief-revision/sat.d.ts +19 -0
- package/dist/belief-revision/sat.d.ts.map +1 -0
- package/dist/belief-revision/sat.js +90 -0
- package/dist/belief-revision/sat.js.map +1 -0
- package/dist/belief-revision/types.d.ts +51 -0
- package/dist/belief-revision/types.d.ts.map +1 -0
- package/dist/belief-revision/types.js +10 -0
- package/dist/belief-revision/types.js.map +1 -0
- package/dist/curry-howard/index.d.ts +7 -0
- package/dist/curry-howard/index.d.ts.map +1 -0
- package/dist/curry-howard/index.js +46 -0
- package/dist/curry-howard/index.js.map +1 -0
- package/dist/curry-howard/infer.d.ts +9 -0
- package/dist/curry-howard/infer.d.ts.map +1 -0
- package/dist/curry-howard/infer.js +129 -0
- package/dist/curry-howard/infer.js.map +1 -0
- package/dist/curry-howard/proof.d.ts +7 -0
- package/dist/curry-howard/proof.d.ts.map +1 -0
- package/dist/curry-howard/proof.js +282 -0
- package/dist/curry-howard/proof.js.map +1 -0
- package/dist/curry-howard/reduce.d.ts +7 -0
- package/dist/curry-howard/reduce.d.ts.map +1 -0
- package/dist/curry-howard/reduce.js +266 -0
- package/dist/curry-howard/reduce.js.map +1 -0
- package/dist/curry-howard/types.d.ts +91 -0
- package/dist/curry-howard/types.d.ts.map +1 -0
- package/dist/curry-howard/types.js +149 -0
- package/dist/curry-howard/types.js.map +1 -0
- package/dist/fol-prover-equality/demodulate.d.ts +29 -0
- package/dist/fol-prover-equality/demodulate.d.ts.map +1 -0
- package/dist/fol-prover-equality/demodulate.js +197 -0
- package/dist/fol-prover-equality/demodulate.js.map +1 -0
- package/dist/fol-prover-equality/index.d.ts +8 -0
- package/dist/fol-prover-equality/index.d.ts.map +1 -0
- package/dist/fol-prover-equality/index.js +24 -0
- package/dist/fol-prover-equality/index.js.map +1 -0
- package/dist/fol-prover-equality/paramodulate.d.ts +46 -0
- package/dist/fol-prover-equality/paramodulate.d.ts.map +1 -0
- package/dist/fol-prover-equality/paramodulate.js +159 -0
- package/dist/fol-prover-equality/paramodulate.js.map +1 -0
- package/dist/fol-prover-equality/prove.d.ts +7 -0
- package/dist/fol-prover-equality/prove.d.ts.map +1 -0
- package/dist/fol-prover-equality/prove.js +307 -0
- package/dist/fol-prover-equality/prove.js.map +1 -0
- package/dist/fol-prover-equality/term-utils.d.ts +43 -0
- package/dist/fol-prover-equality/term-utils.d.ts.map +1 -0
- package/dist/fol-prover-equality/term-utils.js +230 -0
- package/dist/fol-prover-equality/term-utils.js.map +1 -0
- package/dist/fol-prover-equality/types.d.ts +20 -0
- package/dist/fol-prover-equality/types.d.ts.map +1 -0
- package/dist/fol-prover-equality/types.js +5 -0
- package/dist/fol-prover-equality/types.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -1
- package/dist/index.js.map +1 -1
- package/dist/profiles/ctl/check.d.ts +13 -0
- package/dist/profiles/ctl/check.d.ts.map +1 -0
- package/dist/profiles/ctl/check.js +359 -0
- package/dist/profiles/ctl/check.js.map +1 -0
- package/dist/profiles/ctl/index.d.ts +5 -0
- package/dist/profiles/ctl/index.d.ts.map +1 -0
- package/dist/profiles/ctl/index.js +23 -0
- package/dist/profiles/ctl/index.js.map +1 -0
- package/dist/profiles/ctl/types.d.ts +74 -0
- package/dist/profiles/ctl/types.d.ts.map +1 -0
- package/dist/profiles/ctl/types.js +53 -0
- package/dist/profiles/ctl/types.js.map +1 -0
- package/dist/profiles/ctl/witness.d.ts +20 -0
- package/dist/profiles/ctl/witness.d.ts.map +1 -0
- package/dist/profiles/ctl/witness.js +149 -0
- package/dist/profiles/ctl/witness.js.map +1 -0
- package/dist/profiles/default-logic/entailment.d.ts +14 -0
- package/dist/profiles/default-logic/entailment.d.ts.map +1 -0
- package/dist/profiles/default-logic/entailment.js +36 -0
- package/dist/profiles/default-logic/entailment.js.map +1 -0
- package/dist/profiles/default-logic/extensions.d.ts +35 -0
- package/dist/profiles/default-logic/extensions.d.ts.map +1 -0
- package/dist/profiles/default-logic/extensions.js +276 -0
- package/dist/profiles/default-logic/extensions.js.map +1 -0
- package/dist/profiles/default-logic/index.d.ts +5 -0
- package/dist/profiles/default-logic/index.d.ts.map +1 -0
- package/dist/profiles/default-logic/index.js +33 -0
- package/dist/profiles/default-logic/index.js.map +1 -0
- package/dist/profiles/default-logic/types.d.ts +29 -0
- package/dist/profiles/default-logic/types.d.ts.map +1 -0
- package/dist/profiles/default-logic/types.js +25 -0
- package/dist/profiles/default-logic/types.js.map +1 -0
- package/dist/profiles/description-logic/index.d.ts +5 -0
- package/dist/profiles/description-logic/index.d.ts.map +1 -0
- package/dist/profiles/description-logic/index.js +39 -0
- package/dist/profiles/description-logic/index.js.map +1 -0
- package/dist/profiles/description-logic/nnf.d.ts +13 -0
- package/dist/profiles/description-logic/nnf.d.ts.map +1 -0
- package/dist/profiles/description-logic/nnf.js +123 -0
- package/dist/profiles/description-logic/nnf.js.map +1 -0
- package/dist/profiles/description-logic/tableau.d.ts +27 -0
- package/dist/profiles/description-logic/tableau.d.ts.map +1 -0
- package/dist/profiles/description-logic/tableau.js +491 -0
- package/dist/profiles/description-logic/tableau.js.map +1 -0
- package/dist/profiles/description-logic/types.d.ts +45 -0
- package/dist/profiles/description-logic/types.d.ts.map +1 -0
- package/dist/profiles/description-logic/types.js +71 -0
- package/dist/profiles/description-logic/types.js.map +1 -0
- package/dist/profiles/hybrid-logic/index.d.ts +5 -0
- package/dist/profiles/hybrid-logic/index.d.ts.map +1 -0
- package/dist/profiles/hybrid-logic/index.js +34 -0
- package/dist/profiles/hybrid-logic/index.js.map +1 -0
- package/dist/profiles/hybrid-logic/sat.d.ts +15 -0
- package/dist/profiles/hybrid-logic/sat.d.ts.map +1 -0
- package/dist/profiles/hybrid-logic/sat.js +142 -0
- package/dist/profiles/hybrid-logic/sat.js.map +1 -0
- package/dist/profiles/hybrid-logic/semantics.d.ts +20 -0
- package/dist/profiles/hybrid-logic/semantics.d.ts.map +1 -0
- package/dist/profiles/hybrid-logic/semantics.js +107 -0
- package/dist/profiles/hybrid-logic/semantics.js.map +1 -0
- package/dist/profiles/hybrid-logic/types.d.ts +78 -0
- package/dist/profiles/hybrid-logic/types.d.ts.map +1 -0
- package/dist/profiles/hybrid-logic/types.js +107 -0
- package/dist/profiles/hybrid-logic/types.js.map +1 -0
- package/dist/profiles/ltl-sat/index.d.ts +4 -0
- package/dist/profiles/ltl-sat/index.d.ts.map +1 -0
- package/dist/profiles/ltl-sat/index.js +40 -0
- package/dist/profiles/ltl-sat/index.js.map +1 -0
- package/dist/profiles/ltl-sat/sat.d.ts +8 -0
- package/dist/profiles/ltl-sat/sat.d.ts.map +1 -0
- package/dist/profiles/ltl-sat/sat.js +140 -0
- package/dist/profiles/ltl-sat/sat.js.map +1 -0
- package/dist/profiles/ltl-sat/tableau.d.ts +19 -0
- package/dist/profiles/ltl-sat/tableau.d.ts.map +1 -0
- package/dist/profiles/ltl-sat/tableau.js +358 -0
- package/dist/profiles/ltl-sat/tableau.js.map +1 -0
- package/dist/profiles/ltl-sat/types.d.ts +52 -0
- package/dist/profiles/ltl-sat/types.d.ts.map +1 -0
- package/dist/profiles/ltl-sat/types.js +101 -0
- package/dist/profiles/ltl-sat/types.js.map +1 -0
- package/dist/profiles/sequent-g3/index.d.ts +5 -0
- package/dist/profiles/sequent-g3/index.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/index.js +23 -0
- package/dist/profiles/sequent-g3/index.js.map +1 -0
- package/dist/profiles/sequent-g3/latex.d.ts +7 -0
- package/dist/profiles/sequent-g3/latex.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/latex.js +107 -0
- package/dist/profiles/sequent-g3/latex.js.map +1 -0
- package/dist/profiles/sequent-g3/normalize.d.ts +15 -0
- package/dist/profiles/sequent-g3/normalize.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/normalize.js +121 -0
- package/dist/profiles/sequent-g3/normalize.js.map +1 -0
- package/dist/profiles/sequent-g3/prover.d.ts +16 -0
- package/dist/profiles/sequent-g3/prover.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/prover.js +348 -0
- package/dist/profiles/sequent-g3/prover.js.map +1 -0
- package/dist/profiles/sequent-g3/types.d.ts +30 -0
- package/dist/profiles/sequent-g3/types.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/types.js +16 -0
- package/dist/profiles/sequent-g3/types.js.map +1 -0
- package/dist/runtime/countermodel-min/index.d.ts +3 -0
- package/dist/runtime/countermodel-min/index.d.ts.map +1 -0
- package/dist/runtime/countermodel-min/index.js +9 -0
- package/dist/runtime/countermodel-min/index.js.map +1 -0
- package/dist/runtime/countermodel-min/minimize.d.ts +17 -0
- package/dist/runtime/countermodel-min/minimize.d.ts.map +1 -0
- package/dist/runtime/countermodel-min/minimize.js +0 -0
- package/dist/runtime/countermodel-min/minimize.js.map +1 -0
- package/dist/runtime/countermodel-min/types.d.ts +40 -0
- package/dist/runtime/countermodel-min/types.d.ts.map +1 -0
- package/dist/runtime/countermodel-min/types.js +6 -0
- package/dist/runtime/countermodel-min/types.js.map +1 -0
- package/dist/runtime/mus/extract.d.ts +34 -0
- package/dist/runtime/mus/extract.d.ts.map +1 -0
- package/dist/runtime/mus/extract.js +243 -0
- package/dist/runtime/mus/extract.js.map +1 -0
- package/dist/runtime/mus/index.d.ts +4 -0
- package/dist/runtime/mus/index.d.ts.map +1 -0
- package/dist/runtime/mus/index.js +12 -0
- package/dist/runtime/mus/index.js.map +1 -0
- package/dist/runtime/mus/quickxplain.d.ts +10 -0
- package/dist/runtime/mus/quickxplain.d.ts.map +1 -0
- package/dist/runtime/mus/quickxplain.js +100 -0
- package/dist/runtime/mus/quickxplain.js.map +1 -0
- package/dist/runtime/mus/types.d.ts +59 -0
- package/dist/runtime/mus/types.d.ts.map +1 -0
- package/dist/runtime/mus/types.js +20 -0
- package/dist/runtime/mus/types.js.map +1 -0
- package/dist/solver/cdcl-v2-incremental/index.d.ts +3 -0
- package/dist/solver/cdcl-v2-incremental/index.d.ts.map +1 -0
- package/dist/solver/cdcl-v2-incremental/index.js +16 -0
- package/dist/solver/cdcl-v2-incremental/index.js.map +1 -0
- package/dist/solver/cdcl-v2-incremental/solver.d.ts +83 -0
- package/dist/solver/cdcl-v2-incremental/solver.d.ts.map +1 -0
- package/dist/solver/cdcl-v2-incremental/solver.js +727 -0
- package/dist/solver/cdcl-v2-incremental/solver.js.map +1 -0
- package/dist/solver/cdcl-v2-incremental/types.d.ts +47 -0
- package/dist/solver/cdcl-v2-incremental/types.d.ts.map +1 -0
- package/dist/solver/cdcl-v2-incremental/types.js +13 -0
- package/dist/solver/cdcl-v2-incremental/types.js.map +1 -0
- package/dist/tests/belief-revision/agm.test.d.ts +2 -0
- package/dist/tests/belief-revision/agm.test.d.ts.map +1 -0
- package/dist/tests/belief-revision/agm.test.js +173 -0
- package/dist/tests/belief-revision/agm.test.js.map +1 -0
- package/dist/tests/countermodel-min/minimize.test.d.ts +2 -0
- package/dist/tests/countermodel-min/minimize.test.d.ts.map +1 -0
- package/dist/tests/countermodel-min/minimize.test.js +241 -0
- package/dist/tests/countermodel-min/minimize.test.js.map +1 -0
- package/dist/tests/ctl/check.test.d.ts +2 -0
- package/dist/tests/ctl/check.test.d.ts.map +1 -0
- package/dist/tests/ctl/check.test.js +337 -0
- package/dist/tests/ctl/check.test.js.map +1 -0
- package/dist/tests/curry-howard/infer.test.d.ts +2 -0
- package/dist/tests/curry-howard/infer.test.d.ts.map +1 -0
- package/dist/tests/curry-howard/infer.test.js +93 -0
- package/dist/tests/curry-howard/infer.test.js.map +1 -0
- package/dist/tests/curry-howard/proof.test.d.ts +2 -0
- package/dist/tests/curry-howard/proof.test.d.ts.map +1 -0
- package/dist/tests/curry-howard/proof.test.js +105 -0
- package/dist/tests/curry-howard/proof.test.js.map +1 -0
- package/dist/tests/curry-howard/reduce.test.d.ts +2 -0
- package/dist/tests/curry-howard/reduce.test.d.ts.map +1 -0
- package/dist/tests/curry-howard/reduce.test.js +109 -0
- package/dist/tests/curry-howard/reduce.test.js.map +1 -0
- package/dist/tests/default-logic/extensions.test.d.ts +2 -0
- package/dist/tests/default-logic/extensions.test.d.ts.map +1 -0
- package/dist/tests/default-logic/extensions.test.js +323 -0
- package/dist/tests/default-logic/extensions.test.js.map +1 -0
- package/dist/tests/description-logic/alc.test.d.ts +2 -0
- package/dist/tests/description-logic/alc.test.d.ts.map +1 -0
- package/dist/tests/description-logic/alc.test.js +253 -0
- package/dist/tests/description-logic/alc.test.js.map +1 -0
- package/dist/tests/fol-prover-equality/prove.test.d.ts +2 -0
- package/dist/tests/fol-prover-equality/prove.test.d.ts.map +1 -0
- package/dist/tests/fol-prover-equality/prove.test.js +179 -0
- package/dist/tests/fol-prover-equality/prove.test.js.map +1 -0
- package/dist/tests/hybrid-logic/semantics.test.d.ts +2 -0
- package/dist/tests/hybrid-logic/semantics.test.d.ts.map +1 -0
- package/dist/tests/hybrid-logic/semantics.test.js +169 -0
- package/dist/tests/hybrid-logic/semantics.test.js.map +1 -0
- package/dist/tests/ltl-sat/sat.test.d.ts +2 -0
- package/dist/tests/ltl-sat/sat.test.d.ts.map +1 -0
- package/dist/tests/ltl-sat/sat.test.js +160 -0
- package/dist/tests/ltl-sat/sat.test.js.map +1 -0
- package/dist/tests/mus/extract.test.d.ts +2 -0
- package/dist/tests/mus/extract.test.d.ts.map +1 -0
- package/dist/tests/mus/extract.test.js +352 -0
- package/dist/tests/mus/extract.test.js.map +1 -0
- package/dist/tests/sat-v2-incremental/basic.test.d.ts +2 -0
- package/dist/tests/sat-v2-incremental/basic.test.d.ts.map +1 -0
- package/dist/tests/sat-v2-incremental/basic.test.js +352 -0
- package/dist/tests/sat-v2-incremental/basic.test.js.map +1 -0
- package/dist/tests/sequent-g3/prover.test.d.ts +2 -0
- package/dist/tests/sequent-g3/prover.test.d.ts.map +1 -0
- package/dist/tests/sequent-g3/prover.test.js +205 -0
- package/dist/tests/sequent-g3/prover.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Default Logic (Reiter) — Tipos
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Lógica default de Reiter (1980). Una default rule:
|
|
7
|
+
//
|
|
8
|
+
// α : β1, ..., βn / γ
|
|
9
|
+
//
|
|
10
|
+
// significa "si α se cree y cada βi es consistente con las creencias
|
|
11
|
+
// actuales, entonces concluye γ". Una extensión es un punto fijo del
|
|
12
|
+
// operador inducido por la teoría: el conjunto de creencias estable
|
|
13
|
+
// donde todos los defaults aplicables ya fueron aplicados y ninguno
|
|
14
|
+
// más aplica sin generar inconsistencia.
|
|
15
|
+
//
|
|
16
|
+
// Limitación v1: prerequisites, justifications y consequents son
|
|
17
|
+
// literales (ground): "P" o "¬P". La consistencia se verifica buscando
|
|
18
|
+
// pares L/¬L en el conjunto de creencias. Esto cubre todos los
|
|
19
|
+
// ejemplos clásicos (Tweety, Nixon-diamond, etc.) sin SAT completo.
|
|
20
|
+
// ============================================================
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.DEFAULT_MAX_DEFAULTS = exports.DEFAULT_MAX_EXTENSIONS = void 0;
|
|
23
|
+
exports.DEFAULT_MAX_EXTENSIONS = 64;
|
|
24
|
+
exports.DEFAULT_MAX_DEFAULTS = 64;
|
|
25
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/profiles/default-logic/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,oCAAoC;AACpC,+DAA+D;AAC/D,EAAE;AACF,qDAAqD;AACrD,EAAE;AACF,0BAA0B;AAC1B,EAAE;AACF,qEAAqE;AACrE,qEAAqE;AACrE,oEAAoE;AACpE,oEAAoE;AACpE,yCAAyC;AACzC,EAAE;AACF,iEAAiE;AACjE,uEAAuE;AACvE,+DAA+D;AAC/D,oEAAoE;AACpE,+DAA+D;;;AAgClD,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAC5B,QAAA,oBAAoB,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { DLConcept, DLConceptKind, DLAxiom, DLAxiomKind, DLKnowledgeBase } from './types';
|
|
2
|
+
export { TOP, BOTTOM, atomic, not, and, or, exists, forall, subsumes, equivalent, instance, roleInstance, emptyKB, } from './types';
|
|
3
|
+
export { toNNF, conceptHash, conceptEqual, conceptToString } from './nnf';
|
|
4
|
+
export { isSatisfiable, isSubsumed, isInstance, classify } from './tableau';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/profiles/description-logic/index.ts"],"names":[],"mappings":"AAYA,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/F,OAAO,EACL,GAAG,EACH,MAAM,EACN,MAAM,EACN,GAAG,EACH,GAAG,EACH,EAAE,EACF,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,OAAO,GACR,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Description Logic — Public API (ALC profile)
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Perfil ALC: el fragmento base de OWL/DL. Provee un decisor
|
|
6
|
+
// completo y terminante para satisfacibilidad de conceptos,
|
|
7
|
+
// subsumption, instance checking y clasificación.
|
|
8
|
+
//
|
|
9
|
+
// Procedimiento: tableau con subset blocking. Termina sobre KBs
|
|
10
|
+
// cíclicas. NO se inscribe en el ProfileRegistry (esto es un módulo
|
|
11
|
+
// de razonamiento independiente, no un perfil sentencial textual).
|
|
12
|
+
// ============================================================
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.classify = exports.isInstance = exports.isSubsumed = exports.isSatisfiable = exports.conceptToString = exports.conceptEqual = exports.conceptHash = exports.toNNF = exports.emptyKB = exports.roleInstance = exports.instance = exports.equivalent = exports.subsumes = exports.forall = exports.exists = exports.or = exports.and = exports.not = exports.atomic = exports.BOTTOM = exports.TOP = void 0;
|
|
15
|
+
var types_1 = require("./types");
|
|
16
|
+
Object.defineProperty(exports, "TOP", { enumerable: true, get: function () { return types_1.TOP; } });
|
|
17
|
+
Object.defineProperty(exports, "BOTTOM", { enumerable: true, get: function () { return types_1.BOTTOM; } });
|
|
18
|
+
Object.defineProperty(exports, "atomic", { enumerable: true, get: function () { return types_1.atomic; } });
|
|
19
|
+
Object.defineProperty(exports, "not", { enumerable: true, get: function () { return types_1.not; } });
|
|
20
|
+
Object.defineProperty(exports, "and", { enumerable: true, get: function () { return types_1.and; } });
|
|
21
|
+
Object.defineProperty(exports, "or", { enumerable: true, get: function () { return types_1.or; } });
|
|
22
|
+
Object.defineProperty(exports, "exists", { enumerable: true, get: function () { return types_1.exists; } });
|
|
23
|
+
Object.defineProperty(exports, "forall", { enumerable: true, get: function () { return types_1.forall; } });
|
|
24
|
+
Object.defineProperty(exports, "subsumes", { enumerable: true, get: function () { return types_1.subsumes; } });
|
|
25
|
+
Object.defineProperty(exports, "equivalent", { enumerable: true, get: function () { return types_1.equivalent; } });
|
|
26
|
+
Object.defineProperty(exports, "instance", { enumerable: true, get: function () { return types_1.instance; } });
|
|
27
|
+
Object.defineProperty(exports, "roleInstance", { enumerable: true, get: function () { return types_1.roleInstance; } });
|
|
28
|
+
Object.defineProperty(exports, "emptyKB", { enumerable: true, get: function () { return types_1.emptyKB; } });
|
|
29
|
+
var nnf_1 = require("./nnf");
|
|
30
|
+
Object.defineProperty(exports, "toNNF", { enumerable: true, get: function () { return nnf_1.toNNF; } });
|
|
31
|
+
Object.defineProperty(exports, "conceptHash", { enumerable: true, get: function () { return nnf_1.conceptHash; } });
|
|
32
|
+
Object.defineProperty(exports, "conceptEqual", { enumerable: true, get: function () { return nnf_1.conceptEqual; } });
|
|
33
|
+
Object.defineProperty(exports, "conceptToString", { enumerable: true, get: function () { return nnf_1.conceptToString; } });
|
|
34
|
+
var tableau_1 = require("./tableau");
|
|
35
|
+
Object.defineProperty(exports, "isSatisfiable", { enumerable: true, get: function () { return tableau_1.isSatisfiable; } });
|
|
36
|
+
Object.defineProperty(exports, "isSubsumed", { enumerable: true, get: function () { return tableau_1.isSubsumed; } });
|
|
37
|
+
Object.defineProperty(exports, "isInstance", { enumerable: true, get: function () { return tableau_1.isInstance; } });
|
|
38
|
+
Object.defineProperty(exports, "classify", { enumerable: true, get: function () { return tableau_1.classify; } });
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiles/description-logic/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,kDAAkD;AAClD,+DAA+D;AAC/D,6DAA6D;AAC7D,4DAA4D;AAC5D,kDAAkD;AAClD,EAAE;AACF,gEAAgE;AAChE,oEAAoE;AACpE,mEAAmE;AACnE,+DAA+D;;;AAI/D,iCAciB;AAbf,4FAAA,GAAG,OAAA;AACH,+FAAA,MAAM,OAAA;AACN,+FAAA,MAAM,OAAA;AACN,4FAAA,GAAG,OAAA;AACH,4FAAA,GAAG,OAAA;AACH,2FAAA,EAAE,OAAA;AACF,+FAAA,MAAM,OAAA;AACN,+FAAA,MAAM,OAAA;AACN,iGAAA,QAAQ,OAAA;AACR,mGAAA,UAAU,OAAA;AACV,iGAAA,QAAQ,OAAA;AACR,qGAAA,YAAY,OAAA;AACZ,gGAAA,OAAO,OAAA;AAGT,6BAA0E;AAAjE,4FAAA,KAAK,OAAA;AAAE,kGAAA,WAAW,OAAA;AAAE,mGAAA,YAAY,OAAA;AAAE,sGAAA,eAAe,OAAA;AAE1D,qCAA4E;AAAnE,wGAAA,aAAa,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,mGAAA,QAAQ,OAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DLConcept } from './types';
|
|
2
|
+
export declare function toNNF(c: DLConcept): DLConcept;
|
|
3
|
+
/**
|
|
4
|
+
* Hash canónico de un concepto. Dos conceptos sintácticamente iguales
|
|
5
|
+
* (módulo orden de hijos en and/or) producen el mismo hash.
|
|
6
|
+
*/
|
|
7
|
+
export declare function conceptHash(c: DLConcept): string;
|
|
8
|
+
export declare function conceptEqual(a: DLConcept, b: DLConcept): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Render legible para tracing / mensajes.
|
|
11
|
+
*/
|
|
12
|
+
export declare function conceptToString(c: DLConcept): string;
|
|
13
|
+
//# sourceMappingURL=nnf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nnf.d.ts","sourceRoot":"","sources":["../../../src/profiles/description-logic/nnf.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAA6C,MAAM,SAAS,CAAC;AAE/E,wBAAgB,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,CAoB7C;AA+BD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAuBhD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAEhE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAmBpD"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST Description Logic — Negation Normal Form & hashing
|
|
4
|
+
// ============================================================
|
|
5
|
+
// Empuja ¬ hasta los átomos. Tras NNF:
|
|
6
|
+
// - kind 'not' SOLO envuelve 'atomic'.
|
|
7
|
+
// - 'top' / 'bottom' nunca aparecen bajo 'not' (se simplifican).
|
|
8
|
+
// ============================================================
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.toNNF = toNNF;
|
|
11
|
+
exports.conceptHash = conceptHash;
|
|
12
|
+
exports.conceptEqual = conceptEqual;
|
|
13
|
+
exports.conceptToString = conceptToString;
|
|
14
|
+
const types_1 = require("./types");
|
|
15
|
+
function toNNF(c) {
|
|
16
|
+
switch (c.kind) {
|
|
17
|
+
case 'top':
|
|
18
|
+
case 'bottom':
|
|
19
|
+
return c;
|
|
20
|
+
case 'atomic':
|
|
21
|
+
return c;
|
|
22
|
+
case 'and':
|
|
23
|
+
return (0, types_1.and)(...(c.args || []).map(toNNF));
|
|
24
|
+
case 'or':
|
|
25
|
+
return (0, types_1.or)(...(c.args || []).map(toNNF));
|
|
26
|
+
case 'exists':
|
|
27
|
+
if (!c.role || !c.arg)
|
|
28
|
+
throw new Error('exists sin rol o argumento');
|
|
29
|
+
return (0, types_1.exists)(c.role, toNNF(c.arg));
|
|
30
|
+
case 'forall':
|
|
31
|
+
if (!c.role || !c.arg)
|
|
32
|
+
throw new Error('forall sin rol o argumento');
|
|
33
|
+
return (0, types_1.forall)(c.role, toNNF(c.arg));
|
|
34
|
+
case 'not':
|
|
35
|
+
return pushNot(c.arg);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function pushNot(inner) {
|
|
39
|
+
if (!inner)
|
|
40
|
+
throw new Error('not sin argumento');
|
|
41
|
+
switch (inner.kind) {
|
|
42
|
+
case 'top':
|
|
43
|
+
return types_1.BOTTOM;
|
|
44
|
+
case 'bottom':
|
|
45
|
+
return types_1.TOP;
|
|
46
|
+
case 'atomic':
|
|
47
|
+
return (0, types_1.not)(inner);
|
|
48
|
+
case 'not':
|
|
49
|
+
// doble negación
|
|
50
|
+
return toNNF(inner.arg);
|
|
51
|
+
case 'and':
|
|
52
|
+
// ¬(C ⊓ D) = ¬C ⊔ ¬D
|
|
53
|
+
return (0, types_1.or)(...(inner.args || []).map((a) => pushNot(a)));
|
|
54
|
+
case 'or':
|
|
55
|
+
// ¬(C ⊔ D) = ¬C ⊓ ¬D
|
|
56
|
+
return (0, types_1.and)(...(inner.args || []).map((a) => pushNot(a)));
|
|
57
|
+
case 'exists':
|
|
58
|
+
// ¬∃R.C = ∀R.¬C
|
|
59
|
+
if (!inner.role)
|
|
60
|
+
throw new Error('exists sin rol');
|
|
61
|
+
return (0, types_1.forall)(inner.role, pushNot(inner.arg));
|
|
62
|
+
case 'forall':
|
|
63
|
+
// ¬∀R.C = ∃R.¬C
|
|
64
|
+
if (!inner.role)
|
|
65
|
+
throw new Error('forall sin rol');
|
|
66
|
+
return (0, types_1.exists)(inner.role, pushNot(inner.arg));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Hash canónico de un concepto. Dos conceptos sintácticamente iguales
|
|
71
|
+
* (módulo orden de hijos en and/or) producen el mismo hash.
|
|
72
|
+
*/
|
|
73
|
+
function conceptHash(c) {
|
|
74
|
+
switch (c.kind) {
|
|
75
|
+
case 'top':
|
|
76
|
+
return 'T';
|
|
77
|
+
case 'bottom':
|
|
78
|
+
return 'F';
|
|
79
|
+
case 'atomic':
|
|
80
|
+
return `A:${c.name || '?'}`;
|
|
81
|
+
case 'not':
|
|
82
|
+
return `!(${conceptHash(c.arg)})`;
|
|
83
|
+
case 'and': {
|
|
84
|
+
const parts = (c.args || []).map(conceptHash).sort();
|
|
85
|
+
return `&(${parts.join(',')})`;
|
|
86
|
+
}
|
|
87
|
+
case 'or': {
|
|
88
|
+
const parts = (c.args || []).map(conceptHash).sort();
|
|
89
|
+
return `|(${parts.join(',')})`;
|
|
90
|
+
}
|
|
91
|
+
case 'exists':
|
|
92
|
+
return `E:${c.role || '?'}(${conceptHash(c.arg)})`;
|
|
93
|
+
case 'forall':
|
|
94
|
+
return `V:${c.role || '?'}(${conceptHash(c.arg)})`;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function conceptEqual(a, b) {
|
|
98
|
+
return conceptHash(a) === conceptHash(b);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Render legible para tracing / mensajes.
|
|
102
|
+
*/
|
|
103
|
+
function conceptToString(c) {
|
|
104
|
+
switch (c.kind) {
|
|
105
|
+
case 'top':
|
|
106
|
+
return '⊤';
|
|
107
|
+
case 'bottom':
|
|
108
|
+
return '⊥';
|
|
109
|
+
case 'atomic':
|
|
110
|
+
return c.name || '?';
|
|
111
|
+
case 'not':
|
|
112
|
+
return `¬${conceptToString(c.arg)}`;
|
|
113
|
+
case 'and':
|
|
114
|
+
return `(${(c.args || []).map(conceptToString).join(' ⊓ ')})`;
|
|
115
|
+
case 'or':
|
|
116
|
+
return `(${(c.args || []).map(conceptToString).join(' ⊔ ')})`;
|
|
117
|
+
case 'exists':
|
|
118
|
+
return `∃${c.role || '?'}.${conceptToString(c.arg)}`;
|
|
119
|
+
case 'forall':
|
|
120
|
+
return `∀${c.role || '?'}.${conceptToString(c.arg)}`;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=nnf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nnf.js","sourceRoot":"","sources":["../../../src/profiles/description-logic/nnf.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { DLConcept, DLKnowledgeBase } from './types';
|
|
2
|
+
import { conceptToString } from './nnf';
|
|
3
|
+
/**
|
|
4
|
+
* Decide si `concept` es satisfacible (eventualmente bajo la KB).
|
|
5
|
+
* Construye un tableau iniciando con un individuo fresco x : concept,
|
|
6
|
+
* y aplica las reglas hasta cerrar todas las ramas o encontrar una abierta.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isSatisfiable(concept: DLConcept, kb?: DLKnowledgeBase): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Decide si `sub ⊑ sup` (bajo la KB). Equivale a: ¬(sub ⊓ ¬sup) es válida,
|
|
11
|
+
* o sea, `sub ⊓ ¬sup` es insatisfacible.
|
|
12
|
+
*/
|
|
13
|
+
export declare function isSubsumed(sub: DLConcept, sup: DLConcept, kb?: DLKnowledgeBase): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Decide si `individual` es instancia de `concept` bajo la KB.
|
|
16
|
+
* Equivale a: KB ∪ {individual : ¬concept} es inconsistente.
|
|
17
|
+
*/
|
|
18
|
+
export declare function isInstance(individual: string, concept: DLConcept, kb: DLKnowledgeBase): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Clasificación: produce taxonomía de conceptos atómicos de la KB.
|
|
21
|
+
* Devuelve Map<conceptName, Set<conceptName>> donde `Set` contiene
|
|
22
|
+
* los conceptos atómicos que subsumen al name (es decir: superconceptos).
|
|
23
|
+
* ⊤ y ⊥ se incluyen siempre.
|
|
24
|
+
*/
|
|
25
|
+
export declare function classify(kb: DLKnowledgeBase): Map<string, Set<string>>;
|
|
26
|
+
export { conceptToString };
|
|
27
|
+
//# sourceMappingURL=tableau.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tableau.d.ts","sourceRoot":"","sources":["../../../src/profiles/description-logic/tableau.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAqC,MAAM,SAAS,CAAC;AACxF,OAAO,EAAsB,eAAe,EAAE,MAAM,OAAO,CAAC;AA0V5D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,eAAe,GAAG,OAAO,CAgB/E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,eAAe,GAAG,OAAO,CAGxF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,eAAe,GAAG,OAAO,CAgB/F;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAoCtE;AAoBD,OAAO,EAAE,eAAe,EAAE,CAAC"}
|