Exploring Description Logic and Subsumption: A Comprehensive Guide by Shawn Bowers
This document outlines key concepts in Description Logic (DL) reasoning, focusing on the ALC Description Logic framework. It details the axioms of ALC, concept and role expressions, and provides practical examples such as vegan and vegetarian classifications. The text discusses subsumption as a method of satisfiability testing, explaining how to determine if one concept is subsumed by another using various reasoning approaches. The principles are extensively illustrated using examples relevant to human and animal classifications, based on scholarly works in the field.
Exploring Description Logic and Subsumption: A Comprehensive Guide by Shawn Bowers
E N D
Presentation Transcript
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 …