Αναπαράσταση Γνώσης και Συλλογιστικές

Σχετικά έγγραφα
Παράδειγµα: Οικονοµικός Σύµβουλος

Αναπαράσταση Γνώσης και Συλλογιστικές

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Τελικές εξετάσεις 24 Ιουνίου 2004

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΜΣΕ ΣΤΗΝ ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ

Η γλώσσα προγραµµατισµού Prolog Αλγόριθµοι αναζήτησης σε Prolog

! όπου το σύµβολο έχει την έννοια της παραγωγής, δηλαδή το αριστερό µέρος ισχύει ενώ το δεξιό µέρος συµπεραίνεται και προστίθεται στη βάση γνώσης.

Aναπαράσταση Γνώσης στο Σημασιολογικό Ιστό

Α. Ερωτήσεις Ανάπτυξης

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Αναπαράσταση Γνώσης και Συλλογιστικές

Εισαγωγή στο RDF. Το Resource Description Framework (RDF) Σταύρος Πολυβίου

Προβλήµατα ικανοποίησης περιορισµών

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΠΑΡΑ ΕΙΓΜΑΤΑ ΣΤΗ ΓΛΩΣΣΑ PROLOG ΠΑΡΑ ΕΙΓΜΑ 1

ΑΕΠΠ Ερωτήσεις θεωρίας

HY118- ιακριτά Μαθηµατικά. Νόµοι ισοδυναµίας. Κατηγορηµατικός Λογισµός. ιακριτά Μαθηµατικά, Εαρινό εξάµηνο Παρασκευή, 24/02/2017

Λογικός Προγραµµατισµός: Η Γλώσσα Prolog

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:

HY118- ιακριτά Μαθηµατικά

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ

Κεφάλαιο 10 ο Υποπρογράµµατα

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

επιµέλεια Θοδωρής Πιερράτος

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

Κατηγορηματικός Λογισμός (ΗR Κεφάλαιο )

ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

Κατηγορηµατική Λογική

Κεφάλαιο 5ο: Εντολές Επανάληψης

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Περιεχόμενα. Κατάλογος εικόνων 13. Πρόλογος Το όραμα του Σημασιολογικού Ιστού 19

HY118- ιακριτά Μαθηµατικά

Αναπαράσταση Γνώσης και Συλλογιστικές

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

a = 10; a = k; int a,b,c; a = b = c = 10;

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Γλώσσες & Τεχνικές 4 ο Εξάμηνο. - Ενότητα 2 - Δημοσθένης Σταμάτης Τμήμα Πληροφορικής

ΕΠΛ 434: Λογικός Προγραμματισμός

Λογικός Προγραμματισμός

HY118- ιακριτά Μαθηµατικά

K15 Ψηφιακή Λογική Σχεδίαση 3: Προτασιακή Λογική / Θεωρία Συνόλων

Αναπαράσταση Γνώσης και Συλλογιστικές

Πληροφορική 2. Γλώσσες Προγραμματισμού

Λογικοί πράκτορες. Πράκτορες βασισµένοι στη γνώση

Μονάδες 10. Μονάδες 9 5 PROLOG. Μονάδες 5

Θεώρηµα: Z ( Απόδειξη: Περ. #1: Περ. #2: *1, *2: αποδεικνύονται εύκολα, διερευνώντας τις περιπτώσεις ο k να είναι άρτιος ή περιττός

Εργαστήριο Σημασιολογικού Ιστού

Εργαστήριο Σημασιολογικού Ιστού

HY118- ιακριτά Μαθηµατικά

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012

char name[5]; /* define a string of characters */

7. Βασικά στοιχεία προγραµµατισµού.

HY118-Διακριτά Μαθηματικά

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ

PROLOG Εισαγωγή (PROgramming in LOGic)

3 Αναδροµή και Επαγωγή

ιαχείριση Γνώσης σε Ενδοεπιχειρισιακά ίκτυα και το ιαδίκτυο (ΗΥ-566)

HY118- ιακριτά Μαθηµατικά. Παράδειγµα. Από τα συµπεράσµατα στις υποθέσεις Αποδείξεις - Θεωρία συνόλων. Από τις υποθέσεις στα συµπεράσµατα...

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

( ) = inf { (, Ρ) : Ρ διαµέριση του [, ]}

Πληρότητα της μεθόδου επίλυσης

Επιµέλεια Θοδωρής Πιερράτος

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Λυσεις Ασκησεων - Φυλλαδιο 1

HY118- ιακριτά Μαθηµατικά

Εργαστήριο Σημασιολογικού Ιστού

Κώδικας σχεδίασης Λογισµικής ιαγραµµατικής Οντολογίας

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

ΚΕΦΑΛΑΙΟ 5: Τανυστικά Γινόµενα

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ

Σημειώσεις Λογικής I. Εαρινό Εξάμηνο Καθηγητής: Λ. Κυρούσης

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο;

Πληροφορική 2. Τεχνητή νοημοσύνη

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Γραφικό Περιβάλλον Μοντελοποίησης Οντολογιών και Μεταδεδοµένων RDF στο Σηµασιολογικό ιαδίκτυο

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Αποφασισιµότητα. HY118- ιακριτά Μαθηµατικά. Βασικές µέθοδοι απόδειξης. 07 -Αποδείξεις. ιακριτά Μαθηµατικά, Εαρινό εξάµηνο 2017

1 Συνοπτική ϑεωρία. 1.1 Νόµοι του Προτασιακού Λογισµού. p p p. p p. ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

4. Ο,τιδήποτε δεν ορίζεται με βάση τα (1) (3) δεν είναι προτασιακός τύπος.

Κεφάλαιο 1. Εισαγωγή

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Ακρότατα υπό συνθήκη και οι πολλαπλασιαστές του Lagrange

Τεχνητή Νοημοσύνη. 12η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK

4.3 Ορθότητα και Πληρότητα

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών

Επιµέλεια Θοδωρής Πιερράτος

for for for for( . */

Σύγκριση Προγραµµατιστικών ιεπαφών (APIs) για διαχείριση Οντολογιών Ιστού και Ανάπτυξη Μηχανισµού υποβολής Ευφυών Ερωτηµάτων

HY118- ιακριτά Μαθηµατικά

Transcript:

Αναπαράσταση Γνώσης και Συλλογιστικές Γενικά Προτασιακή λογική Λογική πρώτης τάξης Λογικός προγραµµατισµός Επεκτάσεις της Λογικής Πρώτης Τάξης Συστήµατα Κανόνων Επίλογος Προτάσεις Horn (1/2) Οι προτάσεις Horn ή Οριστικές Προτάσεις (Definite Clauses) αποτελούν ένα περιορισµένο υποσύνολο της λογικής πρώτης τάξης. Ειδικότερα, µια πρόταση Horn µπορεί να έχει τη µορφή: A1 A2... AN B ή όπως συνηθέστερα γράφεται: B A1 A2... AN ήακόµη: B A1 A2... AN Ηπρόταση B δηλώνει ότι η πρόταση Β είναι αληθής. εν µπορούν όλες οι βάσεις γνώσεις να µεταφραστούν σε προτάσεις Horn, λόγω της µη δυνατότητας ύπαρξης αρνητικών συµβόλων Γιάννης Ρεφανίδης 93

Προτάσεις Horn (2/2) Η µορφή που έχουν οι προτάσεις Horn έχει ως αποτέλεσµα ναµην είναι δυνατόν να αποδεικνύονται αρνητικές προτάσεις. Για το λόγο αυτό, οι ερωτήσεις που κάνουµε σεένασύστηµα προτάσεων Horn αφορούν την απόδειξη θετικών µόνο προτάσεων. Έτσι ένα σύστηµα προτάσεωνhorn δεν µπορεί ποτέ να πέσει σε αντίφαση, µε την έννοια ότι δεν µπορεί ποτέ να αποδείξει τις προτάσεις P και P ταυτόχρονα. Γιάννης Ρεφανίδης 94 Λογικός προγραµµατισµός (1/2) Ο λογικός προγραµµατισµός αποτελεί την πιο διαδεδοµένη υλοποίηση της λογικής πρώτης τάξης µέσω της γλώσσας λογικού προγραµµατισµού Prolog. Ο λογικός προγραµµατισµός βασίζεται στις προτάσεις Horn. Η γλώσσα Prolog (όπως και η γλώσσα συναρτησιακού προγραµµατισµού LISP) βοηθά στη γρήγορη ανάπτυξη εφαρµογών τεχνητής νοηµοσύνης. Παρέχει: Ευκολία στο χειρισµό συµβόλων Ενσωµατωµένο µηχανισµό ταυτοποίησης/ενοποίησης Ενσωµατωµένο αλγόριθµο αναζήτησης πρώτα-κατά-βάθος Χρήσιµο link: http://www.afm.sbu.ac.uk/logic-prog/ Γιάννης Ρεφανίδης 95

Λογικός προγραµµατισµός (2/2) Οι προτάσεις στο λογικό προγραµµατισµό µπορούν να περιέχουν µεταβλητές, οι οποίες όµως θεωρούνται όλες καθολικά ποσοτικοποιηµένες. Πατέρας(x,y) Γονιός(x,y) Άρεν(x) Το σύµβολο του καθολικού ποσοδείκτη το παραλείπουµε. Υπάρχουν ενσωµατωµένες συναρτήσεις για αριθµητικές πράξεις. Υπάρχουν κατηγορήµατα διαδικαστική υφή όπως π.χ. κατηγορήµατα εισόδου/εξόδου. Η στρατηγική αναζήτησης είναι πρώτα-κατά-βάθος. Έχει σηµασία η σειρά µε την οποία είναι γραµµένες οι προτάσεις στη βάση γνώσης. Ηαναζήτησηµπορείναπαγιδευθείσεµονοπάτια άπειρου µήκους. Γιάννης Ρεφανίδης 96 Σύνταξη (1/2) Τα ονόµατα των κατηγορηµάτων, των αντικειµένων και των συναρτησιακών όρων ξεκινούν µε πεζά γράµµατα. Τα ονόµατα των µεταβλητών ξεκινούν µε κεφαλαίο γράµµα. Κάθε πρόταση (απλήήσύνθετη) τερµατίζει µε τελεία. Απλή πρόταση: άνθρωπος (σωκράτης). Σύνθετες προτάσεις: θνητός(χ) :- άνθρωπος(χ). Για κάθε Χ, εάν το Χ είναι άνθρωπος τότε το Χ είναι θνητός. πατέρας(χ,υ) :- γονιός(χ,υ), άρεν(χ). Για κάθε Χ και Υ, το Χ είναι πατέρας του Υ εάν το Χ είναι γονιός του Υ και επιπλέον το φύλο του Χ είναι αρσενικό. Γιάννης Ρεφανίδης 97

Σύνταξη (2/2) Συγκρίνοντας τις προτάσεις: πατέρας(χ,υ) :- γονιός(χ,υ), άρεν(χ). Πατέρας(x,y) Γονιός(x,y) Άρεν(x) βλέπουµε ότιχρησιµοποιείται το :- αντί για και το κόµµα αντίγια το. Προτάσεις σαν την παραπάνω ονομάζονται κανόνες και ερμηνεύονται ως εξής: Γιαναισχύειτοπατέρας(X,Y) πρέπει να ισχύουν ταυτόχρονα τα γονιός(χ,υ) και άρεν(χ). Το συμπέρασμα ( πατέρας(χ,υ) ) ονομάζεται κεφαλή (head) του κανόνα ενώ οι προϋποθέσεις (γονιός(χ,υ), άρεν(χ) ) ονοµάζονται σώµα του κανόνα. Γιάννης Ρεφανίδης 98 Υποβολή ερωτήσεων (1/6) Η Prolog είναι συνήθως µια διερµηνευόµενη γλώσσα. Ο χρήστης φορτώνει το πρόγραµµα στη µνήµη και στη συνέχεια υποβάλλει ερωτήσεις για τις οποίες περιµένει απάντηση. Ο διερµηνέας της Prolog εµφανίζει την προτροπή:?- για την υποβολή ερωτήσεων. Οι ερωτήσεις µπορούν να αποτελούνται από σύζευξη ενός ή περισσοτέρων κατηγορηµάτων µε ή χωρίς µεταβλητές. Κάθε ερώτηση πρέπει να τερµατίζει µε τελεία. Γιάννης Ρεφανίδης 99

Υποβολή ερωτήσεων (2/6) Για παράδειγµα, έστω η παρακάτω βάση γνώσης (το "πρόγραµµα") σε Prolog: parent(nick,maria). parent(nick, george). male(nick). male(george). female(maria). father(x,y):-parent(x,y), male(x). mother (X,Y):-parent(X,Y), female(x). Υποβάλλουµε την ερώτηση:?-father(nick,maria)....και παίρνουµε την απάντηση: yes. Προσοχή: Οι µεταβλητές διαφορετικών προτάσεων είναι διαφορετικές, ακόµη και αν έχουν το ίδιο όνοµα. Γιάννης Ρεφανίδης 100 Υποβολή ερωτήσεων (3/6) Παρόµοια, υποβάλλουµε την ερώτηση:?-father(maria,nick)....και παίρνουµε την απάντηση: no. Μια ερώτηση µπορεί να περιέχει µεταβλητές, όπως π.χ.:?- father(nick,z). Το νόηµα µιας τέτοιας ερώτησης είναι να ελεγχθεί εάν υπάρχουν τιµές για τη µεταβλητή Ζ, για τις οποίες να ισχύει το father(nick,z). Βλέπουµε δηλαδήότιοιµεταβλητές στις ερωτήσεις θεωρούνται υπαρξιακά ποσοτικοποιηµένες. ΠΡΟΣΟΧΗ: Οι µεταβλητές στις ερωτήσεις είναι διαφορετικές από τις µεταβλητές των προτάσεων της βάσης γνώσης, ακόµη καιανέχουν ίδια ονόµατα. Γιάννης Ρεφανίδης 101

Υποβολή ερωτήσεων (4/6) Στην περίπτωση ερώτησης µε µεταβλητές και εφόσον υπάρχουν τιµές για τις µεταβλητές για τις οποίες να ισχύει η ερώτηση, η Prolog απαντά µε την ανάθεση των τιµών στις µεταβλητές (αντί για ένα απλό yes):?- father(nick,z). Z=maria Αφού εµφανίσει µιαπρώτηδυνατήανάθεσητιµών στις µεταβλητές, µπορούµε να ζητήσουµε να ψάξει για άλλες τέτοιες "λύσεις". Για το σκοπό αυτό πατάµε το πλήκτρο; ή το κενό(spacebar), οπότε η Prolog απαντά: Ζ=george Γιάννης Ρεφανίδης 102 Υποβολή ερωτήσεων (5/6) Εάν για µια ερώτηση µε µεταβλητές η Prolog δεν µπορέσει να βρει καµία δυνατή ανάθεση τιµών σε αυτές, τότε απαντά αρνητικά:?- father(x,nick). no Μπορούµε να έχουµε περισσότερες από µια µεταβλητές σε µια ερώτηση:?- father(a,b). οπότε η απάντηση, εφόσον υπάρχει, µας δίνει τιµές για όλες τις µεταβλητές: Α=nick, B=maria Α=nick, B=george Γιάννης Ρεφανίδης 103

Υποβολή ερωτήσεων (6/6) Τέλος, µια ερώτηση µπορεί να είναι µια σύζευξη 2 ή περισσότερων απλών προτάσεων (µε ή και χωρίς µεταβλητές):?- male(z), father(nick,z). Η ερώτηση αυτή ερµηνεύεται ως: Βρες τα αντικείµενα εκείνα Ζ για τα οποία ισχύουν ταυτόχρονα οι σχέσεις father (nick,z) και male(z). ή σε απλά ελληνικά: Βρες τα παιδιά του nick τα οποία είναι αγόρια. Η Prolog θα απαντήσει: Z=george Γιάννης Ρεφανίδης 104 Παρατήρηση Ανάλογα µε το πρόγραµµα, είναι δυνατό η Prolog να παγιδευτεί σε κάποιο ατέρµονο κλαδί αναζήτησης και να µην δώσει καµία απάντηση (είτε θετική είτε αρνητική), όση ώρα και αν περιµένουµε. ( Σε περίπτωση θετικής αναµενόµενης απάντησης, αυτό θα µπορούσε να αποφευχθεί εάν η Prolog ακολουθούσε µια αναζήτηση πρώτα-κατάπλάτος (αντί για την αναζήτηση πρώτα-κατά-βάθος) που υιοθετεί. Αλλάζοντας τη σειρά συγγραφής των κανόνων της βάσης γνώσης µπορούµε να αποφύγουµε τέτοιαπροβλήµατα. Σε περίπτωση αρνητικής αναµενόµενης απάντησης, αυτό µπορεί να οφείλεται στην ύπαρξη απείρου πλήθους συναρτησιακών όρων. ) Γιάννης Ρεφανίδης 105

Εξαγωγή συµπερασµάτων (1/3) Η διαδικασία απόδειξης ξεκινά µε την υποβολή µιας ερώτησης, έστω π.χ.: male(z), father (nick,z). Η Prolog προσπαθεί να "αποδείξει" µία-µία τις επιµέρους προτάσεις της ερώτησης. Για να αποδειχθεί µια πρόταση, πρέπει αυτή να ταυτοποιηθεί είτε: µε ένα γεγονός της βάσης γνώσης, είτε µε την κεφαλή ενός κανόνα της βάσης γνώσης. Στην περίπτωση ταυτοποίησης µε την κεφαλή ενός κανόνα, το πρόβληµα "µετατίθεται" στην απόδειξη όλων των επιµέρους προτάσεων στο σώµα του κανόνα. Γιάννης Ρεφανίδης 106 Εξαγωγή συµπερασµάτων (2/3) Για παράδειγµα, η πρότασηmale(z) ταυτοποιείται µε την πρόταση: male(nick). µε την αντικατάσταση {Z/nick}. Στη συνέχεια η πρόταση father(nick,z), η οποία πλέον έχει γίνει father(nick,nick), ταυτοποιείται µε την κεφαλή του κανόνα: father(x,y):-parent(x,y), male(x). µε την αντικατάσταση {X/nick, Y/nick}, οπότε πλέον το πρόβληµα µετατίθεται στην απόδειξη των προτάσεων: parent(nick,nick), male(nick) Γιάννης Ρεφανίδης 107

Εξαγωγή συµπερασµάτων (3/3) Η προσπάθεια απόδειξης της προτάσης: parent(nick,nick) θα αποτύχει, οπότε ο µηχανισµός αναζήτησης της Prolog θα αναζητήσει εναλλακτικούς τρόπους απόδειξης. Θα βρει ότι η αρχική πρόταση: male(z) µπορούσε να ταυτοποιηθεί και µε το γεγονός: male(george) της βάσης γνώσης, κάτι που οδηγούσε στην ανάγκη για απόδειξη των γεγονότων: parent(nick,george), male(george) τα οποία υπάρχουν στη βάση γνώσης. Γιάννης Ρεφανίδης 108 Αναδροµή Ένας κανόνας στην Prolog που περιλαµβάνει στο σώµα του κάποια αναφορά στο κατηγόρηµα της κεφαλής του κανόνα ονοµάζεται αναδροµικός. Για παράδειγµα, έστω το παρακάτω πρόγραµµα: father(nick, george). father(george, john). father(john, jim). ancestor(x,y) :- father(x,y). ancestor(x,y) :- father(x,z), ancestor(z,y). Ο κανόνας που ορίζει τη σχέση ancestor είναι αναδροµικός.?- ancestor(nick, jim). yes Γιάννης Ρεφανίδης 109

Λίστες (1/3) Οι λίστες είναι η σηµαντικότερη δοµή δεδοµένων της Prolog. Μια λίστα είναι ένας δυναµικός µονοδιάστατος πίνακας µε στοιχεία του αριθµούς, σύµβολα, συναρτησιακούς όρους ή και άλλες λίστες. Τα στοιχεία µιας λίστας δεν είναι απαραίτητο να είναι του ίδιου τύπου. Μερικά παραδείγµατα λιστών: [physics, 8, maths, 9] [ nick, 3, 12, ball, point(1,2), [a, b] ] Γιάννης Ρεφανίδης 110 Λίστες (2/3) Μια λίστα µπορεί να ταυτοποιηθεί µε µια µεταβλητή: Χ= [physics, 8, maths, 9] Τιςπερισσότερεςφορέςθέλουµε ναχειριστούµε ταστοιχείαµιας λίστας ένα-ένα. Σε αυτή την περίπτωση έχουµε τη δυνατότητα να ταυτοποιήσουµε µια µεταβλητή µε το πρώτο στοιχείο της λίστας (κεφαλή) και µια άλλη µεταβλητή µε τα υπόλοιπα στοιχεία της λίστας (ουρά). Έτσι η προσπάθεια ταυτοποίησης: [Χ Y] = [physics, 8, maths, 9] µας δίνει: Χ = physics Y = [8, maths, 9] Γιάννης Ρεφανίδης 111

Λίστες (3/3) Το κατηγόρηµα member παρακάτω ελέγχει εάν ένα στοιχείο (πρώτο όρισµα) ανήκει σε µία λίστα (το δεύτερο όρισµα): member(x, [ X Y ] ). member(x, [ Head Tail ] ) :- member(x, Tail). Πιθανές ερωτήσεις:?- member( 2, [ 1 2 3] ). yes?- member(4, [ 1 2 3 ] ). no?- member(x, [1 2 3]). X=1 X=2 X=3 Κατηγορήµατα σαν το παραπάνω υπάρχουν ορισµένα στις περισσότερες υλοποιήσεις της Prolog καιέτσιδενχρειάζεταιναορίζονται. Γιάννης Ρεφανίδης 112 Ενσωµατωµένα κατηγορήµατα (1/3) Μέχρι τώρα είδαµε προγράµµατα της Prolog, όπου όλα τα κατηγορήµατα ορίστηκαναπότονχρήστη. Η Prolog διαθέτει όµως πολλά ενσωµατωµένα κατηγορήµατα, τα οποία επιτελούν ειδικές λειτουργίες. Για παράδειγµα, το κατηγόρηµα member(x,y) επιστρέφει yes όταν το Y είναι λίστα και το Χ είναι στοιχείο αυτής της λίστας, ειδάλλως επιστρέφει no. Γιάννης Ρεφανίδης 113

Ενσωµατωµένα κατηγορήµατα (2/3) Μπορούµε να χωρίσουµε τα ενσωµατωµένα κατηγορήµατα σε δύο οµάδες: Αυτά που έχουν λογική σηµασία: Επιστρέφουν yes ή no, ανάλογα µε την περίπτωση. Παράδειγµα είναι το member(x,y). Αυτά που έχουν διαδικαστική σηµασία: Εκτελούν µια συγκεκριµένη δουλειά και επιστρέφουν (σχεδόν) πάντα yes. Παράδειγµα: Το κατηγόρηµα write(χ) τυπώνει τον όρο Χ στην οθόνη και επιστρέφει yes. Παρόµοια το κατηγόρηµα nl αλλάζει παράγραφο στην οθόνη. Γιάννης Ρεφανίδης 114 Ενσωµατωµένα κατηγορήµατα (3/3) Μπορούµε να διακρίνουµεταορίσµατα των ενσωµατωµένων κατηγορηµάτων σε δύο κατηγορίες: Αυτά που κατά την κλήση του κατηγορήµατος πρέπει να έχουν πάρει τιµή. Για παράδειγµα, η κλήση Χ>Υ θα προκαλέσει τερµατισµό προγράµµατος, εάν ένα από τα δύο ορίσµατα του κατηγορήµατος '>' δεν έχει πάρει τιµή. Παρόµοια, η κλήση write(x) δεν θα έχει αναµενόµενα αποτελέσµατα εάν το Χ δεν έχει πάρει τιµή. Αυτά που κατά την κλήση του κατηγορήµατος δεν χρειάζεται να έχουν πάρει τιµή. Για παράδειγµα, η κλήση member(x,[ 1 2 3]), εάν το Χ δεν έχει πάρει τιµή, θα επιστρέψει διαδοχικά: Χ=1, Χ=2 και Χ=3. Γιάννης Ρεφανίδης 115

ΗάρνησηστηνProlog Είδαµε ότιµε τιςπροτάσειςhorn δεν µπορούµε νααποδεικνύουµε αρνητικές προτάσεις. Ωστόσο, η Prolog επιτρέπει τη χρήση άρνησης στο σώµα των κανόνων, µε χρήση της δεσµευµένης λέξης not: alive(x) :- not dead(x). Η λέξη not µπορεί να εµφανίζεται µόνο στο σώµα των κανόνων (όχι δηλαδή στην κεφαλή), και ερµηνεύεται ως εξής: Εάν µε βάση όσα γνωρίζει το πρόγραµµα ως τώρα δεν µπορέσει να αποδείξει το dead(x), τότε µπορεί να υποθέσει ότι ισχύει dead(x). Η παραπάνω προσέγγιση αποτελεί την "υπόθεση του κλειστού κόσµου", αφού υπονοεί ότι γνωρίζουµε τα πάντα σε σχέση µε το συγκεκριµένο πρόβληµα, άρα ό,τι δεν γνωρίζουµε δεν ισχύει. Γιάννης Ρεφανίδης 116 Λογικός Προγραµµατισµός µε Περιορισµούς (1/3) Έστω για παράδειγµα ο παρακάτω κανόνας: triangle(x,y,z) :- X>=0, Y>=0, Z>=0, X+Y>=Z, X+Z>=Y, Y+Z>=X. Εάν υποβάλλουµε την ερώτηση:?- triangle(3,4,5). στην κλασσική Prolog θα πάρουµε τηναπάντηση: yes. Αν όµως υποβάλλουµε την ερώτηση:?- triangle(3,4,ζ). δεν θα πάρουµε καµία απάντηση (εκτόςίσωςαπόκάποιο µήνυµα λάθους). Ο λόγος είναι ότι στην κλασσική Prolog οι αριθµητικές σχέσεις (ισότητες, ανισότητες) µπορούν να ελεγχθούν µόνο εφόσον οι µεταβλητές έχουν όλες πάρει τιµή. Γιάννης Ρεφανίδης 117

Λογικός Προγραµµατισµός µε Περιορισµούς (2/3) Οι νεώτερες εκδόσεις των πιο γνωστών υλοποιήσεων της Prolog έχουν επεκτείνει τη γλώσσα µε τη δυνατότητα να χειρίζεται µεταβλητές µε πεδίο ορισµού και περιορισµούς µεταξύ των µεταβλητών (Constraint Logic Programming ή CLP). Έτσι η ερώτηση:?- triangle(3,4,ζ). αναµένεται να δώσει την απάντηση: 1=<Z=<7 Μία λύση σε ένα πρόβληµα λογικού προγραµµατισµού µε περιορισµούς είναι το σύνολο των πιο συγκεκριµένων περιορισµών πάνω στις µεταβλητές της ερώτησης. Γιάννης Ρεφανίδης 118 Λογικός Προγραµµατισµός µε Περιορισµούς (3/3) Τα συστήµατα λογικού προγραµµατισµού µε περιορισµούς συνδυάζουν την ευκολία στην περιγραφή προβληµάτων που παρέχει ο λογικός προγραµµατισµός µε τις αυξηµένες δυνατότητες επίλυσης προβληµάτων που παρέχουν οι τεχνικές ικανοποίησης περιορισµών. Φυσικά υπάρχουν πλατφόρµες επίλυσης προβληµάτων ικανοποίησης περιορισµών που δεν βασίζονται στον λογικό προγραµµατισµό. Τα διάφορα συστήµατα διαφέρουν συνήθως στο είδος των περιορισµών που υποστηρίζουν (π.χ. γραµµικές ανισότητες, µηισότητα µεταξύ 2 ή πολλών µεταβλητών κλπ). Γιάννης Ρεφανίδης 119

Γνωστές υλοποιήσεις της γλώσσας Prolog Eclipse Imperial College, London Prolog+Constraints http://wwwicparc.doc.ic.ac.uk/eclipse/ Ελεύθερη διανοµή για πανεπιστήµια/φοιτητές Sicstus Prolog Prolog+Constraints http://www.sics.se/sicstus/ Trial version 30 ηµερών SWI Απλή Prolog http://www.swi-prolog.org/ Ελεύθερη διανοµή LPA Prolog Απλή Prolog http://www.lpa.co.uk Εµπορική Γιάννης Ρεφανίδης 120 Αναπαράσταση Γνώσης και Συλλογιστικές Γενικά Προτασιακή λογική Λογική πρώτης τάξης Λογικός προγραµµατισµός Επεκτάσεις της Λογικής Πρώτης Τάξης Συστήµατα Κανόνων Επίλογος

Επεκτάσεις της Λογικής Πρώτης Τάξης Η λογική πρώτης τάξης δεν επαρκεί για να περιγράψει ικανοποιητικά τα προβλήµατα του πραγµατικού κόσµου. Χρειάζονται επεκτάσεις για να καλυφθούν θέµατα που αφορούν: Οντολογίες Ενέργειες/Συµβάντα και Χρόνος Πεποιθήσεις Εξαγωγή συµπερασµάτων µε χρήση εξ'ορισµού τιµών Οι σχετικές επεκτάσεις θα καλυφθούν εν συντοµία στις επόµενες διαφάνειες. Γιάννης Ρεφανίδης 122 Οντολογίες Μια οντολογία είναι µια ιεραρχηµένη ταξινόµηση εννοιών, αντικειµένων κλπ, µε κατεύθυνση από το γενικότερο προς το ειδικότερο. Η κατασκευή οντολογιών (ontological engineering) είναι απαραίτητη εργασία για οποιαδήποτε εφαρµογή εµπεριέχει αναπαράσταση γνώσης. Οι οντολογίες χρησιµοποιούνται για τον "χαρακτηρισµό" των αντικειµένων ενός προβλήµατος, κάτι που γίνεται µετην αντιστοίχηση των αντικειµένων σε συγκεκριµένους "κόµβους" της οντολογίας. Ένα αντικείµενο που αντιστοιχίζεται σε έναν κόµβο µιας οντολογίας, "κληρονοµεί" τις ιδιότητες όλων των γενικότερων κόµβων. Ουσιαστικά κάθε κόµβος µιας οντολογίας είναι το σύνολο όλων των αντικειµένων του προβλήµατος που αντιστοιχίζονται στον κόµβο αυτό. Γιάννης Ρεφανίδης 123

Μια πολύ γενική οντολογία Το παρακάτω παράδειγµα είναιµια προσπάθεια µερικής καταγραφής των γενικότερων εννοιών του κόσµου µας. Ο,τιδήποτε Αφηρηµένες έννοιες Συγκεκριµένες έννοιες Σύνολα Αριθµοί Περιγραφές Χρονικά Τοποθεσίες Φυσικά ιεργασίες διαστήµατα αντικείµενα Προτάσεις Μετρήσεις Χρονικές στιγµές ιακριτά αντικείµενα Συνεχή αντικείµενα Χρόνος Βάρος Ζώα Φυτά Στερεά Υγρά Αέρια Γιάννης Ρεφανίδης 124 Οντολογίες Αντικειµένων (1/3) Πρόκειται για το τµήµα εκείνο της γενικότερης οντολογίας που αφοράταφυσικάαντικείµενα. Τους κόµβους µιας οντολογίας θα τους ονοµάζουµε κατηγορίες (categories) ή κλάσεις(classes). Έστω x ένα αντικείµενο και Cµια κλάση. Θα συµβολίζουµε ότι το x ανήκει στην κλάση C µε xc. Έστω δύο κλάσεις C1 και C2, τέτοιες ώστε η C1 να είναι γονέας της C2 στην ιεραρχία. Συµβολίζουµε: C2C1. Όλοι οι παραπάνω νέοι συµβολισµοί (,, ) µπορούν να γραφούν ισοδύναµα χρησιµοποιώντας τη γνωστή σύνταξη της λογικής πρώτης τάξης, κάτι τέτοιο όµως αποφεύγεται για λόγους ευκολίας ανάγνωσης. Για παράδειγµα: Member(x,C2) Member(x,C1) Γιάννης Ρεφανίδης 125

Οντολογίες Αντικειµένων (2/3) Η οντολογία χρησιµεύει στο να οργανώσουµε και να απλοποιήσουµε τη βάση γνώσης, µέσω της κληρονοµικότητας (inheritance). Για παράδειγµα, έστωηκλάσητροφήκαιέστωηπρόταση: x, x Τροφή Φαγώσιµο(x) (1) Έστω οι κλάσεις Φρούτα Τροφή και Μήλα Φρούτα. Έστω y Μήλα, τότε µπορούµε να καταλήξουµε στοσυµπέρασµα Φαγώσιµο(y). Πράγµατι αυτό είναι εύκολο λόγω της πρότασης (1) αλλά και της γενικής πρότασης: x, c1, c2: Class(c1) Class(c2) x c1 c1c2 x c2 όπου το κατηγόρηµα Class αληθεύει όταν το όρισµά του είναι κλάση της οντολογίας. Γιάννης Ρεφανίδης 126 Οντολογίες Αντικειµένων (3/3) Μπορούµε να γράψουµε προτάσεις που να ορίζουν πότε ένα αντικείµενο είναι µέλος µιας κλάσης: Έστω για παράδειγµα οι κλάσεις Balls και BasketBalls. Μπορούµε να γράψουµε: x, Πορτοκαλί(x) Σφαιρικό(x) ιάµετρος(x)=9.5" x Balls x BasketBalls Μπορούµε να γράφουµε προτάσειςπουναεµπεριέχουν κλάσεις χωρίς σχέση γονέα-παιδιού. Για παράδειγµα, έστω οι κλάσεις Άνδρες και Γυναίκες: x, x Άνδρες x Γυναίκες x, x Γυναίκες x Άνδρες Γιάννης Ρεφανίδης 127

Σηµασιολογικός ιστός (1/4) Ένας από τους χώρους όπου ήδη χρησιµοποιούνται οντολογίες, αν και όχι σε εκτεταµένη κλίµακα ακόµη κλίµακα, είναι ο παγκόσµιος ιστός. Ονέος«ιστός» χαρακτηρίζεται ως «σηµασιολογικός» (Semantic Web). Αυτό έχει επιτευχθεί µε τη µετάβαση από τις κλασσικές σελίδες HTML στις σελίδες µε περιεχόµενο XML. Μια σελίδα HTML περιέχει την πληροφορία καθώς και οδηγίες µορφοποίησης της πληροφορίας. Μια σελίδα XML περιέχει την πληροφορία, καθώς και χαρακτηρισµό της πληροφορίας. Γιάννης Ρεφανίδης 128 Σηµασιολογικός ιστός (2/4) Παράδειγµα HTML: <h3>university of Macedonia</h3> <h4>department of Applied Informatics</h4> <h4>egnatias str. 156</h4> Παράδειγµα XML: <INSTITUTE>University of Macedonia</INSTITUTE> <DEPARTMENT>Department of Applied Informatics </DEPARTMENT> <ADRESS> <STREET>Egnatias</STREET> <NUMBER> 156</NUMBER> </ADDRESS> Γιάννης Ρεφανίδης 129

Σηµασιολογικός ιστός (3/4) Με τη χρήση της XML οι ετικέτες (tags) των δεδοµένων χαρακτηρίζουν το περιεχόµενό των δεδοµένων. Έτσι στην προηγούµενη διαφάνεια η ετικέτα <ADDRESS> στην XML προσδιόριζε ότι το περιεχόµενό της είναι µια διεύθυνση. Ειδικότερα, οι ετικέτες <STREET> και <NUMBER> διαχώριζαν το όνοµα τουδρόµου από τον αριθµό. Τέτοιες πληροφορίες δεν υπάρχουν στη γλώσσα HTML, όπου οι ετικέτες χρησιµοποιούνται µόνο για την µορφοποίηση των δεδοµένων. Για να καταλάβουµε στη γλώσσα HTML ότι η λέξη Egnatias είναι όνοµα δρόµου, πρέπει να χρησιµοποιήσουµε τεχνικές επεξεργασίας κειµένου. Γιάννης Ρεφανίδης 130 Σηµασιολογικός ιστός (4/4) Η γλώσσα XML από µόνη της δεν αρκεί για να υλοποιήσει οντολογίες στο WEB. Χρησιµοποιούνται δύο συγκεκριµένες επεκτάσεις: Η γλώσσα RDF (Resource Description Framework) Η επέκταση RDFS (RDF Schemas) Η γλώσσα RDF χρησιµοποιεί τυποποιηµένες δηλώσεις για αντικείµενα, σχέσεις και τιµές. Η RDFS επεκτείνει την RDF επιτρέποντας τον ορισµό κλάσεων αντικειµένων, ιδιοτήτων κλάσεων και κληρονοµικότητας µεταξύ κλάσεων. Γιάννης Ρεφανίδης 131

Η γλώσσα RDF (1/4) Στη γλώσσα RDF η γνώσηπαριστάνεταιµε απλές προτάσεις (προτασιακή λογική) της µορφής: <αντικείµενο> <ιδιότητα> <τιµή> Για παράδειγµα, µια πρόταση θα µπορούσε να δηλώνει ότι: Ο δηµιουργός της ιστοσελίδας Χ είναι ο Υ. όπου: <αντικείµενο> είναι η σελίδα Χ <ιδιότητα> είναι η «δηµιουργός» <τιµή> είναι ο Υ Γιάννης Ρεφανίδης 132 Η γλώσσα RDF (2/4) Χρειαζόµαστε έναν «απόλυτο» τρόπο να ορίζουµε αντικείµενα, ιδιότητες και τιµές. Για το σκοπό αυτό χρησιµοποιούνται τα URIs (Uniform Resource Indentifiers, οµοιόµορφα αναγνωριστικά πόρων). Ένα URI είναι συνήθως µια «παραποµπή» σε ένα τµήµα ιστοσελίδας, όπου ορίζεται/τεκµηριώνεται ένα αντικείµενο ή µια ιδιότητα. Τα URLs είναι ειδική περίπτωση URIs, που αναφέρονται σε αντικείµενα ιστοσελίδων. Γιάννης Ρεφανίδης 133

Η γλώσσα RDF (3/4) Στο παράδειγµα τουδηµιουργού της ιστοσελίδας, θα µπορούσαµε να χρησιµοποιήσουµε τα παρακάτω URIs: http://www.example.org/index.html για το αντικείµενο της ιστοσελίδας. http://purl.org/dc/elements/1.1/creator για την έννοια του δηµιουργού ενός αντικειµένου. http://www.example.org/staffid/85740 για αναφορά σε έναν συγκεκριµένο υπάλληλο µιας υποθετικής εταιρείας. Έτσι η πρόταση RDF θα γραφόταν: http://www.example.org/index.html http://purl.org/dc/elements/1.1/creator http://www.example.org/staffid/85740 Γιάννης Ρεφανίδης 134 Η γλώσσα RDF (4/4) Μπορούµε να οµαδοποιούµε προτάσεις που αφορούν το ίδιο αντικείµενο (αλλά διαφορετικές ιδιότητες/τιµές του) µε τηνπαρακάτω εναλλακτική σύνταξη: <rdf:description rdf:about=http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/creator> http://www.example.org/staffid/85740 </http://purl.org/dc/elements/1.1/creator> <http://purl.org/dc/elements/1.1/language> English </http://purl.org/dc/elements/1.1/language> </rdf:description> Παραπάνω ορίζουµε τις τιµές δύο ιδιοτήτων του αντικειµένου http://www.example.org/index.html. Γιάννης Ρεφανίδης 135

Χώροι ονοµάτων (1/2) Γιανααποφεύγουµε ταµεγάλα ονόµατα URIs, χρησιµοποιούµε τους χώρους ονοµάτων (Namespaces). Εάν σε ένα αρχείο έχουµε πολλές αναφορές σε αντικείµενα / ιδιότητες που ορίζονται στον ίδιο χώρο, µπορούµε ναδώσουµε ένα σύντοµο όνοµα στο κοινό πρόθεµα αυτώντωνονοµάτων. Για παράδειγµα, ή δήλωση: <rdf:rdf xmlns:dc=http://purl.org/dc/elements/1.1/> δηλώνει ότι µπορούµε να χρησιµοποιούµε το πρόθεµα dc για να αναφερόµαστε στη διεύθυνση http://purl.org/dc/elements/1.1/. Γιάννης Ρεφανίδης 136 Χώροι ονοµάτων (2/2) Έτσι η δήλωση για τον δηµιουργό της ιστοσελίδας µπορεί να απλοποιηθεί σε: http://www.example.org/index.html dc:creator http://www.example.org/staffid/85740 ήτελικά, εάν µε παρόµοιο τρόπο ορίσουµε το πρόθεµα ex να αντιστοιχεί στη διεύθυνση http://www.example.org/, µπορούµε να πάρουµε µια δήλωση της µορφής: ex:index.html dc:creator ex:staffid/85740 Γιάννης Ρεφανίδης 137

Ορισµός URIs Μπορούµε να δηλώσουµε URIs χρησιµοποιώντας τη δήλωση rdf:id, όπου το πρόθεµα rdf όρίζεται ως: xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# Για παράδειγµα: <rdf:description rdf:id= item10245 > <exterms:model>omnibook 6000</exterms:model> <exterms:weight>3.2</exterms:weight> </rdf:description> µπορεί να θεωρηθεί ότι ορίζει το URI ενός συγκεκριµένου laptop, µαζί µε τοµοντέλο του και το βάρος του. Εάν η παραπάνω δήλωση βρισκόταν σε ένα αρχείο µε όνοµα Χ, µπορεί κανείς να αναφέρεται στο συγκεκριµένο laptop µε τοuri: X:item10245 Γιάννης Ρεφανίδης 138 Η γλώσσα RDFS (1/3) Οι δηλώσεις RDFS (RDF Schema) επεκτείνουν την RDF µε δυνατότητες αναπαράστασης ιεραρχιών εννοιών. ΗεπέκτασηRDFS ορίζει τις έννοιες «κλάση», «υποκλάση», «ιδιότητα» κλπ. Ορίζουµε µια κλάση χρησιµοποιώντας την ιδιότητα rdf:type και την τιµή rdfs:class. Για παράδειγµα η δήλωση: ex:motorvehicle rdf:type rdfs:class ορίζει ότι η έννοια ex:motorvehicle είναι µια κλάση. Στη συνέχεια, η δήλωση: ex:mycar rdf:type ex:motorvehicle ορίζει ότι το ex:mycar είναι ένα αντικείµενο της κλάσης ex:motorvehicle. Γιάννης Ρεφανίδης 139

Η γλώσσα RDFS (2/3) Ηδήλωση: ex:van rdfs:subclassof ex:motorvehicle ορίζει ότι η έννοια ex:van είναι υποκλάση της έννοιας ex:motorvehicle. Μία κλάση µπορεί να είναι υποκλάση πολλών άλλων κλάσεων. Γιάννης Ρεφανίδης 140 Η γλώσσα RDFS (3/3) Κάθε κλάση µπορεί να χαρακτηρίζεται από ένα σύνολο ιδιοτήτων. Οι ιδιότητες µιας κλάσης χαρακτηρίζουν και όλα τα αντικείµενά της. Οι ιδιότητες µια κλάσης κληρονοµούνται από τις υποκλάσεις της. Παρακάτω ορίζουµε µια κλάση, µια ιδιότητα και δηλώνουµε ότιη ιδιότητα χαρακτηρίζει την κλάση. ex:book rdf:type rdfs:class ex:pages rdf:type rdf:property ex:pages rdfs:domain ex:book ex:pages rdfs:range xsd:integer Οι τύποι rdfs και xsd ορίζονται ως εξής: xmlns:rdfs= http://www.w3.org/2000/01/rdf-schema# xmlns:xsd= http://www.w3.org/2001/xmlschema# Γιάννης Ρεφανίδης 141

Παρατηρήσεις Η χρήση των RDF/RDFS καθιστούν το διαδίκτυο µια τεράστια βάση γνώσης σε προτασιακή λογική (RDF) και λογική πρώτης τάξης (RDFS). Υπάρχει λοιπόν τεράστιος χώρος εκµετάλλευσης τεχνικών αυτοµατοποιηµένης εξαγωγής συµπερασµάτων. Τα προβλήµατα που υπάρχουν µε τη θεώρηση του διαδικτύου ως βάση γνώσης είναι τα εξής: Είναι αχανές. Είναι κατανεµηµένο. Η γνώση που αφορά το ίδιο αντικείµενο µπορεί να βρίσκεται διάσπαρτη σε πολλά sites. Είναι αντιφατική. Μπορεί κανείς να βρει σε δύο διαφορετικά sites αντικρουόµενες πληροφορίες για τα ίδια αντικείµενα (π.χ. πρόγνωση καιρού). Μεγάλο µέρος της γνώσης είναι ακόµη σε µορφή HTML. Γιάννης Ρεφανίδης 142 Χρήσιµα Links XML http://www.w3.org/xml/ RDF http://www.w3.org/rdf/ RDFS http://www.w3.org/tr/rdf-schema/ Άλλες υλοποιήσεις οντολογιών (υποστηρίζουν λογική πρώτης τάξης): DAML http://www.daml.org/ OWL http://www.w3.org/tr/owl-guide/ Γιάννης Ρεφανίδης 143

Ontology editors Protégé 2000, Stanford Ελεύθερο download, http://protege.stanford.edu/ OilEd, University of Manchester Ελεύθερο download, http://oiled.man.ac.uk/ κλπ Γιάννης Ρεφανίδης 144