Hybrid integration of rules and ontologies: A constraint-based fram - - PowerPoint PPT Presentation

hybrid integration of rules and ontologies a constraint
SMART_READER_LITE
LIVE PREVIEW

Hybrid integration of rules and ontologies: A constraint-based fram - - PowerPoint PPT Presentation

Hybrid integration of rules and ontologies: A constraint-based fram ew ork Jakob Henriksson, Jan Ma uszy ski RuleML 2006, Athens, GA The objective Define a scheme that from given Rule language R (e.g. Datalog, Xcerpt)


slide-1
SLIDE 1

Hybrid integration of rules and

  • ntologies:

A constraint-based fram ew ork

Jakob Henriksson, Jan Małuszyński RuleML 2006, Athens, GA

slide-2
SLIDE 2

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 2

The objective

  • Define a scheme that

from given – Rule language R (e.g. Datalog, Xcerpt) – Logical language S (e.g. OWL-DL, ...) constructs – A language RS integrating R and S:

  • Syntax, Semantics of RS: from syntax and

semantics of R and S

  • A (complete) reasoner for RS

by interfacing existing reasoners of R and S

slide-3
SLIDE 3

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 3

Outline

  • Motivating example
  • The scheme

– Principles and restrictions

  • Reusing reasoners

– Datalog + OWL-DL – Xcerpt + OWL-DL

  • Practical reasoning

– Eager interaction

  • Conclusions
  • Future work
slide-4
SLIDE 4

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 4

Motivating example

r1: price-in-usa(X,high) :- made-by(X,Y), NoFellowCompany(Y). r2: price-in-usa(X,high) :- made-by(X,Y), AmericanAssociate(Y), monopoly-in-usa(Y,X). r3: made-by(a,b). r4: monopoly-in-usa(b,a). r1: price-in-usa(X,high) :- made-by(X,Y), NoFellowCompany(Y). r2: price-in-usa(X,high) :- made-by(X,Y), AmericanAssociate(Y), monopoly-in-usa(Y,X). r3: made-by(a,b). r4: monopoly-in-usa(b,a).

Rule component ∏: DL component ∑:

Ref: A.Levy and M C.Rousset. CARIN:A Representation Language Combining Horn rules and Description Logics. Artificial Intelligence 104(1 2):165 –209, 1998.

T-Box: European ∩ American ⊆ ⊥ NoFellowCompany ≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b) T-Box: European ∩ American ⊆ ⊥ NoFellowCompany ≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b)

slide-5
SLIDE 5

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 5

Motivating example

r1: price-in-usa(X,high) :- made-by(X,Y), No NoFellowCompany FellowCompany(Y). r2: price-in-usa(X,high) :- made-by(X,Y), AmericanAssociate ericanAssociate(Y), monopoly-in-usa(Y,X). r3: made-by(a,b). r4: monopoly-in-usa(b,a). r1: price-in-usa(X,high) :- made-by(X,Y), No NoFellowCompany FellowCompany(Y). r2: price-in-usa(X,high) :- made-by(X,Y), AmericanAssociate ericanAssociate(Y), monopoly-in-usa(Y,X). r3: made-by(a,b). r4: monopoly-in-usa(b,a).

Rule component ∏: DL component ∑:

T-Box: European ∩ American ⊆ ⊥ NoFellowC NoFellowCompan

  • mpany

≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b) T-Box: European ∩ American ⊆ ⊥ NoFellowC NoFellowCompan

  • mpany

≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b) … constraint dom ain. Constraining extent of head predicates w ith …

slide-6
SLIDE 6

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 6

Motivating example

r1: price-in-usa(X,high) :- made-by(X,Y), NoFellowCompany(Y). r2: price-in-usa(X,high) :- made-by(X,Y), AmericanAssociate(Y), monopoly-in-usa(Y,X). r3: made-by(a,b). r4: monopoly-in-usa(b,a). r1: price-in-usa(X,high) :- made-by(X,Y), NoFellowCompany(Y). r2: price-in-usa(X,high) :- made-by(X,Y), AmericanAssociate(Y), monopoly-in-usa(Y,X). r3: made-by(a,b). r4: monopoly-in-usa(b,a).

Rule component ∏: DL component ∑:

T-Box: European ∩ American ⊆ ⊥ NoFellowCompany ≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b) T-Box: European ∩ American ⊆ ⊥ NoFellowCompany ≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b)

∏ ∪ ∑ ⊨ price-in-usa(a, high) ? price-in-usa(a, high) ?

slide-7
SLIDE 7

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 7

Motivating example

r1: price-in-usa(a,high) :- made-by(a,b), No NoFellowCompany( FellowCompany(b) b). r2: price-in-usa(X,high) :- made-by(X,Y), AmericanAssociate(Y), monopoly-in-usa(Y,X). r3: made-by(a,b). r4: monopoly-in-usa(b,a). r1: price-in-usa(a,high) :- made-by(a,b), No NoFellowCompany( FellowCompany(b) b). r2: price-in-usa(X,high) :- made-by(X,Y), AmericanAssociate(Y), monopoly-in-usa(Y,X). r3: made-by(a,b). r4: monopoly-in-usa(b,a).

Rule component ∏: DL component ∑:

T-Box: European ∩ American ⊆ ⊥ NoFellowCompany ≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b) T-Box: European ∩ American ⊆ ⊥ NoFellowCompany ≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b)

∑ ⊭ NoFellowCompany(b) NoFellowCompany(b)

∏ ∪ ∑ ⊨ price-in-usa(a, high) ? price-in-usa(a, high) ?

slide-8
SLIDE 8

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 8

Motivating example

r1: price-in-usa(X,high) :- made-by(X,Y), NoFellowCompany(Y). r2: price-in-usa(a,high) :- made-by(a,b), AmericanAssociate(b) ericanAssociate(b), monopoly-in-usa(b,a). r3: made-by(a,b). r4: monopoly-in-usa(b,a). r1: price-in-usa(X,high) :- made-by(X,Y), NoFellowCompany(Y). r2: price-in-usa(a,high) :- made-by(a,b), AmericanAssociate(b) ericanAssociate(b), monopoly-in-usa(b,a). r3: made-by(a,b). r4: monopoly-in-usa(b,a).

Rule component ∏: DL component ∑:

T-Box: European ∩ American ⊆ ⊥ NoFellowCompany ≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b) T-Box: European ∩ American ⊆ ⊥ NoFellowCompany ≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b)

∑ ⊭ AmericanAssociate(b) AmericanAssociate(b)

∏ ∪ ∑ ⊨ price-in-usa(a, high) ? price-in-usa(a, high) ?

slide-9
SLIDE 9

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 9

Motivating example

r1: price-in-usa(a,high) :- made-by(a,b), No NoFellowCompany( FellowCompany(b) b). r2: price-in-usa(a,high) :- made-by(a,b), AmericanAssociate(b) ericanAssociate(b), monopoly-in-usa(b,a). r3: made-by(a,b). r4: monopoly-in-usa(b,a). r1: price-in-usa(a,high) :- made-by(a,b), No NoFellowCompany( FellowCompany(b) b). r2: price-in-usa(a,high) :- made-by(a,b), AmericanAssociate(b) ericanAssociate(b), monopoly-in-usa(b,a). r3: made-by(a,b). r4: monopoly-in-usa(b,a).

Rule component ∏: DL component ∑:

T-Box: European ∩ American ⊆ ⊥ NoFellowCompany ≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b) T-Box: European ∩ American ⊆ ⊥ NoFellowCompany ≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b)

But: But: ∑ ⊨ NoFellowCompany(b) NoFellowCompany(b) v AmericanAssociate(b) AmericanAssociate(b)

∏ ∪ ∑ ⊨ price-in-usa(a, high) ? price-in-usa(a, high) ?

slide-10
SLIDE 10

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 10

Motivating example

r1: price-in-usa(X,high) :- made-by(X,Y), NoFellowCompany(Y). r2: price-in-usa(X,high) :- made-by(X,Y), AmericanAssociate(Y), monopoly-in-usa(Y,X). r3: made-by(a,b). r4: monopoly-in-usa(b,a). r1: price-in-usa(X,high) :- made-by(X,Y), NoFellowCompany(Y). r2: price-in-usa(X,high) :- made-by(X,Y), AmericanAssociate(Y), monopoly-in-usa(Y,X). r3: made-by(a,b). r4: monopoly-in-usa(b,a).

Rule component ∏: DL component ∑:

T-Box: European ∩ American ⊆ ⊥ NoFellowCompany ≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b) T-Box: European ∩ American ⊆ ⊥ NoFellowCompany ≡ ∀associate.¬American EuropeanAssociate ≡ Ǝassociate.American AmericanAssociate ≡ Ǝassociate.American InternationalCompany ≡ EuropeanAssociate ∪ AmericanAssociate A-Box: InternationalCompany(b)

Thus, Thus, ∏ ∪ ∑ ⊨ price-in-usa(a, high) ! price-in-usa(a, high) !

slide-11
SLIDE 11

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 11

Rules we consider

– HEAD is some basic construct (atom) – BODY is a set of atoms – Safety: head variables appear in the body – Examples:

  • Datalog: atomic formulae
  • Xcerpt: Query terms and Construct terms

HEAD ← BODY

slide-12
SLIDE 12

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 12

Semantics of rules

  • Fixpoint semantics

– Rules derive ground atoms from given ground atoms

  • m atching of body atoms vs. given atoms gives

substitution θ

  • θ applied to head derived atom

– TP monotonic, TP(S) ⊂ TP(S’) for any S ⊂ S’ – Sem antics of program P: least fixpoint of TP

TP(S) = { Hθ | (H ← B1, ..., Bn) ∈ P and (B1, ..., Bn) matches matches some A1, ..., An in S with result θ }

slide-13
SLIDE 13

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 13

Examples of rules languages

The class includes

  • Logical rule languages, e.g.

– Datalog (without negation) – Semantics of program: set of Datalog atoms – Least Herbrand model

  • Rule languages lacking logical semantics, e.g.

– Xcerpt (negation-free subset) – Semantics of program: set of Xcerpt data terms

slide-14
SLIDE 14

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 14

Extended rules

  • C formula of an external theory in logical language L
  • Ground atoms associated with a constraint

– A;C where A is a ground atom, C formula of L

  • Extend TP operator:

HEAD ← BODY,C

TP(S) = { Hθ; (Cθ∧C1∧…∧Cn) | (H ← B1, ..., Bn,C) ∈ P and for some A1;C1, ..., An;Cn in S (B1, ..., Bn) matches matches A1, ..., An with result θ }

slide-15
SLIDE 15

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 15

Semantics of extended rules

  • Restrict model of underlying rule program

– A constraint C, wrt. an external theory Σ, can be:

  • 1. True in all models of Σ (Σ⊨C)
  • 2. False in all models of Σ (Σ⊨¬C)
  • 3. None of above:

satisfiable, but false in some models of Σ

  • CA is a disjunction of all constraints of A

M(P) = { A | A ∈ lfp(TP) and ∑ ⊨ CA }

slide-16
SLIDE 16

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 16

Example instances

  • Existing rule reasoners not aware of “external” predicates

– How to re-use rule reasoners to collect constraints? – Solved specifically for each language and rule reasoner

  • Here:

( 1 ) Datalog + OWL DL ( 2 ) Xcerpt + OWL DL

slide-17
SLIDE 17

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 17

(1) Collecting constraints in XSB for Datalog

r1: price-in-usa(X,high,[NoFello [NoFellowCompany(Y) | A] wCompany(Y) | A]) :- made-by(X,Y,A). r2: price-in-usa(X,high,[AmericanAsso [AmericanAssociate(Y) | A] ciate(Y) | A]) :- made-by(X,Y,A1 A1), monopoly-in-usa(Y,X,A2 A2), ap append(A pend(A1,A 1,A2,A ,A). r3: made-by(a,b,[] []). r4: monopoly-in-usa(b,a,[] []). r1: price-in-usa(X,high,[NoFello [NoFellowCompany(Y) | A] wCompany(Y) | A]) :- made-by(X,Y,A). r2: price-in-usa(X,high,[AmericanAsso [AmericanAssociate(Y) | A] ciate(Y) | A]) :- made-by(X,Y,A1 A1), monopoly-in-usa(Y,X,A2 A2), ap append(A pend(A1,A 1,A2,A ,A). r3: made-by(a,b,[] []). r4: monopoly-in-usa(b,a,[] []).

∏ ∏’

r1: price-in-usa(X,high) :- made-by(X,Y), NoFellowCompany(Y). r2: price-in-usa(X,high) :- made-by(X,Y), AmericanAssociate(Y), monopoly-in-usa(Y,X). r3: made-by(a,b). r4: monopoly-in-usa(b,a). r1: price-in-usa(X,high) :- made-by(X,Y), NoFellowCompany(Y). r2: price-in-usa(X,high) :- made-by(X,Y), AmericanAssociate(Y), monopoly-in-usa(Y,X). r3: made-by(a,b). r4: monopoly-in-usa(b,a).

slide-18
SLIDE 18

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 18

(1) Collecting constraints in XSB for Datalog

  • Query ← price-in-usa( a,high,C) w rt. ∏’:

C = [NoFellowCompany(b)] C = [AmericanAssociate(b)]

ground(∏) ∏’

r1: price-in-usa(X,high,[NoFello [NoFellowCompany(Y) | A] wCompany(Y) | A]) :- made-by(X,Y,A). r2: price-in-usa(X,high,[AmericanAsso [AmericanAssociate(Y) | A] ciate(Y) | A]) :- made-by(X,Y,A1 A1), monopoly-in-usa(Y,X,A2 A2), ap append(A pend(A1,A 1,A2,A ,A). r3: made-by(a,b,[] []). r4: monopoly-in-usa(b,a,[] []). r1: price-in-usa(X,high,[NoFello [NoFellowCompany(Y) | A] wCompany(Y) | A]) :- made-by(X,Y,A). r2: price-in-usa(X,high,[AmericanAsso [AmericanAssociate(Y) | A] ciate(Y) | A]) :- made-by(X,Y,A1 A1), monopoly-in-usa(Y,X,A2 A2), ap append(A pend(A1,A 1,A2,A ,A). r3: made-by(a,b,[] []). r4: monopoly-in-usa(b,a,[] []).

r1: price-in-usa(a,high) :- made-by(a,b), NoFellowCompany(b). r2: price-in-usa(a,high) :- made-by(a,b), AmericanAssociate(b), monopoly-in-usa(b,a). r3: made-by(a,b). r4: monopoly-in-usa(b,a). r1: price-in-usa(a,high) :- made-by(a,b), NoFellowCompany(b). r2: price-in-usa(a,high) :- made-by(a,b), AmericanAssociate(b), monopoly-in-usa(b,a). r3: made-by(a,b). r4: monopoly-in-usa(b,a).

slide-19
SLIDE 19

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 19

(2) Collecting constraints in Xcerpt

CONSTRUCT CONSTRUCT results { all all madeby { var Product, var Manufact } } FILTER FILTER NoFellowCompany { var Manufact } FR FROM OM madeby { product { var Product }, manufacturer { var Manufact } } END END CONSTRUCT CONSTRUCT results { all all madeby { var Product, var Manufact } } FILTER FILTER NoFellowCompany { var Manufact } FR FROM OM madeby { product { var Product }, manufacturer { var Manufact } } END END CONSTRUCT CONSTRUCT results { all all monopoly { var Manufact, var Product } } FILTER FILTER AmericanAssociate { var Manufact } FR FROM OM and and { monopoly { name { var Manufact }, product { var Product } }, madeby { product { var Product }, manufacturer { var Manufact } } END END CONSTRUCT CONSTRUCT results { all all monopoly { var Manufact, var Product } } FILTER FILTER AmericanAssociate { var Manufact } FR FROM OM and and { monopoly { name { var Manufact }, product { var Product } }, madeby { product { var Product }, manufacturer { var Manufact } } END END GOAL GOAL prices [ all all high [ var Product ] ] FR FROM OM results {{

  • r
  • r {

madeby [ var Product, var M ], monopoly [ var M, var Product ] } }} END END GOAL GOAL prices [ all all high [ var Product ] ] FR FROM OM results {{

  • r
  • r {

madeby [ var Product, var M ], monopoly [ var M, var Product ] } }} END END

made-by [ product [ “A” ], manufacturer [ “B” ] ] monopoly [ name [ “B” ], product [ “A” ] ]

XML data

slide-20
SLIDE 20

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 20

(2) Collecting constraints in Xcerpt

CONSTRUCT CONSTRUCT results { all all madeby { var Product, var Manufact } } FILTER FILTER NoFellowCompany { var Manufact } FR FROM OM madeby { product { var Product }, manufacturer { var Manufact } } END END CONSTRUCT CONSTRUCT results { all all madeby { var Product, var Manufact } } FILTER FILTER NoFellowCompany { var Manufact } FR FROM OM madeby { product { var Product }, manufacturer { var Manufact } } END END CONSTRUCT CONSTRUCT results { all all monopoly { var Manufact, var Product } } FILTER FILTER AmericanAssociate { var Manufact } FR FROM OM and and { monopoly { name { var Manufact }, product { var Product } }, madeby { product { var Product }, manufacturer { var Manufact } } END END GOAL GOAL prices [ all all high [ var Product ] ] FR FROM OM results {{

  • r
  • r {

madeby [ var Product, var C1 ], monopoly [ var C2, var Product ] }} END END

∏’

CONSTRUCT CONSTRUCT results [ all all madeby [ var Product, var Manufact, constraint [ instance [ ind [ var Manufact ], catom [ "NoFellowCompany" ] ] ] ] ] FR FROM OM madeby { product { var Product }, manufacturer { var Manufact } } END END CONSTRUCT CONSTRUCT results [ all all madeby [ var Product, var Manufact, constraint [ instance [ ind [ var Manufact ], catom [ "NoFellowCompany" ] ] ] ] ] FR FROM OM madeby { product { var Product }, manufacturer { var Manufact } } END END

made-by [ product [ “A” ], manufacturer [ “B” ] ] monopoly [ name [ “B” ], product [ “A” ] ]

XML data

slide-21
SLIDE 21

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 21

GOAL GOAL prices [ all all high [ var Product ] ] FR FROM OM results {{

  • r
  • r {

madeby [ var Product, var C1 ], monopoly [ var C2, var Product ] }} END END

(2) Collecting constraints in Xcerpt

CONSTRUCT CONSTRUCT results { all all madeby { var Product, var Manufact } } FILTER FILTER NoFellowCompany { var Manufact } FR FROM OM madeby { product { var Product }, manufacturer { var Manufact } } END END CONSTRUCT CONSTRUCT results { all all monopoly { var Manufact, var Product } } FILTER FILTER AmericanAssociate { var Manufact } FR FROM OM and and { monopoly { name { var Manufact }, product { var Product } }, madeby { product { var Product }, manufacturer { var Manufact } } END END CONSTRUCT CONSTRUCT results { all all monopoly { var Manufact, var Product } } FILTER FILTER AmericanAssociate { var Manufact } FR FROM OM and and { monopoly { name { var Manufact }, product { var Product } }, madeby { product { var Product }, manufacturer { var Manufact } } END END

∏’

CONSTRUCT CONSTRUCT results [ all all monopoly [ var Manufact, var Product, constraint [ instance [ ind [ var Manufact ], catom [ "AmericanAssociate" ] ] ] ] ] FR FROM OM and and { monopoly { name { var Manufact }, product { var Product } }, madeby { product { var Product }, manufacturer { var Manufact } } } END END CONSTRUCT CONSTRUCT results [ all all monopoly [ var Manufact, var Product, constraint [ instance [ ind [ var Manufact ], catom [ "AmericanAssociate" ] ] ] ] ] FR FROM OM and and { monopoly { name { var Manufact }, product { var Product } }, madeby { product { var Product }, manufacturer { var Manufact } } } END END

made-by [ product [ “A” ], manufacturer [ “B” ] ] monopoly [ name [ “B” ], product [ “A” ] ]

XML data

slide-22
SLIDE 22

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 22

(2) Collecting constraints in Xcerpt

CONSTRUCT CONSTRUCT results { all all madeby { var Product, var Manufact } } FILTER FILTER NoFellowCompany { var Manufact } FR FROM OM madeby { product { var Product }, manufacturer { var Manufact } } END END CONSTRUCT CONSTRUCT results { all all monopoly { var Manufact, var Product } } FILTER FILTER AmericanAssociate { var Manufact } FR FROM OM and and { monopoly { name { var Manufact }, product { var Product } }, madeby { product { var Product }, manufacturer { var Manufact } } END END GOAL GOAL prices [ all all high [ var Product ] ] FR FROM OM results {{

  • r
  • r {

madeby [ var Product, var M ], monopoly [ var M, var Product ] } }} END END GOAL GOAL prices [ all all high [ var Product ] ] FR FROM OM results {{

  • r
  • r {

madeby [ var Product, var M ], monopoly [ var M, var Product ] } }} END END GOAL GOAL prices [ all all high [ var Product, digor [ all all var C ] ] ] FR FROM OM results {{

  • r
  • r {

madeby [ var Product, var M, var C ], monopoly [ var M, var Product, var C ] } }} END END GOAL GOAL prices [ all all high [ var Product, digor [ all all var C ] ] ] FR FROM OM results {{

  • r
  • r {

madeby [ var Product, var M, var C ], monopoly [ var M, var Product, var C ] } }} END END

∏ ∏’

made-by [ product [ “A” ], manufacturer [ “B” ] ] monopoly [ name [ “B” ], product [ “A” ] ]

XML data

slide-23
SLIDE 23

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 23

(2) Collecting constraints in Xcerpt

prices [ high [ "A", digor [ constraint [ instance [ ind [ name [ "B" ] ], catom [ name [ "NoFellow Com pany" ] ] ] ], constraint [ instance [ ind [ name [ "B" ] ], catom [ name [ "Am ericanAssociate" ] ] ] ] ] ], ]

… …

Answer from ∏’ ∑ ⊨ NoFellowCompany(B) v AmericanAssociate(B)

Query wrt.

∏’:

GOAL GOAL prices [ all all high [ var Product, digor [ all all var C ] ] ] FR FROM OM results {{

  • r
  • r {

madeby [ var Product, var M, var C ], monopoly [ var M, var Product, var C ] } }} END END GOAL GOAL prices [ all all high [ var Product, digor [ all all var C ] ] ] FR FROM OM results {{

  • r
  • r {

madeby [ var Product, var M, var C ], monopoly [ var M, var Product, var C ] } }} END END

slide-24
SLIDE 24

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 24

Implementing integrated reasoner with Xcerpt

  • 1. Compile Extended Xcerpt (∏) programs into plain

Xcerpt (∏’)

  • Collect all constraints related to an Xcerpt answer

using the all construct

  • 2. Run ∏’ in existing Xcerpt engine, returning answers and

(boolean) DL queries (in DIG syntax)

  • 3. Submit DL queries to a DL reasoner
  • 4. Return Xcerpt answers for which the DIG query is “true”

∏ → ∏’

slide-25
SLIDE 25

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 25

Eager interaction

price-in-usa(a,high) made-by(a,b), European(b) European(b) European(b) European(b) r1: price-in-usa(X,high) :- made-by(X,Y), Am American(Y), monopoly-in-usa(Y,X). r2: price-in-usa(X,high) :- made-by(X,Y), Eur Europea pean(Y) (Y). r3: made-by(a,b). r4: monopoly-in-usa(b,a). r1: price-in-usa(X,high) :- made-by(X,Y), Am American(Y), monopoly-in-usa(Y,X). r2: price-in-usa(X,high) :- made-by(X,Y), Eur Europea pean(Y) (Y). r3: made-by(a,b). r4: monopoly-in-usa(b,a).

Rule component ∏: DL component ∑:

T-Box: European European ∩ American American ⊆ ⊥ A-Box: … European(b) European(b) T-Box: European European ∩ American American ⊆ ⊥ A-Box: … European(b) European(b)

Q:

made-by(a,b), American American(b) (b), monopoly-in-usa(b,a) American American(b) (b), monopoly-in-usa(b,a) American American(b) (b)

slide-26
SLIDE 26

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 26

Eager interaction

price-in-usa(a,high) made-by(a,b), European(b) European(b) European(b) European(b) r1: price-in-usa(X,high) :- made-by(X,Y), Am American(Y), monopoly-in-usa(Y,X). r2: price-in-usa(X,high) :- made-by(X,Y), Eur Europea pean(Y) (Y). r3: made-by(a,b). r4: monopoly-in-usa(b,a). r1: price-in-usa(X,high) :- made-by(X,Y), Am American(Y), monopoly-in-usa(Y,X). r2: price-in-usa(X,high) :- made-by(X,Y), Eur Europea pean(Y) (Y). r3: made-by(a,b). r4: monopoly-in-usa(b,a).

Rule component ∏: DL component ∑:

T-Box: European European ∩ American American ⊆ ⊥ A-Box: … European(b) European(b) T-Box: European European ∩ American American ⊆ ⊥ A-Box: … European(b) European(b)

Q:

made-by(a,b), American American(b) (b), monopoly-in-usa(b,a) American American(b) (b), monopoly-in-usa(b,a) American American(b) (b)

∑ ⊨ ¬American(b)

Prune

slide-27
SLIDE 27

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 27

Eager interaction

price-in-usa(a,high) made-by(a,b), European(b) European(b) European(b) European(b) r1: price-in-usa(X,high) :- made-by(X,Y), Am American(Y), monopoly-in-usa(Y,X). r2: price-in-usa(X,high) :- made-by(X,Y), Eur Europea pean(Y) (Y). r3: made-by(a,b). r4: monopoly-in-usa(b,a). r1: price-in-usa(X,high) :- made-by(X,Y), Am American(Y), monopoly-in-usa(Y,X). r2: price-in-usa(X,high) :- made-by(X,Y), Eur Europea pean(Y) (Y). r3: made-by(a,b). r4: monopoly-in-usa(b,a).

Rule component ∏: DL component ∑:

T-Box: European European ∩ American American ⊆ ⊥ A-Box: … European(b) European(b) T-Box: European European ∩ American American ⊆ ⊥ A-Box: … European(b) European(b)

Q:

∑ ⊨ European(b)

Prune

slide-28
SLIDE 28

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 28

Prototype: Datalog + OWL DL

  • Interfaces existsing reasoners

– Rule reasoner: XSB – Ontology reasoner: DI G com pliant DL reasoner

  • Only OWL concepts
  • Possible extension:

– Allow roles in constraints through “rolling-up” – Eager interaction

  • No pruning yet…

– Available at: http:/ / w w w .ida.liu.se/ hsw rl

slide-29
SLIDE 29

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 29

Conclusions

  • Combining general class of rules with constraints

– Rules are negation-free, fixpoint semantics

  • Non-logical rule-languages

– E.g. Xcerpt

  • Re-using existing reasoners
  • Prototype integration

– Datalog + OWL-DL – Using XSB + RacerPro

slide-30
SLIDE 30

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 30

Our work

  • is motivated by and extends AL-Log [ Donini et. al.]
  • aims at integration of existing reasoners

– not restricted to Datalog

  • supports reasoning by cases in DL, unlike:

– ASP+ DL [ Eiter et. al.]

  • Handles negation, supports bi-directional flow of

information between rules and DL KBs

  • does not extend ontology languages like, e.g.:

– SW RL [ Horrocks et. al.] , OW L-DL [ Motik et. al.] , Safe Hybrid KBs [ Rosati]

slide-31
SLIDE 31

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 31

Future work

  • How to re-use existing rule reasoners?
  • Eager interaction

– Practical use-cases and full implementation

  • Other constraint languages
  • Rules with negation

– Well-founded semantics

slide-32
SLIDE 32

11 November 2006 Jakob Henriksson, RuleML, Athens, GA 32

The End

Thank you!