unicode_fol_kit.dl.tableau¶
An ALC tableau reasoner: concept satisfiability, subsumption, ABox consistency.
Decides the core description-logic reasoning tasks for ALC with general TBoxes by the standard tableau algorithm. A tableau builds a tree of individuals, each carrying a label (a set of concepts it must satisfy), and applies completion rules:
⊓:x : C ⊓ D⇒ addx : Candx : D(deterministic);⊔:x : C ⊔ D⇒ branch onx : C|x : D(nondeterministic);∃:x : ∃r.C⇒ create a freshr-successorywithy : C;∀:x : ∀r.Candx —r→ y⇒ addy : C.
A clash is x : ⊥ or {x : A, x : ¬A}. A concept is satisfiable iff some
branch saturates without a clash. General TBoxes C ⊑ D are internalised: the
concept ¬C ⊔ D is forced on every individual. Termination with such axioms relies
on subset blocking — a generated individual whose label is contained in that of an
earlier individual is not expanded (its successors are reused), which is sound and
complete for ALC (no inverse roles or number restrictions).
Public API: TBox, ABox, concept_satisfiable(),
subsumes(), equivalent(), concept_unsatisfiable(),
abox_consistent().
Functions
|
Return True iff the knowledge base |
|
Return True iff |
|
Return True iff |
|
Return True iff |
|
Return True iff |
Classes
|
An ABox: concept assertions |
|
A general TBox: concept inclusions |
- class unicode_fol_kit.dl.tableau.TBox(inclusions=<factory>)[source]¶
Bases:
objectA general TBox: concept inclusions
C ⊑ Dand equivalencesC ≡ D.
- class unicode_fol_kit.dl.tableau.ABox(concept_assertions=<factory>, role_assertions=<factory>)[source]¶
Bases:
objectAn ABox: concept assertions
a : Cand role assertions(a, b) : r.- Parameters:
- unicode_fol_kit.dl.tableau.concept_satisfiable(concept, tbox=None)[source]¶
Return True iff
conceptis satisfiable with respect totbox.Satisfiable means some model places an individual in the concept while obeying every TBox axiom.
tbox=Noneis the empty TBox (pure concept satisfiability).
- unicode_fol_kit.dl.tableau.concept_unsatisfiable(concept, tbox=None)[source]¶
Return True iff
conceptis unsatisfiable with respect totbox.
- unicode_fol_kit.dl.tableau.subsumes(sub, sup, tbox=None)[source]¶
Return True iff
tboxentailssub ⊑ sup(every model putssubinsup).Decided by the standard reduction:
sub ⊑ supholds iffsub ⊓ ¬supis unsatisfiable with respect to the TBox.