unicode_fol_kit.dl.concepts¶
The description logic ALC: concept expressions, roles, and negation normal form.
ALC (Attributive Language with Complements) is the smallest propositionally closed description logic and the notation underlying OWL. Its concepts describe sets of individuals and its roles binary relations between them:
Top(⊤) — everything;Bottom(⊥) — nothing;Atomic("C")— a primitive concept name;Not(C)(¬C),And(C, D)(C ⊓ D),Or(C, D)(C ⊔ D);Exists("r", C)(∃r.C) — has anr-successor inC;ForAll("r", C)(∀r.C) — allr-successors are inC.
ALC is exactly the multi-modal logic K (a role r is a modality, ∃r its ◇
and ∀r its □), which is why it is decidable. nnf() rewrites a concept to
negation normal form (negation only on atomic concepts), the shape the tableau in
unicode_fol_kit.dl.tableau consumes.
The classes live in the dl namespace (import unicode_fol_kit.dl as dl); the
names And / Or / Not are the concept constructors, distinct from the FOL
AST’s connectives.
Functions
|
Return |
Classes
|
Concept intersection C ⊓ D. |
|
A primitive concept name, e.g. |
|
The empty concept ⊥ (no individual). |
|
Base class for ALC concept expressions (see the module docstring). |
|
Existential restriction ∃r.C — at least one |
|
Value restriction ∀r.C — every |
|
Concept complement ¬C. |
|
Concept union C ⊔ D. |
|
The universal concept ⊤ (every individual). |
- class unicode_fol_kit.dl.concepts.Concept[source]¶
Bases:
objectBase class for ALC concept expressions (see the module docstring).
- class unicode_fol_kit.dl.concepts.Top[source]¶
Bases:
ConceptThe universal concept ⊤ (every individual).
- class unicode_fol_kit.dl.concepts.Bottom[source]¶
Bases:
ConceptThe empty concept ⊥ (no individual).
- class unicode_fol_kit.dl.concepts.Atomic(name)[source]¶
Bases:
ConceptA primitive concept name, e.g.
Atomic("Person").- Parameters:
name (str)
- class unicode_fol_kit.dl.concepts.Not(concept)[source]¶
Bases:
ConceptConcept complement ¬C.
- Parameters:
concept (Concept)
- class unicode_fol_kit.dl.concepts.And(left, right)[source]¶
Bases:
ConceptConcept intersection C ⊓ D.
- class unicode_fol_kit.dl.concepts.Exists(role, concept)[source]¶
Bases:
ConceptExistential restriction ∃r.C — at least one
role-successor is inconcept.
- class unicode_fol_kit.dl.concepts.ForAll(role, concept)[source]¶
Bases:
ConceptValue restriction ∀r.C — every
role-successor is inconcept.