280 likes | 415 Views
Notes on DL Reasoning. Shawn Bowers April, 2004. Outline. The ALC Description Logic Running Examples Subsumption as Satisfiability testing The approach: unfold, normalize, prove Classification Some Prolog This material primarily taken from:
E N D
Notes on DL Reasoning Shawn Bowers April, 2004
Outline • TheALCDescription 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.
TheALCDescription Logic (def. by [Horrocks]) Axioms: C ⊑ DC ≡ 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)
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 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
Subsumption as Satisfiability Testing Subsumption reduces to checking satisfiability: subsumedBy(KB, D1, D2) = D1 ⊑KBD2 (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⊓D2always 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 ? A trick for unfolding: rancher ⊔ rancher ≡ animal ⊓eats.cow 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
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}
Tableaux Rules -rule: if 1. … then -rule: if 1. … then
An Example … vegan/veg
Classification • Computes … • Using subsumedBy, we can compute the classification by testing all pairs of named concepts … • What might an optimization be?
Subsumption is transitive • Give simple example …