Download presentation
Presentation is loading. Please wait.
Published byMagnus Spencer Modified over 9 years ago
1
Notes on DL Reasoning Shawn Bowers April, 2004
2
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.
3
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
4
Running examples vegan ≡ person ⊓ eats.plant
vegetarian ≡ person ⊓ eats.(plant ⊔ dairy)
5
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?
6
Running examples woman ≡ person ⊓ female man ≡ person ⊓ woman
mother ≡ woman ⊓ hasChild.person father ≡ man ⊓ hasChild.person
7
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)
8
Running examples animal ⊑ organism plant ⊑ organism person ⊑ animal
grass ⊑ plant cow ⊑ animal ⊓ eats.grass carnivore ≡ organism ⊓ eats.animal rancher ⊑ animal ⊓ eats.cow
9
Is rancher subsumed by carnivore? … why?
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?
10
Subsumption as Satisfiability Testing
Given 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
11
Subsumption as Satisfiability Testing
Subsumption 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
12
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).
13
Is rancher subsumed by 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 ⊓ carnivore ?
14
Is rancher subsumed by 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 ?
15
Is rancher subsumed by 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 ? A trick for unfolding: rancher ⊔ rancher ≡ animal ⊓ eats.cow rancher ⊓ animal ⊓ eats.cow ⊓ carnivore ?
16
Is rancher subsumed by 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
17
Is rancher subsumed by 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
18
Is rancher subsumed by 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
19
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
20
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
21
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
22
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)
23
⊔-rule: if 1. (C1 ⊔ C2) (x) 2. {C1, C2} (x) =
Tableaux Rules ⊓-rule: if 1. (C1 ⊓ C2) (x) 2. {C1, C2} ⊈ (x) then (x) = (x) {C1, C2} ⊔-rule: if 1. (C1 ⊔ C2) (x) {C1, C2} (x) = then try: (x) = (x) {C1} if it is closed, try: (x) = (x) {C2}
24
Tableaux Rules -rule: if 1. … then -rule: if 1. …
25
An Example … vegan/veg
26
Classification Computes …
Using subsumedBy, we can compute the classification by testing all pairs of named concepts … What might an optimization be?
27
Subsumption is transitive
Give simple example …
28
Prolog Demo …
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.