Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Βάσεις Γνώσεων Άρνηση στην Datalog: Datalog  Πάνος Βασιλειάδης Μάιος 2003

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Βάσεις Γνώσεων Άρνηση στην Datalog: Datalog  Πάνος Βασιλειάδης Μάιος 2003"— Μεταγράφημα παρουσίασης:

1 Βάσεις Γνώσεων Άρνηση στην Datalog: Datalog  Πάνος Βασιλειάδης pvassil@cs.uoi.gr Μάιος 2003 www.cs.uoi.gr/~pvassil/courses/knowledge_bases/

2 2 Γενική ιδέα Μέχρι στιγμής δεν έχουμε εισάγει επισήμως την άρνηση στη Datalog Τα προβλήματα που αντιμετωπίζουμε είναι αντίστοιχα με αυτά που είχαμε όταν εισάγαμε built-in predicates Γενικώς, όμως, η δυσκολία είναι μεγαλύτερη στην αντιμετώπισή τους.

3 3 Closed World Assumption (CWA) Η αρχή της υπόθεσης του κλειστού κόσμου ουσιαστικά λέει πως οτιδήποτε δεν προκύπτει λογικά από τα δεδομένα της βάσης δεδομένων μας είναι ψευδές. Με άλλα λόγια, αληθή είναι μόνο τα στοιχεία που είτε είναι αποθηκευμένα στη ΒΔ, είτε μπορούν να συναχθούν με κάποιους λογικούς κανόνες από αυτά.

4 4 Closed World Assumption (CWA) «Αν ένα fact δεν προκύπτει λογικά από ένα σύνολο από Datalog clauses, τότε η άρνησή του είναι αληθής» F είναι θετικό literal και S ╞ F S ╞ CWA F: F είναι αρνητικό literal και S ╞ F

5 5 Datalog  Η Datalog  ορίζεται ως η γλώσσα που επεκτείνει την απλή Datalog, επιτρέποντας και αρνητικά literals στο body των κανόνων Η Datalog  έχει το πρόβλημα ότι τα προγράμματά της μπορούν να έχουν περισσότερα του ενός minimal Herbrand models

6 6 Παράδειγμα undergraduate(X) :- student(X),  graduate(X) με EDB E = {student(a), student(b), student(c), student(d), student(d), graduate(a), graduate(c)} και Herbrand models H1= E  {undergraduate(b), undergraduate(d), undergraduate(e)} H1= E  {undergraduate(b), undergraduate(d), undergraduate(e), undergraduate(f)}

7 7 Datalog  Το πρόβλημα δεν είναι μόνο η έλλειψη ενός minimal μοντέλου, αλλά και ο απειρισμός των δεδομένων. Π.χ., έστω boring(X) :-  interesting(X) Κάθε Herbrand model για τον παραπάνω κανόνα έχει άπειρο μέγεθος Προφανώς πρέπει να επεκτείνουμε την έννοια της ασφάλειας και για την περίπτωση της άρνησης.

8 8 Ασφαλή προγράμματα στην Datalog  Απαιτούμε κάθε μεταβλητή που εμφανίζεται σε ένα literal με άρνηση είτε να εμφανίζεται και σε κάποιο literal χωρίς άρνηση, είτε να ισούται με κάποια μεταβλητή που εμφανίζεται σε κάποιο literal χωρίς άρνηση, είτε να ισούται με κάποια σταθερά

9 9 Κι άλλα προβλήματα... Η CWA, ακόμα και με ασφαλή προγράμματα, δεν λύνει όλα τα προβλήματα. Π.χ., S: q(b) :-  p(a) Το πρόγραμμα είναι ασφαλές, αφού αφορά μόνο σταθερές. Δεν μπορούμε να συνάγουμε ούτε q(b) ούτε p(a). Άρα S ╞ CWA  p(a) αλλά και S ╞ CWA  q(b) (CWA). Δυστυχώς όμως, κανένα Herbrand model δεν μπορεί να έχει και  p(a) και  q(b) ταυτοχρόνως. Άρα, χρειαζόμαστε κάτι πιο ισχυρό από την CWA.

10 10 Stratified Datalog H στρωματοποιημένη Datalog (stratification = διαστρωμάτωση) επιβάλει συγκεκριμένη σειρά με την οποία αποτιμούμε τα predicates σε ένα κανόνα. Συγκεκριμένα, αποτιμούμε πρώτα τα αρνητικά literals, και όπως θα ήταν αναμενόμενο, αποτιμούμε πρώτα τα bodies και μετά τα heads των κανόνων. Σε ότι αφορά ολόκληρα προγράμματα, ο στόχος είναι να αποτιμάται ένα head, αφού έχουν αποτιμηθεί όλα τα αρνητικά literals του προγράμματος και όποιο άλλο predicate απαιτείται για να αποτιμηθούν αυτά.

11 11 Επεκτεταμένος Γράφος Εξάρτησης Για ένα πρόγραμμα Datalog  ο επεκτεταμένος γράφος εξάρτησης έχει για κόμβους τα predicates του IDB και για κατευθυνόμενες ακμές τα ζεύγη από literals όπου το p βρίσκεται στο head ενός κανόνα και το q στο body. Αν το q είναι αρνητικό literal σε κάποιο κανόνα, τότε η ακμή επιγράφεται με .

12 12 Παράδειγμα – Σιδηροδρομικός Σταθμός EDB: link(A,B) υπάρχει (κατευθυνόμενη) γραμμή Α,Β IDB: station(X), linked(A,B) [αν υπάρχει το link(A,B) ή το link(Β,Α) στη ΒΔ], connected(A,B) [υπάρχει δρομολόγιο Α Β] cutpoint (Χ,Α,Β) [κάθε δρομολόγιο από Α Β περνά υποχρεωτικά από Χ], existscutpoint(A,B) [υπάρχει αντίστοιχο Χ] circumvent(X,A,B) [υπάρχει δρομολόγιο Α που ΔΕΝ περνά από το Χ], safely-connected(A,B) [δεν υπάρχει cutpoint για Α,Β]

13 13 Παράδειγμα cutpoint(X,A,B) :- connected(A,B), station(X),  circumvent(X,A,B) circumvent(X,A,B) :- linked(A,B),station(X), X  A, X  B circumvent(X,A,B) :- circumvent(X,A,C), circumvent(X,C,B) safely-connected(A,B) :- connected(A,B),  existscutpoint(A,B) existscutpoint(A,B) :- cutpoint(X,A,B), station(X) linked(A,B) :- link(A,B) linked(A,B) :- link(B,A) connected(A,B) :- linked(A,B) connected(A,B) :- connected(A,C), linked(C,B) station(X) :- linked(X,Y) safely-connected cutpoint connected circumvent station linked existscutpoint  

14 14 Επεκτεταμένος Γράφος Εξάρτησης Αν υπάρχει μονοπάτι από το p στο q το οποίο περνά από ακμή με επιγραφή , τότε το q πρέπει να αποτιμηθεί εξ’ ολοκλήρου πριν από το p. Π.χ., το safely-connected πρέπει να αποτιμηθεί μετά από την πλήρη αποτίμηση του existscutpoint. Ομοίως, το existscutpoint μπορεί να αποτιμηθεί μόνο αφού το circumvent έχει αποτιμηθεί πλήρως.

15 15 Διαστρωμάτωση (stratification) Μια διαστρωμάτωση (stratification) ενός προγράμματος είναι η κατανομή των IDB predicates του προγράμματος σε υποσύνολα S 1, …, S n, τ.ώ.: Αν p i  S i και q  S j, και υπάρχει ακμή με επιγραφή , τότε i>j Αν p i  S i και q  S j, και υπάρχει ακμή, τότε i  j Τα σύνολα αποκαλούνται και στρώματα (strata) του προγράμματος

16 16 Διαστρωμάτωση (stratification) Αποτιμούμε πρώτα το στρώμα S1, μετά το S2 κ.ο.κ. Με άλλα λόγια, αν κάποιο predicate p είναι στο head ενός κανόνα και το κάποιο άλλο predicate q στο body, τότε το q είναι σε μικρότερο στρώμα και θα αποτιμηθεί πλήρως πριν το p. Αν δεν υπάρχει άρνηση, μπορούμε να τα αποτιμήσουμε εν παραλλήλω, αλλά ποτέ το q μετά το p. Υπάρχουν περισσότερες από μία διαστρωματώσεις για ένα πρόγραμμα.

17 17 Παράδειγμα Stratification 1 S1: {linked, station, circumvent, connected} S2: {cutpoint, existscutpoint} S3: {safely-connected} Stratification 2 S1: {linked, station} S2: {circumvent, connected} S3: {cutpoint, existscutpoint} S4: {safely-connected} κ.ο.κ.... safely-connected cutpoint connected circumvent station linked existscutpoint  

18 18 Διαστρωμάτωση (stratification) Θεώρημα: ένα πρόγραμμα είναι στρωματοποιημένο (stratified), ήτοι επιδέχεται στρωματοποίησης, αν και μόνο αν δεν υπάρχει κύκλος με ακμή που επιγράφεται με .

19 19 Αντιπαραδείγματα p(X,Y) :-  p(Y,X), q(X,Y) p(X,Y) :-  s(Y,X), h(X,Y) s(X,Y) :- p(X,Z), p(Z,Y) p  q p  h s

20 20 Αλγόριθμος εύρεσης στρωματοποίησης Για κάθε ζεύγος ακμών για το οποίο υπάρχει μονοπάτι από το p στο q, που περνά από , βάλε μια απευθείας ακμή με επιγραφή . i=1 Όσοι κόμβοι δεν έχουν εξερχόμενες ακμές με επιγραφή  μπαίνουν στο στρώμα i. Διέγραψε τους κόμβους αυτούς και τις ακμές τους. Αύξησε το i κατά ένα και επανέλαβε, μέχρι να τελειώσουν οι κόμβοι

21 21 Παράδειγμα  safely-connected cutpoint connected circumvent station linked existscutpoint 

22 22  Παράδειγμα safely-connected cutpoint connected circumvent station linked existscutpoint  Για το cutpoint έχω μονοπάτι που περνά από  για τους circumvent, station, linked Κάτωθι φαίνεται η επέκταση του γράφου για το cutpoint  cutpoint circumvent station linked  

23 23  Παράδειγμα safely-connected cutpoint connected circumvent station linked existscutpoint  Για το safely- connected έχω για όλους τους κόμβους    

24 24  Παράδειγμα safely-connected cutpoint connected circumvent station linked existscutpoint  Ζωγραφίζω μόνο τις επιπλέον ακμές λόγω cutpoint για να μην υπερφορτωθεί το σχήμα  

25 25  Παράδειγμα safely-connected cutpoint connected circumvent station linked existscutpoint  Stratum 1: τα predicates που δεν έχουν εξερχόμενες ακμές με  Ήτοι, S1={station, linked, circumvent, connected} Στη συνέχεια, διαγράφω τους κόμβους του S1  

26 26 Παράδειγμα safely-connected cutpoint existscutpoint  Θυμίζω ότι για να μη βαρύνει το σχήμα δεν βλέπαμε τις ακμές με  του safely-connected προς όλους τους άλλους κόμβους

27 27 Παράδειγμα safely-connected cutpoint existscutpoint  Κανονικά ο γράφος ήταν όπως φαίνεται δίπλα 

28 28 Παράδειγμα S1={station, linked, circumvent, connected} Stratum 2: τα predicates που δεν έχουν εξερχόμενες ακμές με  Ήτοι, S2={cutpoint, existscutpoint} safely-connected cutpoint existscutpoint  

29 29 Παράδειγμα safely-connected S1={station, linked, circumvent, connected} S2={cutpoint, existscutpoint} S3={safely-connected}

30 30 Θεώρημα Αποδεικνύεται ότι ένα στρωματοποιημένο Datalog  πρόγραμμα έχει ένα ελάχιστο Herbrand model και μάλιστα ανεξάρτητο από την επιλογή της στρωματοποίησης.


Κατέβασμα ppt "Βάσεις Γνώσεων Άρνηση στην Datalog: Datalog  Πάνος Βασιλειάδης Μάιος 2003"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google