390 likes | 525 Views
Βάσεις Γνώσεων. Λογική και Σημασιολογία Πάνος Βασιλειάδης pvassil@cs.uoi.gr Μάρτης 200 3. www.cs.uoi.gr/~pvassil/courses/knowledge_bases/. Employee. Works On. Project. Σημασιολογία – μια πρώτη προσέγγιση. Αρχική απόδοση σημασιολογίας (σε φυσική γλώσσα ):
E N D
ΒάσειςΓνώσεων Λογική και Σημασιολογία Πάνος Βασιλειάδης pvassil@cs.uoi.grΜάρτης 2003 www.cs.uoi.gr/~pvassil/courses/knowledge_bases/
Employee Works On Project Σημασιολογία – μια πρώτη προσέγγιση • Αρχική απόδοση σημασιολογίας (σε φυσική γλώσσα): • Υπάρχουν δύο τύποι οντοτήτων Employee & Project και ένας τύπος συσχετίσεων WorksOn μεταξύ τους. • Εμφανώς, όλοι καταλαβαίνουμε τι σημαίνει το διάγραμμα • Όμως, ο ορισμός είναι ασαφής και μη τυπικός!
Employee Works On Project Σημασιολογία – λίγο πιο τυπικά • Employee All • Project All • WorksOn Employee X Project • Υπάρχει ένα σύνολο πραγμάτων Allτου οποίου υποσύνολα είναι τα σύνολα Employee&Project. Επιπλέον, η συσχέτιση worksOnείναι υποσύνολο όλων των πιθανών συνδυασμών από Employee&Project. • Μπορούμε και καλύτερα: domains + schema!
Σημασιολογία -- Πεδία Ορισμού και Σχήμα • Employee empId X empName X salary • empId Integer //μπορούσε καιEmpId ID • empName String • salary Integer • Project prjId X budget • prjId Integer • budget Integer • WorksOn empId X prjId
Σημασιολογία -- Πεδία Ορισμού και Σχήμα • Employee empId X empName X salary • empId Integer • empName String • salary Integer • Project prjId X budget • prjId Integer • budget Integer • WorksOn empId X prjId • Ήδη έχουμε: • Διαισθητική αντίληψη του πώς γράφουμε... • Σημειογραφία • Entity/Relationship Types • Domains • Πληροφορία σχήματος • Όμως: • Τυπική γλώσσα? • Υπονοούμενη σημασιολογία? • Δυνατότητα λογικών συλλογισμών?
Περιορισμοί -- Πρωτεύοντα κλειδιά i,n1,s1,n2,s2 (i,n1,s1),(i,n2,s2)Employee=>n1=n2s1=s2 • Με βάση αυτό το κολπάκι, ενίοτε θα αυθαιρετούμε και θα χαρακτηρίζουμε τους Employees από το empId τους και μόνο
Σημασιολογία? • Έχουμε ήδη ορίσει τη δομή και τους περιορισμούς που διέπουν τα ER διαγράμματά μας • Ακόμα δεν έχουμε τυπική γλώσσα, αλλά μια ιδέα της • Δεν έχουμε ούτε τρόπο να ξεφύγουμε από την αξία των ονομάτων. Π.χ., έχει σημασία ότι χρησιμοποιώ το όνομα Employee και όχι Louloudaki! • Όταν ορίσουμε μια γλώσσα τυπικά, θα μπορούμε να εξάγουμε λογικά συμπεράσματα για το μοντέλο μας, χωρίς βοήθεια από την ονοματολογία τους στο φυσικό κόσμο.
Κατηγορηματικός Λογισμός (Predicate Logic) Predicate Logic Θα δούμε ότι έχουμε ωραία εργαλεία και απλές γλώσσες... Prolog Datalog-neg
ΠΡΟΣΟΧΗ: στη συνέχεια,ΚΑΘΕ ΛΕΞΟΥΛΑ θα παίζει ρόλο!!! Μη φοβάστε! Ρωτάτε! Κρατάτε σημειώσεις! Ξυπνήστε...
Predicate Logic: Terms • Έστω Fiμια οικογένεια από σύμβολα συναρτήσεων(function symbols) τ.ω.: • Τα σύμβολα συναρτήσεων είναι διακριτά μεταξύ τους (pairwise disjoint) • Η οικογένεια Fiαποτελείται από όλες τις συναρτήσεις που έχουν arity (αριθμό ορισμάτων) ίσο με i • Έστω Xένα πεπερασμένο σύνολο από μεταβλητέςΧ={x1,x2,…}που είναι διακριτές με όλες τις συναρτήσεις. • Δεχόμαστε να υπάρχει και η οικογένεια F0(με μηδενικό αριθμό ορισμάτων) η οποία θα χρησιμοποιηθεί για να εκφράσουμε σταθερές (constants)
Predicate Logic: Terms • Κάθε kF0είναι term (οι σταθερές είναι όροι) • Κάθε xXείναι term (οι μεταβλητές είναι όροι) • Αν fFk (με arity ίση με k) και t1,…,tkείναι terms, τότε f (t1,…,tk)είναι term • Τίποτε άλλο δεν είναι term
Predicate Logic: Terms • Κάθε kF0είναι term (οι σταθερές είναι όροι) • 123 είναι term.‘μουστάκιας’ είναι term επίσης ... • Κάθε xXείναι term (οι μεταβλητές είναι όροι) • X είναι term, MyEmpId είναι term • Αν fFk (με arity ίση με k) και t1,…,tkείναι terms, τότε f (t1,…,tk)είναι term • Multiply(radius,3.14)έχει arity 2 και F2
Predicate Logic: Terms • Ένας term είναι μια έκφραση που μπορεί να αποτιμηθεί σε μια τιμή • 123 είναι term.‘μουστάκιας’ είναι term επίσης ... • X είναι term, MyEmpId είναι term • Multiply(radius,3.14)
Predicate Logic: Atomic formulas • Έστω Piμια οικογένεια από σύμβολα κατηγορημάτων (predicate symbols), ώστε κάθε pPkέχει arity ίση με k. • Αν t1,…,tkείναι terms, τότε p(t1,…,tk)είναι atomic formula ή predicate • employee(123,’Makis’,30000000000) • champion(X)
Predicate Logic: Atomic formulas • Ένα predicate έχει τιμή trueή false. • Υποθέτουμε, δηλ., δύο ειδικές σταθερέςtrueκαι false, οι οποίες είναι, δηλ., συναρτήσεις με arity 0 (και ανήκουν στο F0) • Επίσης, υποθέτουμε δύο σύνολα TERMS και AFμε όλους τους terms και τις atomic formulas.
Predicate Logic: Formulas • Το σύνολο των well-formed formulas (WFF)ορίζεται ως εξής: • Κάθε ατομική φόρμουλα είναι wwf , ήτοι tAF=>tWFF • Αν f1και f2 είναι wff τότε είναι επίσης wff οι εξής εκφράσεις: • f1 and f2ήf1f2 • f1 or f2ήf1f2 • not f1ήf1
Predicate Logic: Formulas • Αν fWFFκαι xX τότε είναι επίσης wff οι εξής εκφράσεις: • foreach x f ήX f • exists x f ήX f • Τίποτε άλλο δεν είναι WFF • Δικαιούμαι επίσης να λέω: • f1==>f2 αντί για (f1)f2
Παραδείγματα • (p(X,Y) (q(X) F)) • (p(X,Z) (q(Y)T)) (Xp(X,Z)=> q(Y)). • ((X p(X) Y q(Y)) <=> X,Y (p(X) q(Y)))
Αντιπαραδείγματα • X q. • p,fp(X,f(Y)). • X f(X).
Ελεύθερες & Δεσμευμένες Μεταβλητές • Δεσμευμένη (bound)μεταβλητή: όταν βρίσκεται μέσα στο scope κάποιου quantifier • Ελεύθερη (free),όταν δεν είναι δεσμευμένη • Z (X(p(X)q(X)) Xr(X)) => XT(f(X),Z) • Ζ: free(εκτός του scope τουZ) • Χ: bound(3 φορές, σε διαφορετικό scope τη φορά)
Predicate Logic: Universe of Discourse(UoD) • Όλες οι φόρμουλες που γράφουμε, πρέπει με κάποιο τρόπο να αντιστοιχίζονται σε κάποιου είδους σύνολο από τον πραγματικό κόσμο (ή μάλλον, από τα μαθηματικά) • Έτσι, μπορούμε να εφεύρουμε κανόνες οι οποίοι να μεταφράζουν τις φόρμουλές μας σε σχέσεις πάνω σε αυτό το σύνολο. Αν κάτι είναι σωστό στο πεδίο αναφοράς, τότε είναι σωστή και η αντίστοιχη φόρμουλά του...
Predicate Logic: Interpretation • Ερμηνεία(interpretation)είναι μια συνάρτηση που εφευρίσκουμε είτε με το μυαλό μας, είτε αυτόματα και η οποίααντιστοιχεί: • Μια μεταβλητή Χ σε μια τιμή του πεδίου αναφοράς D • Ένα σύμβολο συνάρτησης fσε μια συνάρτηση του ιδίου arity στο πεδίο αναφοράς, ήτοι, g:Dk->D • Ένα predicate Pσε μια σχέσηr Dk • Μια wff φ σε μια τιμή true/false
Πρόβλημα • Δίνεται: φ WFF • Ερώτηση: η φ είναι true ή false ? • Τεχνική: Να μεταφράσουμε τη φ σε αντικείμενα του UoD
Predicate Logic: Interpretation • Συνάρτηση αποτίμησης όρωνû:TERM->D • Συνάρτηση αλήθειας vu: WFF->{0,1}τ.ώ. • vu(p(t1,...,tk)) = 1 iff (û(t1),..., û(tk)) r • vu(p(t1,...,tk)) = 0 iff (û(t1),..., û(tk)) r • f= (f1 f2), τότε vu(f)=min(vu(f1),vu(f2)) • f= (f1 f2), τότε vu(f)=max(vu(f1),vu(f2)) • f= (f1), τότε vu(f)=1-vu(f1) • f= (X f1), τότε vu(f)=1 iff vu’(f1)=1 για κάθε τιμή dστο D • f = (X f1), τότε vu(f)=1 iff vu’(f1)=1 για τουλάχιστον μία τιμή dστο D
Παράδειγμα • p(a) • Interpretation: D = {1,2}. • Assignment του a: 1. • Assignment του p: p(1) = true και p(2) = false. • Σε αυτή την interpretation, η wff είναι true. • Interpretation: D και p όπως πριν, αλλά a: 2. • Η wff είναι false σ’ αυτή την interpretation.
Παράδειγμα • Xp(X)καιX p(X) • Και στις δύο interpretations, η πρώτη wff είναι false και η δεύτερη true. • Ιnterpretation:D = {0,1,2,...}. • Assignment: p(X) είναι η σχέση «περιττό X». • Xp(X) γίνεται false και X p(X) γίνεται true. • Assignment: p(X) είναι η σχέση «X >=0», και οι δύο wff είναι true.
Παράδειγμα • XYp(X,Y)καιYXp(X,Y) • Interpretation: D = {0,1,2,…}. • Assignment: p(X,Y) η σχέση X >= Y. • Και οι δύο wff είναι true. • Interpretation: D = {…,-2,-1,0,1,2,…}. • p(X,Y) ίδια. • Η πρώτη wff είναι true και η άλλη false!
Ορισμοί • Μια interpretation για μια wff είναι modelαν η wff είναι true με αυτή την interpretation • Μια interpretation για μια wff είναι counter-modelαν η wff είναι false με αυτή την interpretation • Μια wff είναι valid(ή ταυτολογία) αν είναι true για κάθε interpretation
Ορισμοί • Μια wff είναι satisfiableαν η wff είναι true με κάποια interpretation • Μια wff είναι unsatisfiableαν η wff είναι false με όλες τις interpretation
Λογική συνεπαγωγή • Έστω ένα (πιθανώς άπειρο) σύνολο από wffΣ και μια wff φWFF • Η φσυνεπάγεται λογικά από το Σ Σ ╞ φ αν οποιαδήποτε interpretation ικανοποιεί όλες τις wff του Σ ικανοποιεί και τηνφ. • ΠΡΟΣΟΧΗ: αφορά όλες τις [πιθανόν άπειρες] interpretations
Παραδείγματα • {X p(X)}╞ p(a). • {p(a)}╞Xp(X). • {X(p(X)=>q(X)), Xp(X)}╞X q(X)
Ερώτημα • Πώς μπορώ να αποδείξω αν μια wff φ προκύπτει από ένα σύνολο από wff Σ? • Αν Σ το είναι πεπερασμένο, τότε για να πω Σ ╞ φ αρκεί να δείξω ότι Σ => φ. Δύσκολο... • Αν είναι άπειρο το Σ, υπάρχει θεώρημα, που λέει ότι αν Σ ╞ φ, τότε για κάποιο πεπερασμένο Σ0Σ, Σ0 ╞ φ. Πάλι όμως είναι δύσκολο... • Θα ήθελα επίσης να το κάνω και αποδοτικά ...
Συντακτική παραγωγή • Ότι προκύπτει λογικά στη βάση των interpretations, θα θέλαμε εμείς να μπορούμε να το υπολογίσουμε συντακτικά: ήτοι, δοθείσης μια δήλωσης, να εξάγουμε συμπεράσματα με βάση κάποιους συντακτικούς κανόνες • Κανόνας παραγωγής: Ότι θεωρώ true f1, f2, … g1, g2, … Ότι προκύπτει επειδή τα fi είναι true…
Συντακτική παραγωγή • Logical calculus: ένα σύνολο κανόνων παραγωγής • Αν (και μόνο αν) μια φόρμουλα fμπορεί να παραχθεί συντακτικά από το σύνολο Σ μέσω κάποιου κανόνα παραγωγής του λογισμού LCγράφουμε Σ ├f • ΠΡΟΣΟΧΗ: είναι Σ ├ φσυντακτική παραγωγή, ενώ Σ ╞ φ είναι λογική συνεπαγωγή
Α, (Α=>Β) Β Παράδειγμα • Modus ponens: • ΈστωΣ = {male, male=>human, human=>living} • Τότε: • Σ├ human • Σ={human} ├ living • υποθέτοντας ότι male,human,living είναι predicates με arity 0
Πλήρης και συνεπής λογισμός • Ένας λογισμός LC είναι πλήρης και συνεπής αν για οποιοδήποτε συμπέρασμα φ που παράγεται συντακτικά από ένα σύνολο wff Σ, το ίδιο συμπέρασμα προκύπτει και λογικά Σ ├ φ αν και μόνο αν Σ ╞ φ • Το κέρδος είναι ότι για να υπολογίσουμε λογικές συνεπαγωγές, αρκεί να εφαρμόσουμε συντακτικούς κανόνες παραγωγής
Παραγωγές Για να δείξω ότι το συμπέρασμα Α παράγεται από το σύνολο wffΓ, χρειάζομαι: • Ένα (άπειρο) σύνολο από αξιώματα Δ • Ένα κανόνα παραγωγής (π.χ., modus ponens) • Μια πεπερασμένη σειρά από wff Α1,...,Αnτ.ω. • Α = Αn • Για κάθε Αi, είτε ΑiΓΔ, είτε προκύπτει με modus ponens από Aj, Ak, με j,k<i
Συνέπεια • Έστω ένα σύνολο από wffΣ . Το Σείναι συνεπές αν δεν υπάρχει wff φWFF τ.ω. Σ ╞ φκαι Σ ╞ (not φ) • Gödel (1936): δεν υπάρχει μέθοδος που να μας εγγυάται ότι μπορούμε να αποκριθούμε αν ένα σύνολο από wff Σ είναι συνεπές. • Οπότε, κι εμείς πήραμε υποσύνολα των πιθανών wff και υποσύνολα των λογικών συνεπαγωγών και φτιάξαμε την Prolog…