Semantic Web - 2. Description logics (2/2) fileSemantic Web 2. Description logics (2/2) Gerd Gr...
Transcript of Semantic Web - 2. Description logics (2/2) fileSemantic Web 2. Description logics (2/2) Gerd Gr...
Semantic Web2. Description logics (2/2)
Gerd Groner, Matthias Thimm
{groener,thimm}@uni-koblenz.de
Institute for Web Science and Technologies (WeST)University of Koblenz-Landau
July 9, 2013
Gerd Groner, Matthias Thimm Semantic Web 1 / 39
Recap
I Ontologies: definition and applications
I Structure of an ontologyI The description logic ALC:
I Syntax: signature, concepts, relations, axiomsI Semantic: interpretations, modelsI Inference: entailmentI ALC and first-order logics
Home assignment:Consider K2 = (T2,A2) given via
T2 = { B v D }A2 = { d : B, (c , d) : S }
Is the entailment K2 |= c : ∀S .D valid? (Home assignment)
Gerd Groner, Matthias Thimm Semantic Web 2 / 39
Recap
I Ontologies: definition and applications
I Structure of an ontologyI The description logic ALC:
I Syntax: signature, concepts, relations, axiomsI Semantic: interpretations, modelsI Inference: entailmentI ALC and first-order logics
Home assignment:Consider K2 = (T2,A2) given via
T2 = { B v D }A2 = { d : B, (c , d) : S }
Is the entailment K2 |= c : ∀S .D valid? (Home assignment)
Gerd Groner, Matthias Thimm Semantic Web 2 / 39
Overview
I Formal syntax and semantics provide the basis forunderstanding description logics
I Implementing the semantics of e. g. ALC is intractable forobtaining a proof procedure
I Generate all interpretationsI Check whether an interpretation satisfies a potential
conclusions
I Today we have a look at a very simple proof procedure fordeciding consistency: the Tableau Algorithm
I We also take another look at ontology languages in generaland applications
Gerd Groner, Matthias Thimm Semantic Web 3 / 39
Overview
I Formal syntax and semantics provide the basis forunderstanding description logics
I Implementing the semantics of e. g. ALC is intractable forobtaining a proof procedure
I Generate all interpretationsI Check whether an interpretation satisfies a potential
conclusions
I Today we have a look at a very simple proof procedure fordeciding consistency: the Tableau Algorithm
I We also take another look at ontology languages in generaland applications
Gerd Groner, Matthias Thimm Semantic Web 3 / 39
Overview
I Formal syntax and semantics provide the basis forunderstanding description logics
I Implementing the semantics of e. g. ALC is intractable forobtaining a proof procedure
I Generate all interpretationsI Check whether an interpretation satisfies a potential
conclusions
I Today we have a look at a very simple proof procedure fordeciding consistency: the Tableau Algorithm
I We also take another look at ontology languages in generaland applications
Gerd Groner, Matthias Thimm Semantic Web 3 / 39
Overview
I Formal syntax and semantics provide the basis forunderstanding description logics
I Implementing the semantics of e. g. ALC is intractable forobtaining a proof procedure
I Generate all interpretationsI Check whether an interpretation satisfies a potential
conclusions
I Today we have a look at a very simple proof procedure fordeciding consistency: the Tableau Algorithm
I We also take another look at ontology languages in generaland applications
Gerd Groner, Matthias Thimm Semantic Web 3 / 39
Outline
1 Reasoning with Description Logics
2 Ontology languages revisited
3 Tools
4 Summary and Exercises
Gerd Groner, Matthias Thimm Semantic Web 4 / 39
Outline
1 Reasoning with Description Logics
2 Ontology languages revisited
3 Tools
4 Summary and Exercises
Gerd Groner, Matthias Thimm Semantic Web 5 / 39
Inference tasks 1/2
In description logics one usually distinguishes the followinginference tasks:
I Subsumption problem: Given concepts C1,C2 does K entailC1 v C2?
I Instance checking problem: Given concept C and individual tdoes K entail t : C?
I Relation checking problem: Given relation R and individualst, t ′ does K entail (t, t ′) : R?
I Consistency problem: Is there I with I |= K?
Gerd Groner, Matthias Thimm Semantic Web 6 / 39
Inference tasks 2/2
The subsumption and the consistency problem are closely related:
I C2 subsumes C1 if C1 and ¬C2 are inconsistent:
K |= C1 v C2 if and only if ¬∃I : I |= K ∪ {t : (C1 u ¬C2)}
→ it suffices to investigate algorithms for checking consistency.
Gerd Groner, Matthias Thimm Semantic Web 7 / 39
Inference tasks 2/2
The subsumption and the consistency problem are closely related:
I C2 subsumes C1 if C1 and ¬C2 are inconsistent:
K |= C1 v C2 if and only if ¬∃I : I |= K ∪ {t : (C1 u ¬C2)}
→ it suffices to investigate algorithms for checking consistency.
Gerd Groner, Matthias Thimm Semantic Web 7 / 39
The Tableau Algorithm
Let K = (T ,A) be a knowledge base and consider the question
∃I : I |= K ?
The tableau algorithm tries to construct a model I of K:
I If this is successful, K is consistent
I otherwise it is inconsistent
It works on a set S of ABoxes and iteratively expands on it:
I S is initialized with the singleton S = {A}I Apply different rules on the elements of S depending on the
axioms in TI If no more rules are applicable, K is consistent if there is an
ABox A′ in S that is consistent (contains no axioms t : C ,t : ¬C )
Gerd Groner, Matthias Thimm Semantic Web 8 / 39
The Tableau Algorithm
Let K = (T ,A) be a knowledge base and consider the question
∃I : I |= K ?
The tableau algorithm tries to construct a model I of K:
I If this is successful, K is consistent
I otherwise it is inconsistent
It works on a set S of ABoxes and iteratively expands on it:
I S is initialized with the singleton S = {A}I Apply different rules on the elements of S depending on the
axioms in TI If no more rules are applicable, K is consistent if there is an
ABox A′ in S that is consistent (contains no axioms t : C ,t : ¬C )
Gerd Groner, Matthias Thimm Semantic Web 8 / 39
The Tableau Algorithm
Let K = (T ,A) be a knowledge base and consider the question
∃I : I |= K ?
The tableau algorithm tries to construct a model I of K:
I If this is successful, K is consistent
I otherwise it is inconsistent
It works on a set S of ABoxes and iteratively expands on it:
I S is initialized with the singleton S = {A}I Apply different rules on the elements of S depending on the
axioms in TI If no more rules are applicable, K is consistent if there is an
ABox A′ in S that is consistent (contains no axioms t : C ,t : ¬C )
Gerd Groner, Matthias Thimm Semantic Web 8 / 39
The Tableau Algorithm
Let K = (T ,A) be a knowledge base and consider the question
∃I : I |= K ?
The tableau algorithm tries to construct a model I of K:
I If this is successful, K is consistent
I otherwise it is inconsistent
It works on a set S of ABoxes and iteratively expands on it:
I S is initialized with the singleton S = {A}I Apply different rules on the elements of S depending on the
axioms in TI If no more rules are applicable, K is consistent if there is an
ABox A′ in S that is consistent (contains no axioms t : C ,t : ¬C )
Gerd Groner, Matthias Thimm Semantic Web 8 / 39
The Tableau Algorithm
Let K = (T ,A) be a knowledge base and consider the question
∃I : I |= K ?
The tableau algorithm tries to construct a model I of K:
I If this is successful, K is consistent
I otherwise it is inconsistent
It works on a set S of ABoxes and iteratively expands on it:
I S is initialized with the singleton S = {A}I Apply different rules on the elements of S depending on the
axioms in TI If no more rules are applicable, K is consistent if there is an
ABox A′ in S that is consistent (contains no axioms t : C ,t : ¬C )
Gerd Groner, Matthias Thimm Semantic Web 8 / 39
The Tableau Algorithm - Negation Normal Form
In order to apply the tableau algorithm we have to assume that Kis in negation normal form:
I ¬(C1 t C2) −→ ¬C1 u ¬C2
I ¬(C1 u C2) −→ ¬C1 t ¬C2
I ¬∃R.C −→ ∀R.(¬C )
I ¬∀R.C −→ ∃R.(¬C )
From now on, we assume that every concept appearing in anaxiom in K is in negation normal form. For example
¬(C1 u C2) v ¬∃R.¬(C3 t C4) −→ ¬C1 t ¬C2 v ∀R.(C3 t C4)
Gerd Groner, Matthias Thimm Semantic Web 9 / 39
The Tableau Algorithm - Negation Normal Form
In order to apply the tableau algorithm we have to assume that Kis in negation normal form:
I ¬(C1 t C2) −→ ¬C1 u ¬C2
I ¬(C1 u C2) −→ ¬C1 t ¬C2
I ¬∃R.C −→ ∀R.(¬C )
I ¬∀R.C −→ ∃R.(¬C )
From now on, we assume that every concept appearing in anaxiom in K is in negation normal form. For example
¬(C1 u C2) v ¬∃R.¬(C3 t C4) −→ ¬C1 t ¬C2 v ∀R.(C3 t C4)
Gerd Groner, Matthias Thimm Semantic Web 9 / 39
The Tableau Algorithm - Negation Normal Form
In order to apply the tableau algorithm we have to assume that Kis in negation normal form:
I ¬(C1 t C2) −→ ¬C1 u ¬C2
I ¬(C1 u C2) −→ ¬C1 t ¬C2
I ¬∃R.C −→ ∀R.(¬C )
I ¬∀R.C −→ ∃R.(¬C )
From now on, we assume that every concept appearing in anaxiom in K is in negation normal form. For example
¬(C1 u C2) v ¬∃R.¬(C3 t C4) −→ ¬C1 t ¬C2 v ∀R.(C3 t C4)
Gerd Groner, Matthias Thimm Semantic Web 9 / 39
The Tableau Algorithm - Rules 1/2
Let S be a set of ABoxes (initialized with S = {A}).
Let A′ ∈ S.
I u-rule: if t : C1 u C2 ∈ A′ and {t : C1, t : C2} * A′ thenremove A′ from S and add A′ ∪ {t : C1, t : C2} to S.
I t-rule: if t : C1 t C2 ∈ A′ and {t : C1, t : C2} ∩ A′ = ∅ thenremove A′ from S and add both A′ ∪ {t : C1} andA′ ∪ {t : C2} to S.
I ∃-rule: if t : ∃R.C ∈ A′ and there is no t ′ with{(t, t ′) : R, t ′ : C} ⊆ A′ then remove A′ from S, create a newindividual t ′′, and add A′ ∪ {(t, t ′′) : R, t ′′ : C} to S.
Gerd Groner, Matthias Thimm Semantic Web 10 / 39
The Tableau Algorithm - Rules 1/2
Let S be a set of ABoxes (initialized with S = {A}).
Let A′ ∈ S.
I u-rule: if t : C1 u C2 ∈ A′ and {t : C1, t : C2} * A′ thenremove A′ from S and add A′ ∪ {t : C1, t : C2} to S.
I t-rule: if t : C1 t C2 ∈ A′ and {t : C1, t : C2} ∩ A′ = ∅ thenremove A′ from S and add both A′ ∪ {t : C1} andA′ ∪ {t : C2} to S.
I ∃-rule: if t : ∃R.C ∈ A′ and there is no t ′ with{(t, t ′) : R, t ′ : C} ⊆ A′ then remove A′ from S, create a newindividual t ′′, and add A′ ∪ {(t, t ′′) : R, t ′′ : C} to S.
Gerd Groner, Matthias Thimm Semantic Web 10 / 39
The Tableau Algorithm - Rules 1/2
Let S be a set of ABoxes (initialized with S = {A}).
Let A′ ∈ S.
I u-rule: if t : C1 u C2 ∈ A′ and {t : C1, t : C2} * A′ thenremove A′ from S and add A′ ∪ {t : C1, t : C2} to S.
I t-rule: if t : C1 t C2 ∈ A′ and {t : C1, t : C2} ∩ A′ = ∅ thenremove A′ from S and add both A′ ∪ {t : C1} andA′ ∪ {t : C2} to S.
I ∃-rule: if t : ∃R.C ∈ A′ and there is no t ′ with{(t, t ′) : R, t ′ : C} ⊆ A′ then remove A′ from S, create a newindividual t ′′, and add A′ ∪ {(t, t ′′) : R, t ′′ : C} to S.
Gerd Groner, Matthias Thimm Semantic Web 10 / 39
The Tableau Algorithm - Rules 1/2
Let S be a set of ABoxes (initialized with S = {A}).
Let A′ ∈ S.
I u-rule: if t : C1 u C2 ∈ A′ and {t : C1, t : C2} * A′ thenremove A′ from S and add A′ ∪ {t : C1, t : C2} to S.
I t-rule: if t : C1 t C2 ∈ A′ and {t : C1, t : C2} ∩ A′ = ∅ thenremove A′ from S and add both A′ ∪ {t : C1} andA′ ∪ {t : C2} to S.
I ∃-rule: if t : ∃R.C ∈ A′ and there is no t ′ with{(t, t ′) : R, t ′ : C} ⊆ A′ then remove A′ from S, create a newindividual t ′′, and add A′ ∪ {(t, t ′′) : R, t ′′ : C} to S.
Gerd Groner, Matthias Thimm Semantic Web 10 / 39
The Tableau Algorithm - Rules 1/2
Let S be a set of ABoxes (initialized with S = {A}).
Let A′ ∈ S.
I u-rule: if t : C1 u C2 ∈ A′ and {t : C1, t : C2} * A′ thenremove A′ from S and add A′ ∪ {t : C1, t : C2} to S.
I t-rule: if t : C1 t C2 ∈ A′ and {t : C1, t : C2} ∩ A′ = ∅ thenremove A′ from S and add both A′ ∪ {t : C1} andA′ ∪ {t : C2} to S.
I ∃-rule: if t : ∃R.C ∈ A′ and there is no t ′ with{(t, t ′) : R, t ′ : C} ⊆ A′ then remove A′ from S, create a newindividual t ′′, and add A′ ∪ {(t, t ′′) : R, t ′′ : C} to S.
Gerd Groner, Matthias Thimm Semantic Web 10 / 39
The Tableau Algorithm - Rules 2/2
Let S be a set of ABoxes (initialized with S = {A}).
Let A′ ∈ S.
I ∀-rule: if {t : ∀R.C , (t, t ′) : R} ⊆ A′ and {t ′ : C} /∈ A′ thenremove A′ from S and add A′ ∪ {t ′ : C} to S.
I v-rule: if C1 v C2 ∈ T and t : (¬C1 t C2) /∈ A′ for tappearing in A′ then remove A′ from S and addA′ ∪ {t : (¬C1 t C2)} to S.
Gerd Groner, Matthias Thimm Semantic Web 11 / 39
The Tableau Algorithm - Rules 2/2
Let S be a set of ABoxes (initialized with S = {A}).
Let A′ ∈ S.
I ∀-rule: if {t : ∀R.C , (t, t ′) : R} ⊆ A′ and {t ′ : C} /∈ A′ thenremove A′ from S and add A′ ∪ {t ′ : C} to S.
I v-rule: if C1 v C2 ∈ T and t : (¬C1 t C2) /∈ A′ for tappearing in A′ then remove A′ from S and addA′ ∪ {t : (¬C1 t C2)} to S.
Gerd Groner, Matthias Thimm Semantic Web 11 / 39
The Tableau Algorithm - Rules 2/2
Let S be a set of ABoxes (initialized with S = {A}).
Let A′ ∈ S.
I ∀-rule: if {t : ∀R.C , (t, t ′) : R} ⊆ A′ and {t ′ : C} /∈ A′ thenremove A′ from S and add A′ ∪ {t ′ : C} to S.
I v-rule: if C1 v C2 ∈ T and t : (¬C1 t C2) /∈ A′ for tappearing in A′ then remove A′ from S and addA′ ∪ {t : (¬C1 t C2)} to S.
Gerd Groner, Matthias Thimm Semantic Web 11 / 39
The Tableau Algorithm - Rules 2/2
Let S be a set of ABoxes (initialized with S = {A}).
Let A′ ∈ S.
I ∀-rule: if {t : ∀R.C , (t, t ′) : R} ⊆ A′ and {t ′ : C} /∈ A′ thenremove A′ from S and add A′ ∪ {t ′ : C} to S.
I v-rule: if C1 v C2 ∈ T and t : (¬C1 t C2) /∈ A′ for tappearing in A′ then remove A′ from S and addA′ ∪ {t : (¬C1 t C2)} to S.
Gerd Groner, Matthias Thimm Semantic Web 11 / 39
The Tableau Algorithm - Approach
Let K = (T ,A) and A be consistent.
The tableau algorithm:
1. Set S = {A}2. Is some rule applicable?
I yes: goto 3I no: K is consistent; exit
3. Apply the rule to S4. Remove all A′ ∈ S with t : C , t : ¬C ∈ A′ (for some t,C )
5. S = ∅?I yes: K is inconsistent; exitI no: goto 2
Gerd Groner, Matthias Thimm Semantic Web 12 / 39
The Tableau Algorithm - Approach
Let K = (T ,A) and A be consistent.
The tableau algorithm:
1. Set S = {A}2. Is some rule applicable?
I yes: goto 3I no: K is consistent; exit
3. Apply the rule to S4. Remove all A′ ∈ S with t : C , t : ¬C ∈ A′ (for some t,C )
5. S = ∅?I yes: K is inconsistent; exitI no: goto 2
Gerd Groner, Matthias Thimm Semantic Web 12 / 39
The Tableau Algorithm - Example
Let K = (T ,A) be given via
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }
Observe:
I K is in negation normal form
I A is consistent
Initialize S = {{a : A, b : D, (a, b) : R}}.
Gerd Groner, Matthias Thimm Semantic Web 13 / 39
The Tableau Algorithm - Example
Let K = (T ,A) be given via
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }
Observe:
I K is in negation normal form
I A is consistent
Initialize S = {{a : A, b : D, (a, b) : R}}.
Gerd Groner, Matthias Thimm Semantic Web 13 / 39
The Tableau Algorithm - Example
Let K = (T ,A) be given via
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }
Observe:
I K is in negation normal form
I A is consistent
Initialize S = {{a : A, b : D, (a, b) : R}}.
Gerd Groner, Matthias Thimm Semantic Web 13 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R}}
v-rule: if C1 v C2 ∈ T and t : (¬C1 t C2) /∈ A′ for t appearing inA′ then remove A′ from S and add A′ ∪ {t : (¬C1 t C2)} to S.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 14 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R}}
v-rule: if C1 v C2 ∈ T and t : (¬C1 t C2) /∈ A′ for t appearing inA′ then remove A′ from S and add A′ ∪ {t : (¬C1 t C2)} to S.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 14 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R}}
v-rule: if C1 v C2 ∈ T and t : (¬C1 t C2) /∈ A′ for t appearing inA′ then remove A′ from S and add A′ ∪ {t : (¬C1 t C2)} to S.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 14 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C}}
t-rule: if t : C1 t C2 ∈ A′ and {t : C1, t : C2} ∩ A′ = ∅ thenremove A′ from S and add both A′ ∪ {t : C1} and A′ ∪ {t : C2} toS.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 15 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C}}
t-rule: if t : C1 t C2 ∈ A′ and {t : C1, t : C2} ∩ A′ = ∅ thenremove A′ from S and add both A′ ∪ {t : C1} and A′ ∪ {t : C2} toS.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 15 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C}}
t-rule: if t : C1 t C2 ∈ A′ and {t : C1, t : C2} ∩ A′ = ∅ thenremove A′ from S and add both A′ ∪ {t : C1} and A′ ∪ {t : C2} toS.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 15 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C}}
t-rule: if t : C1 t C2 ∈ A′ and {t : C1, t : C2} ∩ A′ = ∅ thenremove A′ from S and add both A′ ∪ {t : C1} and A′ ∪ {t : C2} toS.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ¬A},←{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 16 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C}}
t-rule: if t : C1 t C2 ∈ A′ and {t : C1, t : C2} ∩ A′ = ∅ thenremove A′ from S and add both A′ ∪ {t : C1} and A′ ∪ {t : C2} toS.
S = {((((((((((((((((((((((
{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 17 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C}}
∃-rule: if t : ∃R.C ∈ A′ and there is no t ′ with{(t, t ′) : R, t ′ : C} ⊆ A′ then remove A′ from S, create a newindividual t ′′, and add A′ ∪ {(t, t ′′) : R, t ′′ : C} to S.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C ,
(a, t ′′) : R, t ′′ : C}}
Gerd Groner, Matthias Thimm Semantic Web 18 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C}}
∃-rule: if t : ∃R.C ∈ A′ and there is no t ′ with{(t, t ′) : R, t ′ : C} ⊆ A′ then remove A′ from S, create a newindividual t ′′, and add A′ ∪ {(t, t ′′) : R, t ′′ : C} to S.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C ,
(a, t ′′) : R, t ′′ : C}}
Gerd Groner, Matthias Thimm Semantic Web 18 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C ,
(a, t ′′) : R, t ′′ : C}}
v-rule: if C1 v C2 ∈ T and t : (¬C1 t C2) /∈ A′ for t appearing inA′ then remove A′ from S and add A′ ∪ {t : (¬C1 t C2)} to S.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t ′′) : R, t ′′ : C ,
b : ¬A t ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 19 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C ,
(a, t ′′) : R, t ′′ : C}}
v-rule: if C1 v C2 ∈ T and t : (¬C1 t C2) /∈ A′ for t appearing inA′ then remove A′ from S and add A′ ∪ {t : (¬C1 t C2)} to S.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t ′′) : R, t ′′ : C ,
b : ¬A t ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 19 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C ,
(a, t ′′) : R, t ′′ : C}}
v-rule: if C1 v C2 ∈ T and t : (¬C1 t C2) /∈ A′ for t appearing inA′ then remove A′ from S and add A′ ∪ {t : (¬C1 t C2)} to S.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t ′′) : R, t ′′ : C ,
b : ¬A t ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 19 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t ′′) : R, t ′′ : C ,
b : ¬A t ∃R.C}}
t-rule: if t : C1 t C2 ∈ A′ and {t : C1, t : C2} ∩ A′ = ∅ thenremove A′ from S and add both A′ ∪ {t : C1} and A′ ∪ {t : C2} toS.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t ′′) : R, t ′′ : C ,
b : ¬A t ∃R.C , b : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t ′′) : R, t ′′ : C ,
b : ¬A t ∃R.C , b : ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 20 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t ′′) : R, t ′′ : C ,
b : ¬A t ∃R.C}}
t-rule: if t : C1 t C2 ∈ A′ and {t : C1, t : C2} ∩ A′ = ∅ thenremove A′ from S and add both A′ ∪ {t : C1} and A′ ∪ {t : C2} toS.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t ′′) : R, t ′′ : C ,
b : ¬A t ∃R.C , b : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t ′′) : R, t ′′ : C ,
b : ¬A t ∃R.C , b : ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 20 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t ′′) : R, t ′′ : C ,
b : ¬A t ∃R.C}}
t-rule: if t : C1 t C2 ∈ A′ and {t : C1, t : C2} ∩ A′ = ∅ thenremove A′ from S and add both A′ ∪ {t : C1} and A′ ∪ {t : C2} toS.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t ′′) : R, t ′′ : C ,
b : ¬A t ∃R.C , b : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t ′′) : R, t ′′ : C ,
b : ¬A t ∃R.C , b : ∃R.C}}
Gerd Groner, Matthias Thimm Semantic Web 20 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ∃R.C}}
∃-rule: if t : ∃R.C ∈ A′ and there is no t′ with {(t, t′) : R, t′ : C} ⊆ A′ thenremove A′ from S, create a new individual t′′, and addA′ ∪ {(t, t′′) : R, t′′ : C} to S.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ∃R.C , (b, t′′′) : R, t′′′ : C}}
Gerd Groner, Matthias Thimm Semantic Web 21 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ∃R.C}}
∃-rule: if t : ∃R.C ∈ A′ and there is no t′ with {(t, t′) : R, t′ : C} ⊆ A′ thenremove A′ from S, create a new individual t′′, and addA′ ∪ {(t, t′′) : R, t′′ : C} to S.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ∃R.C , (b, t′′′) : R, t′′′ : C}}
Gerd Groner, Matthias Thimm Semantic Web 21 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ∃R.C}}
∃-rule: if t : ∃R.C ∈ A′ and there is no t′ with {(t, t′) : R, t′ : C} ⊆ A′ thenremove A′ from S, create a new individual t′′, and addA′ ∪ {(t, t′′) : R, t′′ : C} to S.
S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ∃R.C , (b, t′′′) : R, t′′′ : C}}
Gerd Groner, Matthias Thimm Semantic Web 21 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ∃R.C , (b, t′′′) : R, t′′′ : C}}
Observations:
I No more rules applicable
I All ABoxes in S are consistent
→ The knowledge base K is consistent.
Gerd Groner, Matthias Thimm Semantic Web 22 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ∃R.C , (b, t′′′) : R, t′′′ : C}}
Observations:
I No more rules applicable
I All ABoxes in S are consistent
→ The knowledge base K is consistent.
Gerd Groner, Matthias Thimm Semantic Web 22 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ∃R.C , (b, t′′′) : R, t′′′ : C}}
Observations:
I No more rules applicable
I All ABoxes in S are consistent
→ The knowledge base K is consistent.
Gerd Groner, Matthias Thimm Semantic Web 22 / 39
The Tableau Algorithm - Example cont’d
T = { A v ∃R.C }A = { a : A, b : D, (a, b) : R }S = {{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ¬A},{a : A, b : D, (a, b) : R, a : ¬A t ∃R.C , a : ∃R.C , (a, t′′) : R, t′′ : C ,
b : ¬A t ∃R.C , b : ∃R.C , (b, t′′′) : R, t′′′ : C}}
Observations:
I No more rules applicable
I All ABoxes in S are consistent
→ The knowledge base K is consistent.
Gerd Groner, Matthias Thimm Semantic Web 22 / 39
The Tableau Algorithm - Observations
I If a rule has been applied to an ABox in S it will never beapplied again (with the same parameters)
I Only the t-rule adds a new ABox to SI If A′ replaces A then A ⊆ A′
Theorem
I If the tableau algorithm terminates with S = ∅ then K isinconsistent
I If the tableau algorithm terminates with S 6= ∅ then K isconsistent
What about termination?
Gerd Groner, Matthias Thimm Semantic Web 23 / 39
The Tableau Algorithm - Observations
I If a rule has been applied to an ABox in S it will never beapplied again (with the same parameters)
I Only the t-rule adds a new ABox to SI If A′ replaces A then A ⊆ A′
Theorem
I If the tableau algorithm terminates with S = ∅ then K isinconsistent
I If the tableau algorithm terminates with S 6= ∅ then K isconsistent
What about termination?
Gerd Groner, Matthias Thimm Semantic Web 23 / 39
The Tableau Algorithm - Observations
I If a rule has been applied to an ABox in S it will never beapplied again (with the same parameters)
I Only the t-rule adds a new ABox to SI If A′ replaces A then A ⊆ A′
Theorem
I If the tableau algorithm terminates with S = ∅ then K isinconsistent
I If the tableau algorithm terminates with S 6= ∅ then K isconsistent
What about termination?
Gerd Groner, Matthias Thimm Semantic Web 23 / 39
The Tableau Algorithm - Observations
I If a rule has been applied to an ABox in S it will never beapplied again (with the same parameters)
I Only the t-rule adds a new ABox to SI If A′ replaces A then A ⊆ A′
Theorem
I If the tableau algorithm terminates with S = ∅ then K isinconsistent
I If the tableau algorithm terminates with S 6= ∅ then K isconsistent
What about termination?
Gerd Groner, Matthias Thimm Semantic Web 23 / 39
The Tableau Algorithm - Observations
I If a rule has been applied to an ABox in S it will never beapplied again (with the same parameters)
I Only the t-rule adds a new ABox to SI If A′ replaces A then A ⊆ A′
Theorem
I If the tableau algorithm terminates with S = ∅ then K isinconsistent
I If the tableau algorithm terminates with S 6= ∅ then K isconsistent
What about termination?
Gerd Groner, Matthias Thimm Semantic Web 23 / 39
The Tableau Algorithm - Blocking Rules
What happens when applying the tableau algorithm to
T = { A v ∃R.A }A = { a : A } ?
→ Infinite application of the v- and t- and ∃-rules.
To ensure termination we introduce the notion of block. If
I t is an individual created by application of a rule andI there is an individual t ′ with
1. {C | t : C ∈ A} ⊆ {C | t ′ : C ∈ A} and2. t ′ has been created before t
then t is blocked (by t ′).
Gerd Groner, Matthias Thimm Semantic Web 24 / 39
The Tableau Algorithm - Blocking Rules
What happens when applying the tableau algorithm to
T = { A v ∃R.A }A = { a : A } ?
→ Infinite application of the v- and t- and ∃-rules.
To ensure termination we introduce the notion of block. If
I t is an individual created by application of a rule andI there is an individual t ′ with
1. {C | t : C ∈ A} ⊆ {C | t ′ : C ∈ A} and2. t ′ has been created before t
then t is blocked (by t ′).
Gerd Groner, Matthias Thimm Semantic Web 24 / 39
The Tableau Algorithm - Blocking Rules
What happens when applying the tableau algorithm to
T = { A v ∃R.A }A = { a : A } ?
→ Infinite application of the v- and t- and ∃-rules.
To ensure termination we introduce the notion of block. If
I t is an individual created by application of a rule andI there is an individual t ′ with
1. {C | t : C ∈ A} ⊆ {C | t ′ : C ∈ A} and2. t ′ has been created before t
then t is blocked (by t ′).
Gerd Groner, Matthias Thimm Semantic Web 24 / 39
The Tableau Algorithm - Blocking Rules cont’d
I u-rule: if t : C1 u C2 ∈ A′, t is not blocked, and{t : C1, t : C2} * A′ then remove A′ from S and addA′ ∪ {t : C1, t : C2} to S.
I t-rule: if t : C1 t C2 ∈ A′, t is not blocked, and{t : C1, t : C2} ∩A′ = ∅ then remove A′ from S and add bothA′ ∪ {t : C1} and A′ ∪ {t : C2} to S.
I ∃-rule: if t : ∃R.C ∈ A′, t is not blocked, and there is no t ′
with {(t, t ′) : R, t ′ : C} ⊆ A′ then remove A′ from S, createa new individual t ′′, and add A′ ∪ {(t, t ′′) : R, t ′′ : C} to S.
I ∀-rule: if {t : ∀R.C , (t, t ′) : R} ⊆ A′, t is not blocked, and{t ′ : C} /∈ A′ then remove A′ from S and add A′ ∪ {t ′ : C}to S.
I v-rule: if C1 v C2 ∈ T , t is not blocked, andt : (¬C1 t C2) /∈ A′ for t appearing in A′ then remove A′
from S and add A′ ∪ {t : (¬C1 t C2)} to S.
Gerd Groner, Matthias Thimm Semantic Web 25 / 39
The Tableau Algorithm - Blocking Rules cont’d
What happens now to
T = { A v ∃R.A }A = { a : A } ?
Theorem
I When the tableau algorithm with blocking terminates withS = ∅ then K is inconsistent
I When the tableau algorithm with blocking terminates withS 6= ∅ then K is consistent
I The tableau algorithm with blocking always terminates onALC.
I The tableau algorithm with blocking runs in EXPSPACE(worst case).
Gerd Groner, Matthias Thimm Semantic Web 26 / 39
The Tableau Algorithm - Blocking Rules cont’d
What happens now to
T = { A v ∃R.A }A = { a : A } ?
Theorem
I When the tableau algorithm with blocking terminates withS = ∅ then K is inconsistent
I When the tableau algorithm with blocking terminates withS 6= ∅ then K is consistent
I The tableau algorithm with blocking always terminates onALC.
I The tableau algorithm with blocking runs in EXPSPACE(worst case).
Gerd Groner, Matthias Thimm Semantic Web 26 / 39
The Tableau Algorithm - Blocking Rules cont’d
What happens now to
T = { A v ∃R.A }A = { a : A } ?
Theorem
I When the tableau algorithm with blocking terminates withS = ∅ then K is inconsistent
I When the tableau algorithm with blocking terminates withS 6= ∅ then K is consistent
I The tableau algorithm with blocking always terminates onALC.
I The tableau algorithm with blocking runs in EXPSPACE(worst case).
Gerd Groner, Matthias Thimm Semantic Web 26 / 39
The Tableau Algorithm - Blocking Rules cont’d
What happens now to
T = { A v ∃R.A }A = { a : A } ?
Theorem
I When the tableau algorithm with blocking terminates withS = ∅ then K is inconsistent
I When the tableau algorithm with blocking terminates withS 6= ∅ then K is consistent
I The tableau algorithm with blocking always terminates onALC.
I The tableau algorithm with blocking runs in EXPSPACE(worst case).
Gerd Groner, Matthias Thimm Semantic Web 26 / 39
The Tableau Algorithm - Blocking Rules cont’d
What happens now to
T = { A v ∃R.A }A = { a : A } ?
Theorem
I When the tableau algorithm with blocking terminates withS = ∅ then K is inconsistent
I When the tableau algorithm with blocking terminates withS 6= ∅ then K is consistent
I The tableau algorithm with blocking always terminates onALC.
I The tableau algorithm with blocking runs in EXPSPACE(worst case).
Gerd Groner, Matthias Thimm Semantic Web 26 / 39
Outline
1 Reasoning with Description Logics
2 Ontology languages revisited
3 Tools
4 Summary and Exercises
Gerd Groner, Matthias Thimm Semantic Web 27 / 39
Ontology languages revisited
I ALC is just one example of a description logicI Over the years a lot of different description logics have been
proposed that differ inI complexityI expressiveness
I The search for the right description logic is ongoing
I There is always the issue of balancing between complexity andexpressiveness
Gerd Groner, Matthias Thimm Semantic Web 28 / 39
Ontology languages revisited
I ALC is just one example of a description logicI Over the years a lot of different description logics have been
proposed that differ inI complexityI expressiveness
I The search for the right description logic is ongoing
I There is always the issue of balancing between complexity andexpressiveness
Gerd Groner, Matthias Thimm Semantic Web 28 / 39
Ontology languages revisited
I ALC is just one example of a description logicI Over the years a lot of different description logics have been
proposed that differ inI complexityI expressiveness
I The search for the right description logic is ongoing
I There is always the issue of balancing between complexity andexpressiveness
Gerd Groner, Matthias Thimm Semantic Web 28 / 39
Ontology languages revisited
I ALC is just one example of a description logicI Over the years a lot of different description logics have been
proposed that differ inI complexityI expressiveness
I The search for the right description logic is ongoing
I There is always the issue of balancing between complexity andexpressiveness
Gerd Groner, Matthias Thimm Semantic Web 28 / 39
Ontology languages revisited
The base description logic is ALC (Attributive Language withComplements).
Further features include
I N : unqualified number restrictions: (≥3 hasChild)
I Qualified number restrictions: (≥2 hasChild .Female)
I One-of (nominals): {t1, . . . , tn}I Functionality: (≤ hasFather)I Role operators:
I I: role inverse: hasChild− ≡ hasParentI S: Transitive roles tr(R) (tr(hasParent) ≡ hasAncestor)I H: role hierarchies: R ◦ R ′ ⊆ R ′′
(hasParent ◦ hasParent ≡ hasGrandparent)I . . .
Gerd Groner, Matthias Thimm Semantic Web 29 / 39
Ontology languages revisited
The base description logic is ALC (Attributive Language withComplements).
Further features include
I N : unqualified number restrictions: (≥3 hasChild)
I Qualified number restrictions: (≥2 hasChild .Female)
I One-of (nominals): {t1, . . . , tn}I Functionality: (≤ hasFather)I Role operators:
I I: role inverse: hasChild− ≡ hasParentI S: Transitive roles tr(R) (tr(hasParent) ≡ hasAncestor)I H: role hierarchies: R ◦ R ′ ⊆ R ′′
(hasParent ◦ hasParent ≡ hasGrandparent)I . . .
Gerd Groner, Matthias Thimm Semantic Web 29 / 39
Ontology languages revisited
The base description logic is ALC (Attributive Language withComplements).
Further features include
I N : unqualified number restrictions: (≥3 hasChild)
I Qualified number restrictions: (≥2 hasChild .Female)
I One-of (nominals): {t1, . . . , tn}I Functionality: (≤ hasFather)I Role operators:
I I: role inverse: hasChild− ≡ hasParentI S: Transitive roles tr(R) (tr(hasParent) ≡ hasAncestor)I H: role hierarchies: R ◦ R ′ ⊆ R ′′
(hasParent ◦ hasParent ≡ hasGrandparent)I . . .
Gerd Groner, Matthias Thimm Semantic Web 29 / 39
Ontology languages revisited
The base description logic is ALC (Attributive Language withComplements).
Further features include
I N : unqualified number restrictions: (≥3 hasChild)
I Qualified number restrictions: (≥2 hasChild .Female)
I One-of (nominals): {t1, . . . , tn}I Functionality: (≤ hasFather)I Role operators:
I I: role inverse: hasChild− ≡ hasParentI S: Transitive roles tr(R) (tr(hasParent) ≡ hasAncestor)I H: role hierarchies: R ◦ R ′ ⊆ R ′′
(hasParent ◦ hasParent ≡ hasGrandparent)I . . .
Gerd Groner, Matthias Thimm Semantic Web 29 / 39
Ontology languages revisited
The base description logic is ALC (Attributive Language withComplements).
Further features include
I N : unqualified number restrictions: (≥3 hasChild)
I Qualified number restrictions: (≥2 hasChild .Female)
I One-of (nominals): {t1, . . . , tn}I Functionality: (≤ hasFather)I Role operators:
I I: role inverse: hasChild− ≡ hasParentI S: Transitive roles tr(R) (tr(hasParent) ≡ hasAncestor)I H: role hierarchies: R ◦ R ′ ⊆ R ′′
(hasParent ◦ hasParent ≡ hasGrandparent)I . . .
Gerd Groner, Matthias Thimm Semantic Web 29 / 39
Ontology languages revisited
The base description logic is ALC (Attributive Language withComplements).
Further features include
I N : unqualified number restrictions: (≥3 hasChild)
I Qualified number restrictions: (≥2 hasChild .Female)
I One-of (nominals): {t1, . . . , tn}I Functionality: (≤ hasFather)I Role operators:
I I: role inverse: hasChild− ≡ hasParentI S: Transitive roles tr(R) (tr(hasParent) ≡ hasAncestor)I H: role hierarchies: R ◦ R ′ ⊆ R ′′
(hasParent ◦ hasParent ≡ hasGrandparent)I . . .
Gerd Groner, Matthias Thimm Semantic Web 29 / 39
Ontology languages revisited
The base description logic is ALC (Attributive Language withComplements).
Further features include
I N : unqualified number restrictions: (≥3 hasChild)
I Qualified number restrictions: (≥2 hasChild .Female)
I One-of (nominals): {t1, . . . , tn}I Functionality: (≤ hasFather)I Role operators:
I I: role inverse: hasChild− ≡ hasParentI S: Transitive roles tr(R) (tr(hasParent) ≡ hasAncestor)I H: role hierarchies: R ◦ R ′ ⊆ R ′′
(hasParent ◦ hasParent ≡ hasGrandparent)I . . .
Gerd Groner, Matthias Thimm Semantic Web 29 / 39
Ontology languages revisited
The base description logic is ALC (Attributive Language withComplements).
Further features include
I N : unqualified number restrictions: (≥3 hasChild)
I Qualified number restrictions: (≥2 hasChild .Female)
I One-of (nominals): {t1, . . . , tn}I Functionality: (≤ hasFather)I Role operators:
I I: role inverse: hasChild− ≡ hasParentI S: Transitive roles tr(R) (tr(hasParent) ≡ hasAncestor)I H: role hierarchies: R ◦ R ′ ⊆ R ′′
(hasParent ◦ hasParent ≡ hasGrandparent)I . . .
Gerd Groner, Matthias Thimm Semantic Web 29 / 39
Ontology languages revisited
I Other description logic types can be described by their names:
I ALCQIO: ALC with qualified number restrictions, inverseroles, and nominals.
I SHOIN : ALC with transitive roles, role hierarchies, roleinverse, nominals, unqualified number restrictions (this is thesame as OWL-DL)
I Some description languages with further restrictions:I EL: Only C1 u C2 and ∃R.> allowedI EL+ +: EL with nominals and some additional role operators
Gerd Groner, Matthias Thimm Semantic Web 30 / 39
Ontology languages revisited
I Other description logic types can be described by their names:
I ALCQIO: ALC with qualified number restrictions, inverseroles, and nominals.
I SHOIN : ALC with transitive roles, role hierarchies, roleinverse, nominals, unqualified number restrictions (this is thesame as OWL-DL)
I Some description languages with further restrictions:I EL: Only C1 u C2 and ∃R.> allowedI EL+ +: EL with nominals and some additional role operators
Gerd Groner, Matthias Thimm Semantic Web 30 / 39
Ontology languages revisited
I Other description logic types can be described by their names:
I ALCQIO: ALC with qualified number restrictions, inverseroles, and nominals.
I SHOIN : ALC with transitive roles, role hierarchies, roleinverse, nominals, unqualified number restrictions (this is thesame as OWL-DL)
I Some description languages with further restrictions:I EL: Only C1 u C2 and ∃R.> allowedI EL+ +: EL with nominals and some additional role operators
Gerd Groner, Matthias Thimm Semantic Web 30 / 39
Ontology languages revisited
I Other description logic types can be described by their names:
I ALCQIO: ALC with qualified number restrictions, inverseroles, and nominals.
I SHOIN : ALC with transitive roles, role hierarchies, roleinverse, nominals, unqualified number restrictions (this is thesame as OWL-DL)
I Some description languages with further restrictions:I EL: Only C1 u C2 and ∃R.> allowedI EL+ +: EL with nominals and some additional role operators
Gerd Groner, Matthias Thimm Semantic Web 30 / 39
Outline
1 Reasoning with Description Logics
2 Ontology languages revisited
3 Tools
4 Summary and Exercises
Gerd Groner, Matthias Thimm Semantic Web 31 / 39
Tools
I In contrast to many other KR languages (propositional logic,default logic, . . . ) description logics have been developed outof the need to apply them
I Therefore, a lot of tools are around that enable ontologyengineering using description logics
Gerd Groner, Matthias Thimm Semantic Web 32 / 39
Tools
I In contrast to many other KR languages (propositional logic,default logic, . . . ) description logics have been developed outof the need to apply them
I Therefore, a lot of tools are around that enable ontologyengineering using description logics
Gerd Groner, Matthias Thimm Semantic Web 32 / 39
Tools: Protege
I Free open-source ontology editor
I Webpage: http://protege.stanford.edu
Gerd Groner, Matthias Thimm Semantic Web 33 / 39
Tools: RacerPro
I Commercial description logic reasonerI Webpage: http://www.franz.com/agraph/racer
Gerd Groner, Matthias Thimm Semantic Web 34 / 39
Further Tools
HermiT
I Free open-source description logic reasoner (OWL)
I Webpage: http://hermit-reasoner.com
FacT++
I Free open-source description logic reasoner
I Webpage: http://owl.man.ac.uk/factplusplus/
OWL API
I Official open source JAVA interfaces for programming DLapplications
I Webpage: http://owlapi.sourceforge.net
Gerd Groner, Matthias Thimm Semantic Web 35 / 39
Further Tools
HermiT
I Free open-source description logic reasoner (OWL)
I Webpage: http://hermit-reasoner.com
FacT++
I Free open-source description logic reasoner
I Webpage: http://owl.man.ac.uk/factplusplus/
OWL API
I Official open source JAVA interfaces for programming DLapplications
I Webpage: http://owlapi.sourceforge.net
Gerd Groner, Matthias Thimm Semantic Web 35 / 39
Further Tools
HermiT
I Free open-source description logic reasoner (OWL)
I Webpage: http://hermit-reasoner.com
FacT++
I Free open-source description logic reasoner
I Webpage: http://owl.man.ac.uk/factplusplus/
OWL API
I Official open source JAVA interfaces for programming DLapplications
I Webpage: http://owlapi.sourceforge.net
Gerd Groner, Matthias Thimm Semantic Web 35 / 39
Outline
1 Reasoning with Description Logics
2 Ontology languages revisited
3 Tools
4 Summary and Exercises
Gerd Groner, Matthias Thimm Semantic Web 36 / 39
Summary
I The tableau algorithm for ALC:I checks consistency of a knowledge baseI sound and completeI terminates always when using blocks
I Ontology languages revisitedI Nomenclature of description logicsI expressivity vs. complexity
I Tools for working with description logics
Gerd Groner, Matthias Thimm Semantic Web 37 / 39
Pointers to further reading
I The Description Logic Complexity Navigatorhttp://www.cs.man.ac.uk/~ezolin/dl/
I Franz Baader. Tableau Algorithms for Description Logics.http://lat.inf.tu-dresden.de/~baader/Talks/
Tableaux2000.pdf
I Franz Baader, Ulrike Sattler. An Overview of TableauAlgorithms for Description Logics. http:
//www.eecs.yorku.ca/course_archive/2010-11/F/
6390A/DLmaterial/BaaderSattler-tableauxForDL.pdf
Gerd Groner, Matthias Thimm Semantic Web 38 / 39
Exercises
I Apply the tableau algorithm to check whether the knowledgebase K = (T ,A) is consistent:
T = { A v C ,B v ¬C }A = { a : A, a : B }
I Download Protege (http://protege.stanford.edu) andplay around with it (Home assignment)
I Apply the tableau algorithm with blocking to check whetherthe knowledge base K = (T ,A) is consistent:
T = { A v ∃R.B, B v A u ∀S .C }A = { a : A }
(Home assignment)
Gerd Groner, Matthias Thimm Semantic Web 39 / 39
Exercises
I Apply the tableau algorithm to check whether the knowledgebase K = (T ,A) is consistent:
T = { A v C ,B v ¬C }A = { a : A, a : B }
I Download Protege (http://protege.stanford.edu) andplay around with it (Home assignment)
I Apply the tableau algorithm with blocking to check whetherthe knowledge base K = (T ,A) is consistent:
T = { A v ∃R.B, B v A u ∀S .C }A = { a : A }
(Home assignment)
Gerd Groner, Matthias Thimm Semantic Web 39 / 39
Exercises
I Apply the tableau algorithm to check whether the knowledgebase K = (T ,A) is consistent:
T = { A v C ,B v ¬C }A = { a : A, a : B }
I Download Protege (http://protege.stanford.edu) andplay around with it (Home assignment)
I Apply the tableau algorithm with blocking to check whetherthe knowledge base K = (T ,A) is consistent:
T = { A v ∃R.B, B v A u ∀S .C }A = { a : A }
(Home assignment)
Gerd Groner, Matthias Thimm Semantic Web 39 / 39