1 / 47

Βάσεις Γνώσεων

Βάσεις Γνώσεων. Datalog Πάνος Βασιλειάδης pvassil@cs.uoi.gr Απρίλης 200 3. www.cs.uoi.gr/~pvassil/courses/knowledge_bases/. Σύνταξη της Datalog. Έστω τα εξής σύνολα: VAR , το οποίο περιέχει μεταβλητές Συμβολισμός: οι μεταβλητές με το πρώτο γράμμα κεφαλαίο

kipp
Télécharger la présentation

Βάσεις Γνώσεων

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ΒάσειςΓνώσεων Datalog Πάνος Βασιλειάδης pvassil@cs.uoi.grΑπρίλης 2003 www.cs.uoi.gr/~pvassil/courses/knowledge_bases/

  2. Σύνταξη της Datalog • Έστω τα εξής σύνολα: • VAR, το οποίο περιέχει μεταβλητές • Συμβολισμός: οι μεταβλητές με το πρώτο γράμμα κεφαλαίο • CONST, το οποίο περιέχει σταθερές • Συμβολισμός: οι σταθερές με όλα τα γράμματα μικρά • PRED, το οποίο περιέχει predicates • Συμβολισμός: τα predicatesμε το πρώτο γράμμα μικρό

  3. Σύνταξη της Datalog • Τα predicates έχουν arity >= 1 • Σε σχέση με την First Order Logic: • Δεν υπάρχουν συναρτήσεις • Δεν θεωρούμε προς το παρόν predicates με arity = 0

  4. Σύνταξη της Datalog • Term: μια σταθερά ή μια μεταβλητή • Ground Term: αν δεν υπάρχει μεταβλητή στον term (ήτοι, ειδικά στην Datalog, αν πρόκειται για σταθερά) • Atom: ένα predicate p(t1,…,tn), τ.ώ., τα tiείναι terms • fatherOf(πολυνείκης, οιδίποδας) ή fatherOf(X,αδάμ) • Literal: ένα predicate p(t) (positive literal) ή η άρνηση ενός predicate  p(t) (negative literal) • Ground Atom/Literal: αν οι εμπλεκόμενοι terms είναι ground

  5. Σύνταξη της Datalog • Clause: ένα πεπερασμένο σύνολο από literals • C ≡ {p(X,a), p(Y,b), q(b,c)} • Ground Clause: αν τα εμπλεκόμενα literals είναι ground • Unit Clause: αν έχει ακριβώς ένα literal

  6. Σημασιολογία ενός clause • Ένα clause C αντιστοιχεί σε μια FOL έκφραση C’=QM, με • Qένα σύνολο από quantified μεταβλητές (είτε με ,είτε με ) για όλες τις μεταβλητές του C • Μ μια έκφραση στην οποία οι μεταβλητές ΔΕΝ είναι quantified (αποκαλούμενο και matrix) • και αποτελούν την διάζευξη των terms του Μ.

  7. Σημασιολογία ενός clause Για παράδειγμα, το C ≡ {p(X,a), p(Y,b), q(b,c)} αντιστοιχεί στο C’≡ ΧΥ(p(X,a)  p(Y,b)  q(b,c)) ΠΡΟΣΟΧΗ: εδώτο ‘,’ συμβολίζει απλώς τον τρόπο που διαχωρίζουμε τα στοιχεία του set μεταξύ τους!

  8. Horn clauses • Horn clause: ένα clause που περιέχει το πολύ ένα θετικό literal • Υπάρχουν 3 ειδών Horn clauses: • Facts: positive unit clauses (ήτοι, με ακριβώς ένα literal και αυτό θετικό), π.χ.,fatherOf(ετεοκλής, οιδίποδας) • Rules: clauses με ακριβώς ένα θετικό literal και τουλάχιστο ένα αρνητικό • Goals:clauses με κανένα θετικόliteral

  9. Rules • Rules: clauses με ακριβώς ένα θετικό literal και τουλάχιστο ένα αρνητικό. Π.χ., R: {grandparent(X),grandfather(X),male(X)} • Γράφεται: grandfather(X):- grandparent(X),male(X) • Διαβάζεται: • κάποιος είναι grandfatherαν είναι grandparentKAImale ή • αν κάποιος είναι grandparentKAImale τότε είναι και grandfather

  10. Rules - Σημασιολογία • Π.χ.,grandfather(X) :- grandparent(X), male(X) R: {grandparent(X), grandfather(X),male(X)} • Σημασιολογία: Χ(grandparent(X) grandfather(X)male(X)) De Morgan Χ((grandparent(X)male(X))  grandfather(X)) Και αφού (Α  Β)  Α=>Β Χ((grandparent(X)male(X))=>grandfather(X) )

  11. Rules - Διάφορα • Το positive literal λέγεται και headτου κανόνα και τα υπόλοιπα literals λέγονται body grandfather(X):- grandparent(X),male(X) • Το κόμμα σημαίνει σύζευξη των literals • Προφανώς, κάθε κανόνας της μορφής {p(…), p1(…), …,pk(…)} γράφεται p(…):- p1(…), …,pk(…)

  12. Goals • Goals:clauses με κανένα θετικόliteral. Π.χ., R: {fatherOf(γιάννης,X)} • Γράφεται: ? - fatherOf(γιάννης,X) • Διαβάζεται:είναι κανείς πατέρας του Γιάννη ? • Λέγεται goal γιατί αν θέλω να δείξωXfatherOf(γιάννης,X) τότε υποθέτω την άρνησή του X(fatherOf(γιάννης,X)) και προσπαθώ να την δείξω false.

  13. Extensional & Intentional Βάσεις Δεδομένων • Τα predicates χωρίζονται σε intentional και extensional predicates, που αντιπροσωπεύονται από τα σύνολα EPREDκαι IPRED. PRED=EPREDIPRED, EPREDIPRED={} • Τα extensional predicates αντιπροσωπεύουν τα δεδομένα που είναι ήδη αποθηκευμένα στην ΒΔ. • Τα intentional predicates αντιπροσωπεύουν τα δεδομένα που πρόκειται να υπολογιστούν στη βάση κάποιων κανόνων.

  14. Herbrand Base • Herbrand Base HB: το σύνολο των ground clauses που μπορούν να φτιαχτούν από predicates του PREDκαι σταθερές. • EHB=E(HB): αντίστοιχα για predicates τουEPRED • ΙHB=Ι(HB): αντίστοιχα για predicates τουΙPRED • EDB (extensional DB) = το πεπερασμένο σύνολο των ground clauses που είναι αποθηκευμένο στη βάση δεδομένων μας.Προφανώς, EDBEHB

  15. Datalog Program anc(X,Y):-parentOf(X,Y) anc(X,Y):-parentOf(X,Z),anc(Z,Y) anc(X,δευκαλίων):-person(X) person(X):- lives(X) EDB parentOf(ετεοκλής,οιδίποδας) parentOf(πολυνείκης,οιδίποδας) lives(οιδίποδας,αθήνα) lives(μάκης,κορυδαλλός) Παράδειγμα EPRED: parentOf, lives IPRED: anc, person

  16. Datalog & Σχεσιακή ορολογία

  17. Πρόγραμμα Datalog • Ένα πρόγραμμα Datalog Pείναι ένα σύνολο από Horn clauses, τ.ώ., για κάθε clause cPισχύει: • είτε cEDB • είτε (α) το head του c ανήκει στην IPRED και (β) όλες οι μεταβλητές του head συναντώνται και στο body • Η συνθήκη (1) αφορά σταθερές τιμές/πλειάδες. Η συνθήκη (2) αφενός λέει ότι δεν παράγω νέα EDB facts (αλλά μόνο IDB) και αφετέρου επιβάλει μια συνθήκη ασφάλειας (safety condition): παράγω ένα πεπερασμένο σύνολο από facts.

  18. Datalog Program anc(X,Y):-parentOf(X,Y) anc(X,Y):-parentOf(X,Z),anc(Z,Y) anc(X,δευκαλίων):-person(X) person(X):- lives(X) EDB parentOf(ετεοκλής,οιδίποδας) parentOf(πολυνείκης,οιδίποδας) lives(οιδίποδας,αθήνα) lives(μάκης,κορυδαλλός) Παράδειγμα EPRED: parentOf, lives IPRED: anc, person

  19. Πρόγραμμα Datalog • Ένα Datalog πρόγραμμα παίρνει ως input μια EDB και βγάζει ως output ένα υποσύνολο του IHB

  20. Substitution -- Αντικατάσταση • Αντικατάσταση (substitution) είναι ένα πεπερασμένο σύνολο ζευγών • θ = {Χ1/t1,…,Xn/tn}τ.ώ.: • Τα Χiείναι διακριτές μεταξύ του μεταβλητές (και μόνο) και σχηματίζουν το domain (πεδίοορισμού) της αντικατάστασης • Τα ti είναιόροι (σταθερές ή μεταβλητές) και σχηματίζουν το co-domain (πεδίο τιμών) της αντικατάστασης • Αν το co-domain έχει μόνο σταθερές: ground substitution

  21. Substitution - Συμβολισμός • tθ=ti, αν t/tiθ t, σε κάθε άλλη περίπτωση • Π.χ., αν α: p(a,X,Y,b)και θ={Χ/c,Y/X} τότεαθ:p(a,c,X,b) • Αν C,D clauses και θ τ.ώ.,Cθ=Dτότε το D είναιinstance (στιγμιότυπο) τουC

  22. Substitution Composition • Έστω θ={Χ1/t1,…,Xn/tn}και σ={Y1/u1,…,Ym/um}. Τότε ο συνδυασμός τους ορίζεται ως • θσ = {Χ1/t1σ,…,Xn/tnσ,Y1/u1,…,Ym/um}με • (i) εκδίωξη των ζευγών τύπου ξ/ξ, και • (ii) εκδίωξη των Υi/ui όπου Υi=Xjγια κάποιο j • Ισχύουν: (α) C(θσ)=Cθ(σ)και (β)(θσ)γ=θ(σγ) • ΔΕΝ ισχύει θσ=σθ

  23. Παράδειγμα C: anc(X,Y) :- par(X,Z),anc(Z,Y) θ={X/Y,Y/U,Z/V}, σ={Y/αδάμ,U/T,V/T,X/εύα} θσ={X/Y/αδάμ,Y/U/Τ,Z/V/Τ, Υ/αδάμ, U/T,V/T,X/εύα} • Εκδιώκωόποια στοιχεία του σ αφορά ο κανόνας ii: • Υ/αδάμ λόγω του Y/U/Τ • Χ/εύα λόγω του Χ/Υ/αδάμ, οπότε έχω θσ={X/Y/αδάμ,Y/U/Τ,Z/V/Τ, U/T,V/T}

  24. Παράδειγμα θσ={X/Y/αδάμ,Y/U/Τ,Z/V/Τ, U/T,V/T} • το οποίο γίνεται προφανώς: θσ={X/αδάμ,Y/Τ,Z/Τ, U/T,V/T} • Με αποτέλεσμα το Cθ να γίνει: Cθ: anc(αδάμ,Τ) :- par(αδάμ,Τ),anc(Τ, Τ) • Υπενθύμιση: αρχικά είχα C: anc(X,Y) :- par(X,Z),anc(Z,Y)

  25. Υπαγωγή -- Subsumption • Ένα clause Dυπάγεται (is subsumed)από ένα clause Cαν και μόνο αν θ:CθDθ • Εναλλακτικά: τοCεντάσσει (subsumes) το D • Συμβολισμός:CD

  26. Παράδειγμα C: p(X,Z) :- p(X,Y),p(Y,Z) D: p(a,a) :- p(a,a),p(b,b) Προφανώς, θ={Χ/a,Υ/a,Ζ,a} τ.ώ., Cθ: p(a,a) :- p(a,a),p(a,a), δηλ., Cθ: p(a,a) :- p(a,a) και προφανώς CθD οπότε, CD

  27. Σημειώσεις • Γιατί στο προηγούμενο παράδειγμα, είχα CθD? • Υπενθύμιση: κάθε clause είναι ένα πεπερασμένο σύνολο από literals. Άρα οι προηγούμενες δηλώσεις μεταφράζονται ως C: {p(X,Z),p(X,Y),p(Y,Z)} D: {p(a,a),p(a,a),p(b,b)} Cθ: {p(a,a),p(a,a)} • Η σχέση υποσυνόλου είναι προφανής

  28. Σημειώσεις • Όταν λέμε ότι ένας κανόνας (ή ισοδύναμα) ένα clause C είναι υποσύνολο ενός clause D, πάει να πει ότι το D περιέχει πιο πολλά literals [ξανά: ένα clause είναι ένα σύνολο από literals] • Αυτό σημαίνει, ότι για να γίνει true το D, πρέπει να ισχύουν πιο πολλές συνθήκες, ή με άλλα λόγια, το D γίνεται true σε λιγότερες περιπτώσεις • Έτσι εξηγείται και η ορολογία ότι το C εντάσσει το D,αν και το C είναι υποσύνολο του D.Είναι δηλ., υποσύνολο σαν set από literals, αλλά είναι υπερσύνολο σαν set από τιμές που το κάνουν true. • Γυρίστε πίσω και ξαναδέστε το παράδειγμα...

  29. Ενοποιητής -- Unifier • Έστω L,M literals. Αν υπάρχει substitution θ, τ.ώ.,Lθ=Μθτότε η θ λέγεται unifierκαι τα unifiable. • Έστω θ,γsubstitutions. Τότε το θ είναι πιο γενικός (more general)από το γ, αν υπάρχει λ τ.ώ., θλ=γ • Ο unifier που είναι πιο γενικός από οποιονδήποτε άλλο για δυο literals L,Mλέγεται και πιο γενικός unifier (Most General Unifier – MGU)

  30. Παράδειγμα • Έστω L=p(X,a,Z) και M=p(V,W,b) • Για θ1={X/a,Z/b,V/a,W/a} και θ2={X/V,Z/b,W/a} • λ={V/a} τ.ώ., θ1=θ2λ • Για θ3={X/V,Z/b,W/a}, λ’={V/a} τ.ώ., θ1=θ3λ’ • Υπάρχουν περισσότεροι του ενός mgu. • Υπάρχει και απλός αλγόριθμος για να υπολογίσουμε έναν εξ’ αυτών.

  31. Αλγόριθμος MGU(L,M) INPUT: literals L=ψ(t1,...,tn),M=ψ(t'1,...,t'n) OUTPUT: ο mgu θ αν τα L,M είναι unifiable, a dummy , αλλιώς BEGIN θ={} i=1; unifies=true; REPEAT IF tiθti'θ IF ti'θ is a variable θ  θ{ti'θ/tiθ} ELSEIF tiθ is a variable θ  θ{tiθ/ti'θ} ELSE unifies  false; i  i + 1; UNTIL i> n OR unifies = false; IF unifies RETURN θ, ELSE RETURN  END

  32. Παράδειγμα L: p(X,Z,a,U) και M:p(Y,Y,V,W) θ0 = {} θ1 = {Υ/Χ} (Υθ0 = Υ, ήτοι variable) θ2 = θ1{Υθ1/Zθ1}={Y/X}{X/Z} = {Y/X,X/Z} (Υθ1=Χ, ήτοι variable) θ3 = θ2{V/a}={Y/X,X/Z,V/a}(Vθ2=V, ήτοι variable) θ4 = θ3{W/U}={Y/X,X/Z,V/a,W/U}= θ (Wθ3=W, ήτοι variable)

  33. Model Theory of Datalog • Τι ακριβώς υπολογίζει ένα πρόγραμμα Datalog? • Είναι σαν μια query, με τη διαφορά, ότι αντί για ακριβώς ένα result set, έχουμε από ένα result set για κάθε head

  34. Model vs. Proof Theory • Θυμηθείτε τη διαφορά: • Model theory & Interpretation: μια πρόταση είναι αληθής αν είναι true για κάθε πιθανό κόσμο • Proof theory: ... αν η πρόταση προκύπτει ως παραγωγή από ένα κανόνα και κάποια αξιώματα • Οι τεχνικές είναι ισοδύναμες

  35. Υπενθυμίσεις • Interpretation: η απεικόνιση των predicates, variables, σε οντότητες ενός universe • Ταυτολογία: ένα clause που είναι true για κάθε πιθανή interpretation. Π.χ., • p(a) :- p(a) • q(X) :- p(a),q(X),r(b) • Model: αν ένα clause Cικανοποιείται από μια interpretation , τότε η είναι μοντέλο του C.

  36. Υπενθυμίσεις • S╞ F: Αν το F είναι ένα ground fact και το S ένα σύνολο από clauses, το Fσυνάγεται (είναι consequence)από το S αν κάθε interpretation που ικανοποιεί το S,ικανοποιεί και το F. Π.χ., S: {p(a,b), p(X,Y) :- p(Y,X)} F: p(a,b)

  37. t: cat f: food l(α,β): α loves β g(α,β,γ) a gives β to γ “the cat loves X, X that gives food to the cat” το οποίο μπορούμε να θεωρήσουμε true t: 10 f: 5 l(α,β): α < β g(α,β,γ):α + β > γ “10 < X, X s.t., X+5>10” το οποίο είναι προφανώς false Interpretation -- Υπενθυμίσεις l(t,X) :- g(X,f,t)

  38. Herbrand Interpretations • Υπάρχουν άπειρα interpretations για να ελέγξουμε! • Αποδεικνύεται ότι αρκεί να θεωρήσουμε ένα συγκεκριμένο, το λεγόμενο Herbrand Interpretation

  39. Herbrand Interpretations • Υπάρχουν πολλά Herbrand interpretations, για όλα τους όμως, έχουμε: • Constants: απεικονίζονται στον εαυτό τους • Predicates: mappings του CONSTn -> {true,false} • ΠΡΟΣΟΧΗ: μας ενδιαφέρει η αληθοτιμή μόνο των ground facts. Ουσιαστικά, λέμε ότι κάποια ground facts είναι true. • Παρατήρηση: μια Herbrand Interpretation είναι υποσύνολο του Herbrand Base (ΗΒ)

  40. Herbrand Interpretation • Έστω HBμια Herbrand interpretation και vuη αληθοτιμή για facts και rules. • Αν Gείναι ground fact, τότε vu(G)=true αν G, αλλιώς false. • ΑνR ένας κανόνας της μορφής L0:- L1,…,Ln, vu(R)=true ανγια κάθε ground substitution θ, το {L0θ} όταν {L1θ},…, {Lnθ}, αλλιώς false.

  41. Herbrand Interpretation • Κατά τα γνωστά, μια interpretation  ικανοποιεί ένα clause Cαν το κάνει true. • Herbrand Model: αν ένα σύνολο από clauses ικανοποιείται από μια interpretation , τότε η είναι Herbrand μοντέλο για αυτά τα clauses. • Λέμε ότι S╞ Fαν και μόνο αν κάθε interpretation που ικανοποιεί το S,ικανοποιεί και το F.

  42. Herbrand Model -- Παράδειγμα • Έστω loves(X,Y) :- loves(Y,X) και • 1: {{loves(οδυσσεύς, πηνελόπη)}, {loves(πηνελόπη, οδυσσεύς)}} • 2: {{loves(οδυσσεύς, πηνελόπη)}, {loves(πηνελόπη, μνηστήρες)}} • Εμφανώς, το 1 είναι Herbrand model,ενώ το 2 όχι, για τον συγκεκριμένο κανόνα

  43. Σημασιολογία ενός Datalog προγράμματος • Ένα πρόγραμμα P είναι μια function MPαπό (EHB)(IHB): VEHBMP(V)={G|GIHB  (PV)╞ G} • Αν δώσω δηλ., ένα ground fact και τους κανόνες του P, τότε το G προκύπτει λογικά από το ground fact και τους κανόνες αυτούς. • (S) είναι το δυναμοσύνολοτου συνόλου S ήτοι, όλοι οι πιθανοί συνδυασμοί των στοιχείωντου.

  44. Σημασιολογία ενός Datalog goal • Ένας goal ?:-H μαζί με ένα πρόγραμμα P είναι μια function MP,Ηαπό (EHB)(HB): V  EHBMP,H(V)={C|CHB  (PV)╞ G  HC} • Αν το H είναι extensional (ήτοι, ρωτάω κατ’ ευθείαν τα αποθηκευμένα δεδομένα) τότε οι πιθανές απαντήσεις είναι extensional ground facts. Αλλιώς, αν το H είναι intentional συνάγω μόνο intentional ground facts

  45. Προβλήματα • Για να υπολογίσω ένα Datalog πρόγραμμα P έχω να λύσω τρία προβλήματα: • Άπειρες Herbrand interpretations • Πιθανώς κάθε μία εξ’ αυτών έχει άπειρα domains • Άπειρα ground instantiations για τα variables • Υπάρχει λύση...

  46. Ελάχιστο Herbrand Model • Έστω S ένα σύνολο από Horn clauses (ground facts και rules) • Έστω cons(S)={F|FHB  S╞ G}, ήτοι, οτιδήποτε προκύπτει λογικά από το Sκαι είναι επιπλέον και ground fact. • Αν σε ένα EDB εφαρμόσω το πρόγραμμα P, το αποτέλεσμα MP(EDB) είναι MP(EDB)=cons(PEDB)IHB

  47. Ελάχιστο Herbrand Model • Θεώρημα: αν S ένα σύνολο από Horn clauses,υπάρχει ένα ελάχιστοHerbrand Model του S, το cons(S)για το οποίο ισχύουν • cons(S) είναι ένα Herbrand model του S • cons(S)=i για όλα ταiHerbrand models του S

More Related