Top Banner
Datalog Datalog S. Costantini S. Costantini
33

DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

May 03, 2015

Download

Documents

Sofia Guerra
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

DatalogDatalogDatalogDatalog

S. CostantiniS. Costantini

Page 2: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

2

Logic As a Query Language

• If-then logical rules have been used in many systems.

• Recursive rules extend relational algebra --- have been used to add recursion to SQL-99.

Page 3: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

3

Datalog• A language for Deductive Databases

– Extensional part: tables– Intensional part: rules

Page 4: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

4

Logic: Intuition

Page 5: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

5

Datalog Terminology: Atoms

• An atom is a predicate, or relation name with variables or constants as arguments. E.g.,

in(alan,r123)part_of(r123,cs_building)p(X,a)

Page 6: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

6

Datalog Terminology: Atoms

• Conventions: – Databases: Predicates begin with a

capital, variables begin with lower-case. Example: P(x,’a’) where ‘a’ is a constant, i.e., a data item.

– Logic Programming: Variables begin with a capital, predicates and constants begin with lower-case. Example: p(X,a).

Page 7: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

7

Datalog Terminology: Rules

• The head of a rule is an atom; the body of a rule is the AND of one or more atoms. E.g., in(X,Y):- part_of(Z,Y), in(X,Z).where “:-” stands for “”

Page 8: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

8

Datalog Terminology: Facts

• Rules without body called “facts”: E.g., in(alan,r123).

• Facts constitute the extensional part of a deductive database, i.e., define tables.

Page 9: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

9

Alternative notation• Explicitly list attributes• E.g., facts:

in(Object:alan,Place:r123) • E.g., rules:

in(Object:X,Place:Y):- part_of(Place: Z, Place:Y),in(Object:X, Place:Z).

Page 10: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

10

Datalog semantics

• Least Herbrand Model– The head of a rule is in the Least

Herbrand Model only if the body is in the Least Herbrand Model.

Page 11: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

11

Least Herbrand Model: How to find it

p g,h.g r,s.m p,q.r f.s.f.h.Step 1: facts M0 = {s,f,h}Step 2: M1 = M0 plus what I can derive from facts M1 = {s,f,h,r}Step 3: M2 = M1 plus what I can derive from M1

M2 = {s,f,h,r,g}Step 4: M3 = M2 plus what I can derive from M2

M3 = {s,f,h,r,g,p}If you try to go on, no more added conclusions: fixpoint

Page 12: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

12

Least Herbrand Model: Intuition

Page 13: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

13

Least Herbrand Model: Intuition

In the example: Least Herbrand Model

M0 = {in(alan,r123), part_of(r123,cs_building)}

M1= {in(alan,r123), part_of(r123,cs_building), in(alan,cs_building)}

Page 14: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

14

Datalog and Transitivity• Rule

in(X,Y):- part_of(X,Z),in(Z,Y)defines in as the transitive closure of

part_of

Page 15: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

15

Arithmetic Subgoals• In addition to relations as predicates,

a predicate of the body can be an arithmetic comparison.– We write such atoms in the usual way,

e.g.: x < y.

Page 16: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

16

Example: Arithmetic• A beer is “cheap” if there are at least

two bars that sell it for under $2.

Cheap(beer) <- Sells(bar1,beer,p1) ANDSells(bar2,beer,p2) AND p1 < 2.00AND p2 < 2.00 AND bar1 <> bar2

Page 17: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

17

Negated Subgoals

• We may put NOT in front of an atom, to negate its meaning.

• Example:at_home(alan):- not at_work(alan)

Page 18: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

18

Negated Subgoals: Intuition

• Given atom A, not A holds if A cannot be proved

• Negation as finite failure

Page 19: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

19

Safe Rules• A rule is safe if:

1. Each variable in the head2. Each variable in an arithmetic subgoal,3. Each variable in a negated subgoal,

also appears in a nonnegated,subgoal in the body.

• We allow only safe rules.

Page 20: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

20

Example: Unsafe Rules

• Each of the following is unsafe and not allowed:

1. S(x) <- R(y)2. S(x) <- R(y) AND NOT R(x)3. S(x) <- R(y) AND x < y

• In each case, an infinity of x ’s can satisfy the rule, even if R is a finite relation.

Page 21: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

21

Datalog Programs• A Datalog program is a collection of

rules.• In a program, predicates can be either

1. EDB = Extensional Database = stored table.

2. IDB = Intensional Database = relation defined by rules.

Page 22: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

22

Expressive Power of Datalog

• Without recursion, Datalog can express all and only the queries of core relational algebra.

• But with recursion, Datalog can express more than these languages.

• Yet still not Turing-complete.

Page 23: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

23

Datalog semantics

• With negation: several proposals, in deductive databases answer set semantics.

Page 24: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

24

Minimal Models

• When there is no negation, a Datalog program has a unique minimal model (one that does not contain any other model).

• But with negation, there can be several minimal models.

Page 25: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

25

Non-Monotonicità• Aggiungere nuove conoscenze può

portare a ritrarre precedenti conclusioni.

• Vi possono essere conclusioni alternative tramite cicli sulla negazione.

Page 26: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

26

Non-Monotonicità = Problema?

• No, se gestita con opportuni strumenti semantici

• Non-Monotonic Reasoning (NMR) = campo di ricerca in– Intelligenza Artificiale – Database deduttivi

• si propone di sfruttare la non-monotonicità

Page 27: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

27

DATALOG senza Negazione

• Semantica del Least Herbrand Model• Paradigma procedurale della ricerca

per tentativi ripetuti • Linguaggio Prolog (numerosi

interpreti fra i quali SICSTUS-Prolog, SWI-Prolog)

Page 28: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

28

DATALOG + Negazione• Semantica degli Answer Sets• Paradigma dell’Answer Set

Programming (ASP)• Negazione, insiemi-risposta

alternativi• Numerosi solver

Page 29: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

29

Esempio NMRpersona(anna).persona(carlo).persona(giorgio).malato(giorgio).

a_casa(X):- persona(X), not in_ufficio(X).in_ufficio(X):- persona(X), not a_casa(X).

:- in_ufficio(X),malato(X). % constraint

Page 30: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

30

Risultato atteso• Anna e Carlo sono o a casa

oppure in ufficio.• Giorgio non può essere in ufficio

perchè è malato e quindi sarà a casa.

Page 31: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

31

NMR in pratica• Vi sono vari linguaggi logici che

consentono non-monotonicità.• Sono dotati di motori inferenziali

(inference engines, o solvers) in grado di gestirla.

• Possibili soluzioni inesistenti o altrernative.•Uno di essi: smodels

Page 32: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

32

Risultato di smodels (inference engine per NMR)

• Answer: 1malato(giorgio) a_casa(giorgio) a_casa(carlo)

in_ufficio(anna)

• Answer: 2malato(giorgio) a_casa(giorgio)

in_ufficio(carlo) in_ufficio(anna)

Page 33: DatalogDatalog S. Costantini. S. Costantini / Logical Query Languages 2 Logic As a Query Language If-then logical rules have been used in many systems.

S. Costantini / Logical Query Languages

33

Risultato di smodels (inference engine per NMR)

• Answer: 3malato(giorgio) a_casa(giorgio)

in_ufficio(carlo) a_casa(anna) • Answer: 4malato(giorgio) a_casa(giorgio) a_casa(carlo)

a_casa(anna)