Στις διαλέξεις του μαθήματος, αρχικά γίνεται μία σύντομη εισαγωγή στη φιλοσοφία του λογικού προγραμματισμού και στη συνέχεια παρουσιάζεται αναλυτικά η γλώσσα προγραμματισμού Prolog. Καλύπτονται θέματα που σχετίζονται με τη θεωρία του λογικού προγραμματισμού, τον λογικό προγραμματισμό με περιορισμούς, τις τεχνικές υλοποίησης συστημάτων λογικού προγραμματισμού και τον παράλληλο λογικό προγραμματισμό. Τέλος, συζητάται η χρήση του λογικού προγραμματισμού για την αναπαράσταση γνώσης, τα έμπειρα συστήματα, οι συμπερασματικές βάσεις δεδομένων και η εφαρμογή του λογικού προγραμματισμού σε θέματα που σχετίζονται με τον παγκόσμιο ιστό.
Λίγα λόγια για το μάθημα. Γενικά στοιχεία, ενδιαφέροντες σύνδεσμοι. Εισαγωγή στην γλώσσα προγραμματισμού Prolog.
Προβλήματα αναζήτησης: πρώτα κατά βάθος αναζήτηση. Προβλήματα ικανοποίησης περιορισμών. Προβλήματα συμβολικής παραγώγισης.
Συνθετες ερωτήσεις, επέκταση προγράμματος.
Ανακατατάξεις προτάσεων και στόχων, δένδρα αναπαράστασης.
Άτομα, αριθμοί, μεταβλητές, αναπαράσταση.
Λίστες, παραδείγματα λιστών (απλές εώς σύνθετες), συνένωση λιστών, ενσωματωμένα κατηγορήματα.
Τα κατηγόρημα reverse και sublist: παραδείγματα.
Συνέχεια στο παράδειγμα της sublist. Εισαγωγή στοιχείου στην αρχή της λίστας. Διαγραφή στοιχείου από τη λίστα.
Παράδειγμα της flatten στην ECLIPSE.
Προτεραιότητα ορίσματος, προσεταιριστικότητα (associativity). Μερικοί προκαθορισμένοι τελεστές. Παραδείγματα από παλιά θέματα.
Το κατηγόρημα length.
Παραδείγματα κατηγορημάτων: max, maxlist, ordered, subsum, between. Μερικά εσωματωμένα κατηγορήματα.
Εισαγωγή, παραδείγματα.
Το κατηγόρημα name. Kατηγορήματα ελέγχου τύπων, χειρισμού όρων, χειρισμού προγράμματος.
Λύση του προβλήματος. Προγραμματισμός με περιορισμούς. 2ος και 3ος τρόπος επίλυσης του προβλήματος.
Γενίκευση για Ν βασίλισσες. Επίλυση με την ECLPSE.
Συνέχεια στα παραδείγματα προγραμματισμού με περιορισμούς.
Επίλυση με δύο τρόπους.
Ορισμός όρου (term), ορισμός ατομικού τύπου (atomic formula) ή ατόμου (atom), ορισμός καλοσχηματισμένου τύπου (well-formed formula) ή τύπου, κλειστός τύπος (closed formula). Προτάσεις, σύνταξη και σημασιολογία (syntax and semantics). Σύμπαν Herbrand, Μοντελοθεωρητική σημασιολογία.
Σημασιολογία σταθερού σημείου, απεικόνιση σε ένα σύνολο. Παραδείγματα: επίλυση παλαιών θεμάτων.
Στιγμιότυπο (instance), Παραλλαγή (variant), Σύνθεση (composition) αντικαταστάσεων, Ενοποίηση (unification).
Κανόνας συμπερασμού της SLD-ανάλυσης.
Μεθοδολογία αναπαράστασης της γνώσης. Ένα πρόβλημα διάγνωσης. Οπίσθια συλλογιστική με απλή Prolog. Αρχιτεκτονική των εμπείρων συστημάτων και δομικά στοιχεία. If-then κανόνες.
Παραδείγματα
Λογικός προγραμματισμός για την αναπαράσταση γνώσης, έμπειρα συστήματα. Παροχή εξηγήσεων, πως αποδείχθηκε κάτι.
Εισαγωγή ποσοτικού μέτρου βεβαιότητας σε γεγονότα και if-then κανόνες. Επέκταση του μέτα-διερμηνέα για οπίσθια συλλογιστική.
Αναπαράσταση Γνώσης μέσω Σημασιολογικών Δικτύων. Κληρονόμηση ιδιοτήτων σε σημασιολογικά δίκτυα: στοιχειώδης προσέγγιση.
Κώδικας, παραδείγματα ερωτημάτων, πλαίσια.
Υπολογισμός των τιμών των σχισμών καλύπτοντας και την περίπτωση των διαδικασιών.
Δεδομένα (απλά ή σύνθετα) VS γνώση, σύνταξη προγραμμάτων datalog. Προτάσεις datalog, κατηγορήματα IDB – κατηγορήματα EDB, παραδείγματα.
Διερμηνέας, μεταγλωτιστής. Αναπαράσταση στην περιοχή προγράμματος των προτάσεων. Εισαγωγή στον παράλληλο λογικό προγραμματισμό.
Στοιχείο μέλος ενός δυαδικού δέντρου, δυαδικό λεξικό.
Σημασιολογία των προγραμμάτων datalog. Παραδείγματα. Επεκτάσεις της datalog.
Semantic web, αναπαράσταση γνώσης, τεχνολογίες και ο λογικός προγραμματισμός.
Εισαγωγή και διαγραφή κόμβων σε δυαδικό λεξικό, διαγραφή κόμβου από φύλλο, διαγραφή κόμβου από οπουδήποτε. Εισαγωγή κόμβου στη ρίζα. Εισαγωγή κόμβου οπουδήποτε (μη ντετερμινιστικά).
Αναπαραστάσεις γράφων, αναπαραστάσεις κατευθυνόμενων γράφων (με κόστος ακμών). Εύρεση μονοπατιού σε γράφο, εύρεση μονοπατιού Hamilton (μονοπάτι χωρίς κύκλους που περιλαμβάνει όλους τους κόμβους του γράφου).
Συνέσεια στους γράφους. Εύρεση μονοπατιού ελαχίστου κόστους από node1 σε node2. Παραδείγματα.
Μεταβλητές, κατηγορήματα επεξεργασίας λιστών, άρνηση, προγραμματισμός με περιορισμούς.