notes on dl reasoning shawn bowers april, 2004. outline the alc description logic running examples...
TRANSCRIPT
Outline
• The ALC Description Logic• Running Examples• Subsumption as Satisfiability testing• The approach: unfold, normalize, prove• Classification• Some Prolog
This material primarily taken from:– I. Horrocks, Optimising Tableaux Decision Procedures for Description Logics,
Ph.D. Thesis, University of Manchester, 1997.– F. Baader, D. Calvanese, D. McGuinness, D. Nardi, P. Patel-Schneider (eds.),
The Description Logic Handbook: Theory, Implementation and Applications, Cambridge Press, 2003.
The ALC Description Logic (def. by [Horrocks])
Axioms:
C ⊑ D C ≡ D
where C and D are concept expressions
Concept Expressions:
CN ⊤ C C ⊓ D C ⊔ D R.C R.C
where CN is a concept name, C and D are concept expressions, and R is a role expression
Role Expressions are of the form RN, where RN is a role name
Running examples
vegan ≡ person ⊓ eats.plant
vegetarian ≡ person ⊓ eats.(plant ⊔ dairy)
Based on these two definitions, is vegan subsumed by vegetarian (i.e., are all vegans
vegetarians)? … why?
Running examples
woman ≡ person ⊓ female
man ≡ person ⊓ woman
mother ≡ woman ⊓ hasChild.person
father ≡ man ⊓ hasChild.person
Running examples
woman ≡ person ⊓ female
man ≡ person ⊓ woman
mother ≡ woman ⊓ hasChild.person
father ≡ man ⊓ hasChild.person
Is mother equivalent to a female person that has at least one person as a child? … why? (this
should be obvious)
Running examples
animal ⊑ organism
plant ⊑ organism
person ⊑ animal
grass ⊑ plant
cow ⊑ animal ⊓ eats.grass
carnivore ≡ organism ⊓ eats.animal
rancher ⊑ animal ⊓ eats.cow
Running examples
animal ⊑ organism
plant ⊑ organism
person ⊑ animal
grass ⊑ plant
cow ⊑ animal ⊓ eats.grass
carnivore ≡ organism ⊓ eats.animal
rancher ⊑ animal ⊓ eats.cow
Is rancher subsumed by carnivore? … why?
Subsumption as Satisfiability TestingGiven a set of DL axioms a1, a2, …, an,
representing a knowledge-base KB …
Concept description D1 is subsumed by concept description D2, if the following returns true:
subsumedBy(KB, D1, D2)
Subsumption testing is the main operation of a DL reasoner
Subsumption as Satisfiability TestingSubsumption reduces to checking satisfiability:
subsumedBy(KB, D1, D2) = D1 ⊑KB D2 (isa w.r.t. KB)
= KB ⊓ (D1 ⊑ D2) ⊨
= KB ⊓ (D1 ⊔ D2) ⊨
= KB ⊓ D1 ⊓ D2 ⊨
= a1 ⊓ a2 ⊓ … ⊓ an ⊓ D1 ⊓ D2 ⊨
We prove D1 ⊑ D2 by showing D1 ⊓ D2 always leads to a contradiction
The approach: unfold, normalize, prove
Unfolding is a simplifying step:
Instead of proving all of: KB ⊓ D1 ⊓ D2 ⊨ ,
We “expand” D1 and D2 with their definitions
in KB … i.e., we unfold D1 and D2 w.r.t. KB
Thus, we end up only proving: U1 ⊓ U2 ⊨ , where unfold(D1, U1), and unfold(D2, U2).
Unfolding Example
animal ⊑ organism
plant ⊑ organism
person ⊑ animal
grass ⊑ plant
cow ⊑ animal ⊓ eats.grass
carnivore ≡ organism ⊓ eats.animal
rancher ⊑ animal ⊓ eats.cow
Is rancher subsumed by carnivore?
rancher ⊓ carnivore ?
rancher ⊓ carnivore ?
Unfolding Example
animal ⊑ organism
plant ⊑ organism
person ⊑ animal
grass ⊑ plant
cow ⊑ animal ⊓ eats.grass
carnivore ≡ organism ⊓ eats.animal
rancher ⊑ animal ⊓ eats.cow
Is rancher subsumed by carnivore?
rancher ⊓ carnivore ?
rancher ⊓ animal ⊓ eats.cow ⊓ carnivore ?
Unfolding Example
animal ⊑ organism
plant ⊑ organism
person ⊑ animal
grass ⊑ plant
cow ⊑ animal ⊓ eats.grass
carnivore ≡ organism ⊓ eats.animal
rancher ⊑ animal ⊓ eats.cow
Is rancher subsumed by carnivore?
rancher ⊓ carnivore ?
rancher ⊓ animal ⊓ eats.cow ⊓ carnivore ?
A trick for unfolding: rancher ⊔ rancher ≡ animal ⊓ eats.cow
A trick for unfolding: rancher ⊔ rancher ≡ animal ⊓ eats.cow
Unfolding Example
animal ⊑ organism
plant ⊑ organism
person ⊑ animal
grass ⊑ plant
cow ⊑ animal ⊓ eats.grass
carnivore ≡ organism ⊓ eats.animal
rancher ⊑ animal ⊓ eats.cow
Is rancher subsumed by carnivore?
rancher ⊓ carnivore ?
rancher ⊓ animal ⊓ eats.cow ⊓ carnivore
Unfolding Example
animal ⊑ organism
plant ⊑ organism
person ⊑ animal
grass ⊑ plant
cow ⊑ animal ⊓ eats.grass
carnivore ≡ organism ⊓ eats.animal
rancher ⊑ animal ⊓ eats.cow
Is rancher subsumed by carnivore?
rancher ⊓ carnivore ?
rancher ⊓ animal ⊓ organism ⊓ eats.cow ⊓ carnivore
Unfolding Example
animal ⊑ organism
plant ⊑ organism
person ⊑ animal
grass ⊑ plant
cow ⊑ animal ⊓ eats.grass
carnivore ≡ organism ⊓ eats.animal
rancher ⊑ animal ⊓ eats.cow
Is rancher subsumed by carnivore?
rancher ⊓ carnivore ?
… And so on, until we can no longer expand the formula
The approach: unfold, normalize, prove
The unfolded formula is then converted to negation normal form (NNF)
– In NNF, negation only applies to concept names and not to compound terms
– NNF works by applying DeMorgan’s laws and the identities:
R.C = R.C
R.C = R.C
The approach: unfold, normalize, prove
Given an unfolded and normalized formula, we apply tableaux rules to ensure all branches are closed
The goal of the tableaux algorithm is to try to construct a model of the formula:
If a model cannot be constructed, the subsumption holds
Tableaux Algorithm
Tableaux rules construct a tree, where– Nodes represent individuals – Edges represent properties of individuals
Each node x is labeled with a set of concept expressions it must satisfy: (x) = {C1, …, Cn}
Each edge <x, y> satisfies a role, and is labeled with the role name: (<x, y>) = R
Tableaux Algorithm
Given an expression D, a tree T is initialized to contain a single node x0, with (x0) = {D}
T is expanded by repeatedly applying tableaux rules
A branch is closed when for a node x and some concept C, either (x) or {C, C} (x)
Tableaux Rules
⊓-rule: if 1. (C1 ⊓ C2) (x)
2. {C1, C2} ⊈ (x)then (x) = (x) {C1, C2}
⊔-rule: if 1. (C1 ⊔ C2) (x)
2. {C1, C2} (x) =
then try: (x) = (x) {C1}
if it is closed,try: (x) = (x) {C2}
Classification
• Computes …
• Using subsumedBy, we can compute the classification by testing all pairs of named concepts …
• What might an optimization be?