notes on dl reasoning shawn bowers april, 2004. outline the alc description logic running examples...

28
Notes on DL Reasoning Shawn Bowers April, 2004

Upload: magnus-spencer

Post on 30-Dec-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

Notes on DL Reasoning

Shawn BowersApril, 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:– 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)

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}

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 …

Prolog Demo …