+ All Categories
Home > Documents > Notes on DL Reasoning Shawn Bowers April, 2004. Outline The ALC Description Logic Running Examples...

Notes on DL Reasoning Shawn Bowers April, 2004. Outline The ALC Description Logic Running Examples...

Date post: 30-Dec-2015
Category:
Upload: magnus-spencer
View: 220 times
Download: 0 times
Share this document with a friend
Popular Tags:
28
Notes on DL Reasoning Shawn Bowers April, 2004
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 …


Recommended