unicode_fol_kit.dl¶
The dl subpackage — the description logic ALC.
Concept constructors (import unicode_fol_kit.dl as dl):
dl.Top(), dl.Bottom(), dl.Atomic("Person"), dl.Not(C),
dl.And(C, D), dl.Or(C, D), dl.Exists("hasChild", C), dl.ForAll("hasChild", C)
Reasoning over a (general) TBox / ABox:
dl.concept_satisfiable(C, tbox) # is C satisfiable w.r.t. the TBox?
dl.subsumes(C, D, tbox) # does the TBox entail C ⊑ D?
dl.equivalent(C, D, tbox) # C ≡ D?
dl.abox_consistent(abox, tbox) # is the knowledge base consistent?
ALC is exactly multi-modal K; the reasoner is a tableau with TBox internalisation
and subset blocking (see unicode_fol_kit.dl.tableau).
- class unicode_fol_kit.dl.Concept[source]¶
Bases:
objectBase class for ALC concept expressions (see the module docstring).
- class unicode_fol_kit.dl.Atomic(name)[source]¶
Bases:
ConceptA primitive concept name, e.g.
Atomic("Person").- Parameters:
name (str)
- class unicode_fol_kit.dl.Not(concept)[source]¶
Bases:
ConceptConcept complement ¬C.
- Parameters:
concept (Concept)
- class unicode_fol_kit.dl.Exists(role, concept)[source]¶
Bases:
ConceptExistential restriction ∃r.C — at least one
role-successor is inconcept.
- class unicode_fol_kit.dl.ForAll(role, concept)[source]¶
Bases:
ConceptValue restriction ∀r.C — every
role-successor is inconcept.
- unicode_fol_kit.dl.nnf(concept)[source]¶
Return
conceptin negation normal form (negation only on atomic concepts).Pushes ¬ inward with the De Morgan / modal dualities:
¬⊤ = ⊥,¬⊥ = ⊤,¬¬C = C,¬(C⊓D) = ¬C⊔¬D,¬(C⊔D) = ¬C⊓¬D,¬∃r.C = ∀r.¬C,¬∀r.C = ∃r.¬C.
- class unicode_fol_kit.dl.TBox(inclusions=<factory>)[source]¶
Bases:
objectA general TBox: concept inclusions
C ⊑ Dand equivalencesC ≡ D.
- class unicode_fol_kit.dl.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.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.concept_unsatisfiable(concept, tbox=None)[source]¶
Return True iff
conceptis unsatisfiable with respect totbox.
- unicode_fol_kit.dl.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.
- unicode_fol_kit.dl.equivalent(c, d, tbox=None)[source]¶
Return True iff
tboxentailsc ≡ d(mutual subsumption).
- unicode_fol_kit.dl.abox_consistent(abox, tbox=None)[source]¶
Return True iff the knowledge base
(tbox, abox)is consistent (has a model).
Modules