ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Διαπραγμάτευση μεταξύ Ευφυών Πρακτόρων Λογισμικού στο Περιβάλλον του Σημασιολογικού Ιστού Διπλωματική Εργασία της Καλλιόπης Κράβαρη (ΑΕΜ: 185) Επιβλέπων Καθηγητής: Νικόλαος Βασιλειάδης Θεσσαλονίκη 2009
ΠΡΟΛΟΓΟΣ Ο Σημασιολογικός Ιστός (Semantic Web) αποτελεί εξέλιξη και επέκταση του υπάρχοντος διαδικτύου. Ο βασικός του στόχος είναι η οργάνωση της πληροφορίας που βρίσκεται διασκορπισμένη στον Παγκόσμιο Ιστό και ο ορισμός της με τέτοιο τρόπο ώστε να είναι πλήρως κατανοητή από τα προγράμματα πράκτορες (agents). Πληθώρα νέων τεχνολογιών και εργαλείων αναπτύχθηκαν και συνεχίζουν να αναπτύσσονται σε αυτή την κατεύθυνση. Στο μεγαλύτερο ποσοστό τους οι τεχνολογίες αυτές έχουν γίνει ευρύτατα αποδεκτές, με αποτέλεσμα το ενδιαφέρον πλέον να στραφεί σε ένα νέο πεδίο, αυτό της συλλογιστικής (reasoning). Η ευρεία όμως αποδοχή των τεχνολογιών του Σημασιολογικού Ιστού έχει καταστήσει πλέον αναγκαία και την υλοποίηση πρακτόρων (agents) και πολυ-πρακτορικών συστημάτων (multi-agent systems) που θα χρησιμοποιούν τις τεχνολογίες αυτές, υλοποιώντας το όραμα του Σημασιολογικού Ιστού. Το αντικείμενο της παρούσας διπλωματικής εργασίας είναι αφενός η μελέτη του Σημασιολογικού Ιστού, της φιλοσοφίας που αυτό πρεσβεύει και φυσικά της συλλογιστικής και αφετέρου η ανάπτυξη ευφυών πρακτόρων που θα χρησιμοποιούν τις τεχνολογίες του και ιδιαίτερα την συλλογιστική και θα συνεργάζονται τελικώς αποδοτικά μεταξύ τους μέσα σε ένα πολύ-πρακτορικό σύστημα. Ειδικότερα, στόχος της εργασίας είναι η δημιουργία μιας υπηρεσίας αναιρέσιμης συλλογιστικής (defeasible reasoning service) για τον Σημασιολογικό Ιστό. Μια υπηρεσία εύκολα προσβάσιμη από οποιονδήποτε πράκτορα, όπου κι αν βρίσκεται αυτός. Η ανάπτυξη της εργασίας έγινε σε συνεργασία με την ερευνητική ομάδα Intelligent Systems and Knowledge Processing (ISKP) του εργαστηρίου Γλωσσών Προγραμματισμού και Τεχνολογίας Λογισμικού του τμήματος Πληροφορικής, της σχολής Θετικών Επιστημών του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης. Στο σημείο αυτό θα ήθελα να ευχαριστήσω τον Επίκουρο Καθηγητή του Τμήματος Πληροφορικής Νικόλαο Βασιλειάδη, για την εμπιστοσύνη και την ανάθεση της παρούσας διπλωματικής εργασίας, την καθοδήγηση και την βιβλιογραφία που μου διέθεσε. Επίσης, θα ήθελα να ευχαριστήσω τον καθηγητή και διευθυντή του εργαστηρίου Ιωάννη Βλαχάβα για το ενδιαφέρον και την συνολική καθοδήγηση του. -3-
Τέλος, τις θερμές ευχαριστίες μου στον Στράτο Κοντόπουλο για την υπομονή, την κατανόηση και την διαρκή βοήθεια του. Κράβαρη Καλλιόπη Θεσσαλονίκη, 2009
ΠΕΡΙΕΧΟΜΕΝΑ 1 ΕΙΣΑΓΩΓΗ...7 2 ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ...9 2.1 ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ...9 2.1.1 Εισαγωγή...9 2.1.2 Αρχική Αρχιτεκτονική του Σημασιολογικού Ιστού...9 2.1.3 Αναθεωρημένη Αρχιτεκτονική του Σημασιολογικού Ιστού...10 2.1.4 Προτεινόμενες Επεκτάσεις της Αρχιτεκτονικής...12 2.1.5 Βασικές Γλώσσες του Σημασιολογικού Ιστού...13 2.2 ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ...14 2.2.1 Εισαγωγή...14 2.2.2 Αρχιτεκτονικές Πρακτόρων...15 2.2.3 Πολυ Πρακτορικά Συστήματα...17 2.2.4 Επικοινωνία μεταξύ πρακτόρων...17 3 ΕΙΔΙΚΟΤΕΡΟ ΥΠΟΒΑΘΡΟ...19 3.1 ΑΝΑΙΡΕΣΙΜΗ ΣΥΛΛΟΓΙΣΤΙΚΗ...19 3.1.1 Εισαγωγή...19 3.1.2 Η γλώσσα...19 3.1.3 Αναίρεση ως αποτυχία NAF...20 3.1.4 Εννοιολογικές Συγκρούσεις...21 3.2 ΣΤΟΧΟΙ ΤΗΣ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ...22 4 ΕΡΓΑΛΕΙΑ...25 4.1 ΕΙΣΑΓΩΓΗ...25 4.2 ΤΟ ΣΥΣΤΗΜΑ DR DEVICE...25 4.2.1 Εισαγωγή...25 4.2.2 Αρχιτεκτονική του DR-DEVICE...26 4.2.3 Το συντακτικό της γλώσσας του DR-DEVICE...28 4.3 ΤΟ ΠΛΑΙΣΙΟ JADE...30 4.3.1 Εισαγωγή...30 4.3.2 Αρχιτεκτονική του JADE...31 4.3.3 Η Οργάνωση FIPA...34-5-
4.4 JESS... 35 4.4.1 Εισαγωγή... 35 4.4.2 Αρχιτεκτονική... 36 4.4.3 Η αλληλεπίδραση των γλωσσών Jess και Java... 37 5 ΥΛΟΠΟΙΗΣΗ... 39 5.1 ΥΠΗΡΕΣΙΑ ΑΝΑΙΡΕΣΙΜΗΣ ΣΥΛΛΟΓΙΣΤΙΚΗΣ... 39 5.1.1 Ο Ευφυής Πράκτορας Reasoner... 39 5.1.2 Τρόποι Επαφής με την Υπηρεσία... 41 5.2 ΣΕΝΑΡΙΟ ΜΕΣΙΤΕΙΑΣ... 44 5.2.1 Συμμετέχοντες... 44 5.2.2 Απαιτήσεις και Προτιμήσεις του Carlo... 44 5.2.3 Διαθέσιμα Διαμερίσματα... 47 5.2.4 Αναλυτική Περιγραφή Σεναρίου... 48 5.2.5 Λεπτομέρειες Υλοποίησης... 50 6 ΣΥΜΠΕΡΑΣΜΑΤΑ - ΜΕΛΛΟΝΤΙΚΕΣ ΕΡΓΑΣΙΕΣ... 55 6.1 ΣΥΜΠΕΡΑΣΜΑΤΑ... 55 6.2 ΠΡΟΚΛΗΣΕΙΣ... 56 6.3 ΜΕΛΛΟΝΤΙΚΕΣ ΕΡΓΑΣΙΕΣ... 56 ΒΙΒΛΙΟΓΡΑΦΙΑ... 59 ΠΑΡΑΡΤΗΜΑ... 63 ΤΑ ΔΙΑΘΕΣΙΜΑ ΔΙΑΜΕΡΙΣΜΑΤΑ... 63 ΤΑ ΚΑΤΑΛΛΗΛΑ ΔΙΑΜΕΡΙΣΜΑΤΑ... 66 ΤΟ ΚΑΤΑΛΛΗΛΟΤΕΡΟ ΔΙΑΜΕΡΙΣΜΑ... 69 Η ΣΤΡΑΤΗΓΙΚΗ ΤΟΥ ΠΕΛΑΤΗ... 70 Η ΣΤΡΑΤΗΓΙΚΗ ΤΟΥ ΜΕΣΙΤΗ... 73 O ΓΕΝΙΚΟΣ ΠΡΑΚΤΟΡΑΣ JESSAGENT... 75 ΒΑΣΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ... 75 O ΠΡΑΚΤΟΡΑΣ REASONER... 78
1 ΕΙΣΑΓΩΓΗ Ο Σημασιολογικός Ιστός (Semantic Web) αποτελεί εξέλιξη και επέκταση του υπάρχοντος διαδικτύου. Ο βασικός του στόχος είναι η οργάνωση της πληροφορίας που βρίσκεται διασκορπισμένη στον Παγκόσμιο Ιστό και ο ορισμός της με τέτοιο τρόπο ώστε να είναι πλήρως κατανοητή από τα προγράμματα πράκτορες (agents). Από την εποχή που προτάθηκε για πρώτη φορά ο Σημασιολογικός Ιστός μέχρι και σήμερα έχουν γίνει πολλά και σημαντικά βήματα. Τεχνολογίες και εργαλεία προτάθηκαν, υλοποιήθηκαν και υιοθετήθηκαν στο πέρασμα των χρόνων. Ο Σημασιολογικός Ι- στός έφτασε τελικά σε ένα στάδιο ωριμότητας. Αποτέλεσμα ήταν να αναθεωρηθούν κάποια αρχικά στοιχεία του, ώστε να διορθωθούν ατέλειες και να δοθεί νέα ώθηση στην ερευνητική δραστηριότητα. Έτσι, ιδιαίτερο ερευνητικό ενδιαφέρον δίνεται πλέον σε ένα νέο πεδίο, αυτό της συλλογιστικής (reasoning). Ωστόσο το αρχικό όραμα του Σημασιολογικού Ιστού δεν ήταν απλά η δημιουργία κάποιων νέων τεχνολογιών. Οι αρχικοί εμπνευστές του, οραματίστηκαν μια νέα εποχή όπου ευφυείς πράκτορες θα ήταν σε θέση να κατανοούν και να χρησιμοποιούν όλη την πληροφορία που βρίσκεται στον ιστό, έτσι ώστε να συνεργάζονται μεταξύ τους αποδοτικά και να παράγουν χρήσιμο έργο. Οι ευρεία αποδοχή των τεχνολογιών του Σημασιολογικού Ιστού έχει δημιουργήσει το κατάλληλο υπόβαθρο, αυτό που λείπει πλέον είναι οι ευφυείς πράκτορες. Σε αυτό το πλαίσιο κινείται η παρούσα διπλωματική εργασία, στην υλοποίηση δηλαδή πρακτόρων. Στόχος είναι μέσα σε ένα πολυ-πρακτορικό περιβάλλον να συνεργάζονται αρμονικά διάφοροι πράκτορες ώστε να προκύπτει τελικά ένα χρήσιμο αποτέλεσμα για τον άνθρωπο χρήστη. Το ιδιαίτερο αντικείμενο της εργασίας είναι η δημιουργία μιας υπηρεσίας αναιρέσιμης συλλογιστικής (defeasible reasoning service) για τον Σημασιολογικό Ιστό. Ένας βασικός πράκτορας θα παρέχει την υπηρεσία αυτή και οποιοσδήποτε άλλος θα μπορεί να την χρησιμοποιεί ανεξάρτητα από το πού βρίσκεται. Ως παράδειγμα υλοποίησης ε- πιλέχθηκε ένα σενάριο μεσιτείας, είναι όμως δυνατή και η υλοποίηση πολλών άλλων σεναρίων. -7-
Για το περιβάλλον των ευφυών πρακτόρων επιλέχθηκε το πλαίσιο JADE, το οποίο είναι ευέλικτο, σύμφωνο με τις προδιαγραφές της FIPA 1 (Foundation for Intelligent Physical Agents) και παρέχει εύκολη επικοινωνία μεταξύ των πρακτόρων. Ο βασικός πράκτορας που παρέχει την υπηρεσία συνεργάζεται με το σύστημα αναιρέσιμης συλλογιστικής DR-DEVICE, το οποίο και παράγει το τελικό αποτέλεσμα. Από την άλλη, η συμπεριφορά - στρατηγική των υπολοίπων πρακτόρων καθορίζεται από ένα σύνολο κανόνων. Για τη συγγραφή και επεξεργασία των κανόνων αυτών επιλέχθηκε η μηχανή κανόνων Jess. Επιλέχθηκε, η μέθοδος αυτή, για την συμπεριφορά κάθε πράκτορα, καθώς είναι ευέλικτη, αποδοτική, επιτρέπει την εύκολη υλοποίηση οποιουδήποτε σεναρίου και δεν επηρεάζει την ίδια την υπηρεσία συλλογιστικής που παρέχεται. Στα έξι κεφάλαια που ακολουθούν περιγράφονται όλα τα θέματα που αναφέρθηκαν παραπάνω. Συγκεκριμένα: Κεφάλαιο 2: Στο κεφάλαιο αυτό παρουσιάζεται ο Σημασιολογικός Ιστός και τα βασικά χαρακτηριστικά του με ιδιαίτερη έμφαση στην αναθεώρηση της αρχιτεκτονικής του και στην τρέχουσα ερευνητική δραστηριότητα στον τομέα αυτό. Επιπλέον, παρουσιάζονται τα σημαντικότερα χαρακτηριστικά της τεχνολογίας των ευφυών πρακτόρων, οι διαθέσιμες αρχιτεκτονικές και το ιδιαίτερο στοιχείο της επικοινωνίας πρακτόρων. Κεφάλαιο 3: Στο τρίτο κεφάλαιο περιγράφονται οι στόχοι της παρούσας εργασίας, οι λόγοι της ανάπτυξης της καθώς και μια σύντομη παρουσίασή της. Ακόμη, αναλύεται στα βασικά του σημεία το πεδίο της συλλογιστικής, συγκεκριμένα της αναιρέσιμης συλλογιστικής που κατέχει σημαντικό ρόλο στην παρούσα εργασία. Κεφάλαιο 4: Σε αυτό το κεφάλαιο παρουσιάζονται αναλυτικά τρία εργαλεία που χρησιμοποιήθηκαν, το σύστημα αναιρέσιμης συλλογιστικής DR-DEVICE, το πλαίσιο ανάπτυξης πολύ-πρακτορικών συστημάτων Jade και η μηχανή κανόνων Jess. Κεφάλαιο 5: Το κεφάλαιο αυτό περιγράφει λεπτομερώς την παρούσα εφαρμογή. Επεξηγούνται όλα τα στοιχεία που την αποτελούν, αναλύεται η ροή της λειτουργία της, δίνονται παραδείγματα και επεξηγούνται τα αποτελέσματα. Κεφάλαιο 6: Τέλος, παρουσιάζονται τα συμπεράσματα που προέκυψαν κατά την εκπόνηση της παρούσας εργασίας και δίνονται προτάσεις για μελλοντική επέκτασή της. 1 FIPA specification, http://www.fipa.org/
2 Θεωρητικό Υπόβαθρο 2.1 Σημασιολογικός Ιστός 2.1.1 Εισαγωγή Ο Σημασιολογικός Ιστός (Semantic Web) αποτελεί εξέλιξη και επέκταση του υπάρχοντος διαδικτύου, στο περιβάλλον του οποίου η πληροφορία ορίζεται έτσι ώστε να μην είναι κατανοητή μόνο από τον άνθρωπο αλλά και από τα προγράμματα πράκτορες (Agents). Κύριος στόχος, επομένως, του ΣΙ ήταν η ανάπτυξη κατάλληλων τεχνολογιών και εργαλείων που θα οδηγήσουν στην αναπαράσταση της πληροφορίας με μορφή πλήρως κατανοητή από τους πράκτορες. Παραδείγματα τέτοιων τεχνολογιών είναι οι γλώσσες XML, RDF και OWL.[1, 2, 3] Έχοντας πλέον ολοκληρωθεί αυτό το σκέλος της ανάπτυξης, η προσοχή έχει στραφεί στην συλλογιστική (reasoning), η οποία είναι ζωτικό κομμάτι του ΣΙ και απαραίτητη για την εξέλιξη του. Όμως, ο αρχικός σχεδιασμός του ΣΙ δεν υποστηρίζει την συλλογιστική, έτσι η αρχική αρχιτεκτονική του ΣΙ αναθεωρήθηκε διατηρώντας, ωστόσο, το αρχικό όραμα του.[4, 5] 2.1.2 Αρχική Αρχιτεκτονική του Σημασιολογικού Ιστού Το 2000, ο Tim Berners-Lee σχεδίασε την διαστρωματική αρχιτεκτονική του Σημασιολογικού Ιστού, όπως αυτή παρουσιάζεται στην Εικόνα 2.1. Σε αυτή την αρχιτεκτονική ο ΣΙ αναπτύσσεται σε βήματα, δημιουργώντας έτσι έναν αριθμό από διακριτά μεταξύ τους επίπεδα. Εικόνα 2.1 : Αρχική Αρχιτεκτονική του ΣΙ κατά Tim Berners-Lee. -9-
Το όραμα της πρώτης αρχιτεκτονικής ήταν μια στοίβα γλωσσών - τεχνολογιών, οι οποίες θα εξελίσσονταν βήμα-βήμα, έτσι ώστε κάθε επίπεδο να είναι πλήρως υλοποιημένο πριν την ανάπτυξη του επόμενου επιπέδου. Επομένως, κάθε νέο επίπεδο θα συνέχιζε και θα εξέλυε τη δουλειά που έγινε στο προηγούμενο, επεκτείνοντας τις δυνατότητες του. Θεμέλιο αυτής της αρχιτεκτονικής είναι η RDF [6], τόσο σε συντακτικό όσο και σε σημασιολογικό επίπεδο. Η RDF, λοιπόν, αποτέλεσε την βάση για την δημιουργία των επόμενων γλωσσών του ΣΙ. [1, 2, 3] Όταν πλέον υλοποιήθηκε και το επίπεδο των πιο ισχυρών γλωσσών οντολογιών (ontology languages), δηλαδή της γλώσσας OWL [8] (Web Ontology Language), η προσοχή στράφηκε προς την κατεύθυνση της συλλογιστικής. Στην προσπάθεια ανάπτυξης κατάλληλων γλωσσών (rules languages) διαπιστώθηκε ότι η θεμελιώδης χρήση της RDF οδηγούσε σε μια σειρά προβλημάτων, τόσο συντακτικών όσο και σημασιολογικών, καθώς αδυνατούσε να υποστηρίξει την συλλογιστική. [4, 5] Τελικά, η διαπίστωση ότι αυτή η αρχιτεκτονική αποτελεί μόνο μια υψηλού επιπέδου απεικόνιση του ΣΙ, παραλείποντας σημαντικές λεπτομέρειες του και επομένως δημιουργώντας συντακτικά και σημασιολογικά προβλήματα, οδήγησε στην ανάγκη για μια νέα αναθεωρημένη αρχιτεκτονική. [4, 5] 2.1.3 Αναθεωρημένη Αρχιτεκτονική του Σημασιολογικού Ιστού Αντιμετωπίζοντας τα προβλήματα της αρχικής αρχιτεκτονικής, η νέα αναθεωρημένη αρχιτεκτονική παρέχει πλεονεκτήματα διατηρώντας ωστόσο ως ένα βαθμό την διαστρωματική φιλοσοφία του ΣΙ και φυσικά το όραμα του. Αυτή η αναθεωρημένη αρχιτεκτονική παρουσιάζεται στην Εικόνα 2.2, που ακολουθεί. [4, 5] Εικόνα 2.2 : Αναθεωρημένη Αρχιτεκτονική του Σημασιολογικού Ιστού
Η RDF λοιπόν, όπως αναφέρθηκε, δεν είναι κατάλληλη για να γίνει ο θεμέλιος λίθος της αρχιτεκτονικής του ΣΙ. Από συντακτικής πλευράς, η φιλοσοφία της RDF προσφέρει τις τριπλέτες (triples), οι οποίες αποτελούν την αποκλειστική συντακτική βάση. Παρόλο, που οι τριπλέτες είναι κατάλληλη μορφή αναπαράστασης για οποιαδήποτε πληροφορία, παρουσιάζουν ένα σημαντικό μειονέκτημα. Όταν η πληροφορία που πρέπει να κωδικοποιηθεί είναι πολύπλοκη, η αναπαράσταση της με τη μορφή των τριπλετων είναι εξαιρετικά δύσκολη και συνήθως καταλήγει σε ένα πολύπλοκο συντακτικό σχήμα, όπου είναι πιθανό να επαναλαμβάνονται τριπλέτες ή ακόμη και να λείπουν, κάνοντας την τελική αναπαράσταση ακατάλληλη. Από σημασιολογικής πλευράς, το πρόβλημα είναι ακόμη μεγαλύτερο. Κάθε τριπλέτα πρέπει να είναι ένα γεγονός και όλα τα γεγονότα (τριπλέτες) πρέπει να αληθεύουν, ανεξάρτητα από την πραγματική πληροφορία που κωδικοποιούν, για να γίνει οποιαδήποτε χρήση τους. Αυτό οδηγεί στην ανάγκη για χρήση πολύπλοκων μηχανισμών επαλήθευσης και αυτό με τη σειρά του είναι πιθανό να οδηγήσει σε σημασιολογικά παράδοξα (semantic paradoxes). Αυτά τα παράδοξα είναι δύσκολο να αντιμετωπιστούν με αποτέλεσμα να προκύπτουν σημασιολογικά χαοτικές καταστάσεις στις γλώσσες ανωτέρων επιπέδων. Επομένως, το πρόβλημα είναι η χρήση τριπλετών για την κωδικοποίηση της πληροφορίας. Για την αντιμετώπιση του προβλήματος θα μπορούσε μεν να διατηρηθεί η χρήση τριπλετών αλλά να μην είναι απαραίτητο αυτές να είναι αληθή γεγονότα. Έτσι, λύνεται το σημασιολογικό ζήτημα αλλά παραμένει το συντακτικό. Οπότε, για να λυθεί το πρόβλημα συνολικά απαιτείται μια διαφορετική προσέγγιση. Σύμφωνα με αυτή τη νέα προσέγγιση, επιτρέπεται διαφορετικό συντακτικό για κάθε γλώσσα του ΣΙ. Έτσι, κάθε γλώσσα, όπως η OWL και οι γλώσσες κανόνων (π.χ.swrl), θα έχει το δικό της συντακτικό και η σημασιολογία της (semantics) θα προστίθενται με επιπλέον κανόνες στο βασικό μοντέλο. Τελικά, αυτή η προσέγγιση υιοθετήθηκε και οδήγησε στην αναθεωρημένη αρχιτεκτονική του ΣΙ, η οποία όπως φαίνεται και στην Εικόνα 2.2 διατηρεί την διαστρωματική λογική της μιας στοίβας. Αυτό συνεπάγεται ότι κάθε σύστημα που αναπτύσσεται θα πρέπει να μπορεί να αντιλαμβάνεται και να προσπελαύνει το συντακτικό χαμηλότερων επιπέδων. -11-
2.1.4 Προτεινόμενες Επεκτάσεις της Αρχιτεκτονικής Η αναθεωρημένη αρχιτεκτονική δίνει έμφαση στη διαφορετικότητα κάθε γλώσσας και διατηρεί τη λογική της μιας στοίβας, υιοθετώντας ωστόσο μια πιο χαλαρή εκδοχή της, επιτρέποντας για παράδειγμα τους κανόνες (rules) και τις οντολογίες (OWL) να βρίσκονται στο ίδιο επίπεδο (DLP bit of OWL/Rules). Όμως οι παραδοχές πάνω στις οποίες βασίζεται αυτή η νέα στοίβα, φαίνεται να είναι εσφαλμένες όσον αφορά τις σημασιολογικές σχέσεις μεταξύ των διαφόρων γλωσσών. Έτσι, εμφανίζονται γλώσσες να βρίσκονται σε υψηλότερο επίπεδο από κάποιες άλλες χωρίς ωστόσο να είναι σημασιολογικά συμβατές με αυτές. Μια αντιμετώπιση αυτού του προβλήματος, προτείνεται με την αρχιτεκτονική της Εικόνας 2.3. Αυτή η προσέγγιση προτείνει δυο στοίβες, κάθε μια με διαφορετική σημασιολογία (Datalog First Order). Η πρώτη στοίβα θα βρίσκεται πάνω από το επίπεδο της XML και θα περιλαμβάνει τη σημασιολογία Datalog, ενώ η δεύτερη θα βρίσκεται πάνω από το επίπεδο της RDFS και θα περιλαμβάνει την OWL και άλλες επεκτάσεις πρώτης τάξεως (First Order). Ωστόσο, δεν έχει ακόμη κατορθωθεί να δημιουργηθεί το λογικό πλαίσιο (Logic Framework) που θα περιλαμβάνει και τις δυο σημασιολογίες, γι αυτό και παραλείπεται στο σχήμα της αρχιτεκτονικής. Εικόνα 2.3 : Αρχιτεκτονική ΣΙ με κανόνες Datalog. Μια εναλλακτική προσέγγιση, που διατηρεί τη δομή της μιας στοίβας και ακολουθεί μια ενιαία σημασιολογική προσέγγιση, παρουσιάζεται στην Εικόνα 2.4. Αυτή η προσέγγιση εμφανίζει συγκριτικά πλεονεκτήματα έναντι της προηγούμενης καθώς στο πλαίσιο που υιοθετεί, οι κανόνες (rules) επεκτείνουν τόσο τη δουλειά που έχει γίνει στην RDFS, όσο και στην OWL, δημιουργώντας έτσι ένα κοινό σημασιολογικό πλαίσιο
για περαιτέρω ανάπτυξη. Από την άλλη όμως η υιοθέτηση των Datalog κανόνων τελικά οδηγεί σε δύο ΣΙ, τον ΣΙ που βασίζεται στους κανόνες και τον ΣΙ που βασίζεται στις οντολογίες. Καθώς δεν υπάρχει καμία σημασιολογική συνεργασία μεταξύ των δύο αυτών εκδοχών, το πρόβλημα που προκύπτει είναι τεράστιο. Εικόνα 2.4 : Αρχιτεκτονική ΣΙ με κανόνες Πρώτης Τάξεως Οι παραπάνω προτάσεις παρόλο που είναι εξαιρετικά ενδιαφέρουσες, παρουσιάζουν μια σειρά προβλημάτων, γι αυτό και βρίσκονται ακόμη σε στάδιο έρευνας. Βέβαιη ω- στόσο είναι η παραδοχή ότι η αρχιτεκτονική που θα μεγιστοποιήσει τη συμβατότητα με τις υπάρχουσες γλώσσες, ουσιαστικά την RDF και την OWL, θα ωφελήσει ιδιαίτερα την ανάπτυξη του ΣΙ. 2.1.5 Βασικές Γλώσσες του Σημασιολογικού Ιστού Οι βασικότερες γλώσσες που συνδέθηκαν αλληλένδετα με την ανάπτυξη του ΣΙ και εμφανίστηκαν από την πρώτη κιόλας αρχιτεκτονική που παρουσίασε ο Berners-Lee, είναι η XML, η RDF και η OWL.[6, 7, 8] Η XML (Extensible Markup Language) είναι μια απλή, ευέλικτη γλώσσα που προήλθε από το SGML (Standard Generalized Markup Language), το διεθνές πρότυπο α- ναπαράστασης πληροφορίας. Σχεδιάστηκε για να περιγράφει δεδομένα (data) και μοιάζει αρκετά με την HTML, με τη διαφορά όμως, ότι οι ετικέτες (tags) τις δεν είναι προκαθορισμένες. Ο ορισμός των ετικετών επαφίεται στο χρήστη μέσω ενός εγγράφου δομής Document Type Definition (DTD) ή XML Schema. Η RDF (Resource Description Framework Πλαίσιο Περιγραφής Πόρων) είναι ένα γενικό μοντέλο δηλώσεων αποτελούμενο από δηλώσεις ή ισχυρισμούς (statements) και -13-
αναφορές σχετικές με αυτούς. Ουσιαστικά, η γλώσσα RDF επιτρέπει την δημιουργία απλών δηλώσεων για αντικείμενα του διαδικτύου (πόρων). Στην πραγματικότητα η RDF σχεδιάστηκε για πληροφορίες, τις οποίες επεξεργάζονται εφαρμογές και όχι τόσο άνθρωποι-χρήστες. Ένα παράδειγμα εγγράφου RDF παρουσιάζεται στην παρακάτω εικόνα. Εικόνα 2.5 : XML αναπαράσταση RDF εγγράφου. Τέλος, η γλώσσα OWL (Web Ontology Language) είναι μια ισχυρή γλώσσα οντολογιών (ontology language) που επιτρέπει την αναπαράσταση πιο περίπλοκων σχέσεων α- νάμεσα στα αντικείμενα του διαδικτύου. Η OWL ουσιαστικά αποτελεί επέκταση της γλώσσας RDF Schema, η οποία βασίζεται στη RDF και είναι μια αρχική γλώσσα για τη δημιουργία οντολογιών. 2.2 Ευφυείς Πράκτορες 2.2.1 Εισαγωγή Η συμβολή των ευφυών πρακτόρων (intelligent agents) στο περιβάλλον του ΣΙ είναι ουσιώδης. Ωστόσο, δεν υπάρχει ακόμη γενικά αποδεκτός ορισμός για την έννοια του ευφυούς πράκτορα. Αυτό συμβαίνει γιατί, αν και υπάρχει μια γενική συμφωνία για το ότι η έννοια της αυτονομίας (autonomy) αποτελεί κεντρικό σημείο στην ιδέα του πράκτορα, το γεγονός ότι ανάλογα με το πεδίο μελέτης διαφοροποιούνται τα χαρακτηριστικά που θεωρούνται σημαντικά καθιστά την υιοθέτηση ενός γενικού ορισμού εξαιρετικά δύσκολη. Στα πλαίσια, ωστόσο, των πολύ-πρακτορικών συστημάτων (multi-agent systems), όπου η αυτοματοποίηση διαδικασιών όπως η διαπραγμάτευση (negotiation) και η μεσιτεία (brokering) είναι σημαντική, η έννοια του πράκτορα αποκτά ιδιαίτερο νόημα. Σύμ-
φωνα, λοιπόν, με έναν καλό ορισμό, πράκτορας είναι μια αλληλεπιδραστική οντότητα, μέσα σε ένα κοινό με άλλους πράκτορες περιβάλλον, όπου αντιδρά και ενεργεί με ένα δυναμικό (proactive) ή αντιδραστικό (reactive) τρόπο, σύμφωνα με μια κοινή μορφή αναπαράστασης και επικοινωνίας. [9] Σημαντικό, σε αυτό το σημείο είναι να τονισθούν τα στοιχεία που διαφοροποιούν τους πράκτορες από τα υπόλοιπα προγράμματα. Μια σειρά, λοιπόν, ιδιοτήτων είναι που κάνει τους πράκτορες ιδιαίτερους. Μεταξύ άλλων, οι σημαντικότερες είναι η προσαρμοστικότητα (adaptivity), η αυτονομία (autonomy) και η αντιδραστικότητα (reactivity). Προσαρμοστικότητα είναι η ικανότητα του πράκτορα να μαθαίνει και να βελτιώνεται μέσω της εμπειρίας, αυτονομία είναι η ικανότητα του να ενεργεί ανεξάρτητα κατευθυνόμενος από τους προσωπικούς του στόχους, ενώ αντιδραστικότητα είναι η ικανότητα του να αντιλαμβάνεται και να ενεργεί επιλεκτικά.[10, 11, 12] 2.2.2 Αρχιτεκτονικές Πρακτόρων Όπως δεν υπάρχει ένας μοναδικός ορισμός για την έννοια του πράκτορα, έτσι δεν υ- πάρχει και μια μοναδική αρχιτεκτονική. Τα τελευταία χρόνια έχουν προταθεί διάφορες αρχιτεκτονικές (agent architectures), με το εύρος τους να κυμαίνεται από τις αμιγώς αντιδραστικές (reactive) μέχρι τις προσχεδιασμένες (deliberative). Φυσικά, μεταξύ αυτών των άκρων βρίσκονται διάφοροι υβριδικοί συνδυασμοί τους, που επιδιώκουν να εκμεταλλευτούν στο έπακρο τα πλεονεκτήματα κάθε προσέγγισης. Τελικά, το σύνολο των αρχιτεκτονικών μπορεί να ταξινομηθεί σε τέσσερις μεγάλες κατηγορίες, τις βασιζόμενες στη λογική (logic based), τις αντιδραστικές (reactive), τις BDI (belief, desire, intention), και τέλος τις διαστρωματικές (layered) αρχιτεκτονικές. Οι βασιζόμενες στη λογική (logic based) ή αλλιώς συμβολικές (symbolic) αρχιτεκτονικές βασίζονται στις παραδοσιακές τεχνικές (knowledge-based techniques), αναπαριστούν το περιβάλλον συμβολικά και το διαχειρίζονται μέσω μηχανισμών συλλογιστικής. Το πλεονέκτημα τους είναι ότι κωδικοποιούν εύκολα την ανθρώπινη γνώση καθώς είναι και αυτή συμβολική, ωστόσο είναι δύσκολο να μετατραπεί ο πραγματικός κόσμος σε μια ακριβή συμβολική περιγραφή, κάτι που τελικά είναι το σημαντικότερο μειονέκτημα αυτών των αρχιτεκτονικών. Οι αντιδραστικές (reactive) αρχιτεκτονικές, αντίθετα με τις συμβολικές, δεν έχουν κάποιο κεντρικό μοντέλο και γι αυτό δε χρειάζονται πολύπλοκη συλλογιστική. Χρησιμοποιούνται κυρίως για περιπτώσεις λήψης αποφάσεων με βάση τα δεδομένα που προ- -15-
κύπτουν από αισθητήρες. Πράκτορες τέτοιας αρχιτεκτονικής λαμβάνουν διάφορες συνθήκες και ανάλογα ενεργούν, χωρίς όμως να κάνουν κανενός είδους σχεδιασμό (planning). Πλεονέκτημα τους είναι ότι αποδίδουν καλύτερα σε δυναμικά περιβάλλοντα, αλλά παρουσιάζουν μια σειρά μειονεκτημάτων μεταξύ των οποίων η αδυναμία τους να μάθουν μέσω της εμπειρίας και η δυσκολία να ενεργήσουν όταν τα δεδομένα από τους αισθητήρες δεν είναι ικανοποιητικά. Οι αρχιτεκτονικές BDI (belief, desire, intention) είναι πιθανότατα οι πιο δημοφιλείς. Έχουν τις ρίζες τους στη φιλοσοφία και παρέχουν μια λογική θεωρία, η οποία προσδιορίζει τις έννοιες της πεποίθησης (belief), της επιθυμίας (desire) και της πρόθεσης (intention). Οι πεποιθήσεις αναπαριστούν την πληροφορία που έχει ο πράκτορας για το περιβάλλον του, οι επιθυμίες αναπαριστούν τις ενέργειες που σχετίζονται με τους στόχους που πρέπει να επιτύχει και οι προθέσεις αναπαριστούν τις επιθυμίες που πρέπει να εκτελέσει π πράκτορας. Τέλος, οι υβριδικές διαστρωματικές (layered) αρχιτεκτονικές επιτρέπουν τόσο αντιδραστικές όσο και προσχεδιασμένες συμπεριφορές. Η οργάνωση της συμπεριφοράς (behavior) του πράκτορα γίνεται σε επίπεδα με δύο τρόπους, είτε οριζόντια (horizontal) είτε κάθετα (vertical), όπως παρουσιάζεται στην Εικόνα 2.6. Το σημαντικότερα πλεονέκτημα αυτής της κατηγορίας είναι ότι επιτρέπει τον εύκολο σχεδιασμό ευφυών πρακτόρων με σύνθετη συμπεριφορά.[10, 11, 12] Εικόνα 2.6 : Οργάνωση των διαστρωματικών αρχιτεκτονικών.
2.2.3 Πολυ Πρακτορικά Συστήματα Πολυ πρακτορικό σύστημα (multi-agent system - MAS) είναι ένα περιβάλλον μέσα στο οποίο αναπτύσσεται ένας αριθμός ευφυών πρακτόρων, οι οποίο έχουν είτε κοινούς είτε αντικρουόμενους στόχους. Μέσα σε αυτό το κοινό περιβάλλον οι πράκτορες μπορούν, φυσικά, να επικοινωνούν. Η επικοινωνία τους γίνεται με δύο διαφορετικούς τρόπους, είτε έμμεσα μέσω αλληλεπίδρασης με το ίδιο το περιβάλλον είτε άμεσα μέσω μιας μεταξύ τους επικοινωνίας. Επομένως, όπως είναι φανερό, οι πράκτορες στα ΠΣ άλλοτε συνεργάζονται για την επίτευξη ενός κοινού στόχου και άλλοτε ενεργούνε αυτόνομα για την εξυπηρέτηση των ατομικών τους στόχων. Τα ΠΣ χρησιμοποιούνται ολοένα και περισσότερο σε μια σειρά εφαρμογών από πολύ μικρά συστήματα προσωπικής χρήσης έως κρίσιμα συστήματα βιομηχανικών εφαρμογών. Η σπουδαιότητα τους αυτή οδήγησε στην ανάπτυξη νέων τεχνολογιών, όπως είναι νέες γλώσσες προγραμματισμού και εργαλεία. Αυτές οι νέες γλώσσες ονομάζονται AOL (Agent-Oriented Languages) και έχουν μεγάλες ομοιότητες με τις αντικειμενοστραφείς (object-oriented), χαρακτηριστικό τους είναι ότι επικεντρώνονται στα κύρια χαρακτηριστικά των πολυ πρακτορικών συστημάτων. Σήμερα, υπάρχουν διαθέσιμες αρκετές τέτοιες γλώσσες, άλλες δημιουργήθηκαν εξ αρχής και άλλες αποτελούν επεκτάσεις άλλων γλωσσών. Από την άλλη, οι πλατφόρμες και τα πλαίσια πρακτόρων (Agent Frameworks) είναι εργαλεία που επιτρέπουν την ανάπτυξη πρακτόρων αλλά και πολύ-πρακτορικών συστημάτων. Ορισμένα από αυτά τα πλαίσια έχουν ως στόχο την συμβατότητα με τις προδιαγραφές της FIPA, παράδειγμα τέτοιου πλαισίου είναι το Jade, το οποίο χρησιμοποιείται στην παρούσα εργασία, ενώ άλλα για παράδειγμα επικεντρώνονται σε ειδικής κατηγορίας πράκτορες.[10, 11, 12] 2.2.4 Επικοινωνία μεταξύ πρακτόρων Βασικό σημείο σε κάθε πολυ πρακτορικό σύστημα είναι η επικοινωνία και αυτό γιατί κάθε πράκτορας πρέπει να είναι σε θέση να επικοινωνεί με τους χρήστες, το ίδιο το σύστημα αλλά και τους υπόλοιπους πράκτορες. Εξαιρετικό ενδιαφέρον παρουσιάζει η ε- πικοινωνία μεταξύ των πρακτόρων. Η επικοινωνία αυτή πραγματοποιείται με την α- νταλλαγή μηνυμάτων μέσω ειδικών γλωσσών, οι οποίες ονομάζονται γλώσσες επικοινωνίας πρακτόρων (agent communication languages - ACLs). Η πρώτη τέτοια γλώσσα που χρησιμοποιήθηκε ευρέως ήταν η KQML (Knowledge Query and Manipulating Language), ωστόσο η πλέον χρησιμοποιούμενη ACL γλώσσα στις μέρες μας είναι η FIPA ACL (Foundation for Intelligent Physical Agents). -17-
Τα πρωταρχικά χαρακτηριστικά την FIPA ACL είναι η δυνατότητα που προσφέρει για χρήση πολλών διαφορετικών γλωσσών περιεχομένου και η δυνατότητα για διαχείριση της επικοινωνίας μέσω προκαθορισμένων πρωτοκόλλων αλληλεπίδρασης (interaction protocols). Η γλώσσα αυτή θεωρεί ότι τα μηνύματα αναπαριστούν ενέργειες, οι οποίες ονομάζονται performatives. Οι πιο χρησιμοποιούμενες ενέργειες, δηλαδή τύποι μηνυμάτων ACL, είναι οι INFORM, REQUEST, AGREE, REFUSE και NOT UN- DERSTOOD, οι οποίες ουσιαστικά αποτελούν τους βασικούς τύπους επικοινωνίας. Τέλος, για να είναι επομένως ένας ευφυής πράκτορας συμβατός με τις προδιαγραφές της FIPA θα πρέπει να είναι σε θέση να αναγνωρίζει οποιοδήποτε τύπο επικοινωνίας (communication act).[10, 11, 12]
3 Ειδικότερο Υπόβαθρο 3.1 Αναιρέσιμη Συλλογιστική 3.1.1 Εισαγωγή Η αναιρέσιμη συλλογιστική (defeasible reasoning) είναι μια απλή προσέγγιση, που βασίζεται στους κανόνες (rule-based) και μπορεί να χειριστεί αποδοτικά πληροφορία που είναι ελλιπής (incomplete) ή ασυνεπής (inconsistent). Στην προσέγγιση αυτή, η πληροφορία αναπαρίσταται με γεγονότα (facts) και κανόνες (rules), αλλά πρέπει να σημειωθεί ότι καθορίζονται επίσης και οι προτεραιότητες (priorities) μεταξύ των κανόνων αυτών. Τέτοιου είδους συλλογιστική είναι, εκτός των άλλων, ιδιαίτερα χρήσιμη για περιπτώσεις πιθανών συγκρούσεων (ουσιαστικά ασυνεπειών) μεταξύ των στοιχείων της πληροφορίας, γι αυτό και περιέχουν την κλασσική αναίρεση (classical negation) σε αντίθεση με τα συνηθισμένα συστήματα λογικού προγραμματισμού. Επιπλέον, μπορεί να αντιμετωπίσει ακόμη και την αναίρεση ως αποτυχία (negation as failure NAF), τον τυπικό τύπο αναίρεσης για τα μη-μονοτονικά συστήματα λογικού προγραμματισμού. Η αντιμετώπιση της αναίρεσης είναι εξαιρετικά χρήσιμη γιατί στην πραγματικότητα οι συγκρούσεις μεταξύ των κανόνων δεν είναι τίποτα άλλο από το γεγονός ότι το συμπέρασμα του ενός είναι η αναίρεση του άλλου. Ορισμένες περιπτώσεις συγκρούσεων ωστόσο μπορούν να επιλυθούν και με βάση την πληροφορία που παρέχεται από τις προτεραιότητες που ορίστηκαν μεταξύ των κανόνων. Το κύριο πλεονέκτημα που παρουσιάζει, λοιπόν, αυτή η συλλογιστική είναι ότι α- φενός επιτρέπει τον χειρισμό ελλιπούς και ασαφούς πληροφορίας και αφετέρου παρουσιάζει μικρή υπολογιστική πολυπλοκότητα. [13] 3.1.2 Η γλώσσα Στην αναιρέσιμη συλλογιστική κάθε αναιρέσιμη θεωρία D (defeasible theory) είναι ουσιαστικά μια τριπλέτα της μορφής (F, R, >), F είναι το σύνολο των γεγονότων, R είναι το σύνολο των κανόνων και > είναι η σχέση προτεραιότητας. Να σημειωθεί ότι κάθε κανόνας μπορεί να ανήκει σε ένα από τα τρία είδη που προσφέρει η συλλογιστική, δηλαδή τους αυστηρούς κανόνες (strict rules), τους αναιρέσιμους (defeasible rules) και τους αναιρέτες (defeaters). -19-
Οι αυστηροί κανόνες είναι η κλασσική περίπτωση κανόνων, που αναπαρίστανται με την μορφή Υ Σ και οποτεδήποτε αληθεύει η υπόθεση αληθεύει και το συμπέρασμα του κανόνα. Παράδειγμα τέτοιου κανόνα είναι π.χ. η πρόταση Sons are men, και ο αντίστοιχος κανόνας είναι ο son(x) man(x). Οι αναιρέσιμοι κανόνες από την άλλη μεριά αναπαρίστανται με την μορφή Υ Σ και μπορούν να αναιρεθούν από κάποια αντίθετη πληροφορία (κανόνα). Ένα παράδειγμα είναι η πρόταση Chemicals are typically colored, chemical(x) colored(x), αλλά εάν υπήρχε ένας άλλος κανόνας, π.χ. ένας α- ναιρέτης, που όριζε για κάποιο στοιχείο το αντίθετο θα υπερίσχυε αυτός. Οι αναιρέτες, λοιπόν, αναπαρίστανται με την μορφή Υ ~> Σ και χρησιμοποιούνται μόνο για να αναιρέσουν κάποιο συγκεκριμένο συμπέρασμα. Τέλος, οι σχέσεις προτεραιοτήτων καθορίζουν την σχέση που υπάρχει μεταξύ των κανόνων, ποιος είναι δηλαδή πιο ισχυρός από τον άλλο. Έτσι μεταξύ δύο κανόνων, των r 1 και r 2, που διέπονται από την σχέση r 1 > r 2, ο r 1 ονομάζεται ανώτερος (superior) και ο r 2 κατώτερος (inferior). Οι σχέσεις αυτές είναι εξαιρετικά χρήσιμες γιατί χάρη σε αυτές αποφεύγονται ορισμένες συγκρούσεις. Για παράδειγμα, εάν υπήρχαν δυο κανόνες οι r 1 :Α Β και r 2 :Α Β, τότε ο ένας θα αναιρούσε τον άλλο, ωστόσο εάν ήταν επιπλέον γνωστή η σχέση r 1 > r 2 τότε η σύγκρουση θα είχε αποφευχθεί καθώς θα υπερίσχυε ο r 1. 3.1.3 Αναίρεση ως αποτυχία NAF Η αναίρεση ως αποτυχία (negation as failure NAF) είναι ο ένας από τους δύο τύπους αναίρεσης που υποστηρίζει η αναιρέσιμη συλλογιστική. Αυτός ο τύπος αναίρεσης, αν και δεν είναι τόσο ισχυρός όσο η (strong) αναίρεση, είναι χρήσιμος. Χάρη σε αυτήν την αναίρεση (NAF) είναι εφικτό να επιτευχθεί το ζητούμενο με έναν μόνο κανόνα και όχι με μια σειρά κανόνων που θα χρειαζόταν διαφορετικά. Για παράδειγμα, εάν το ζητούμενο είναι να βρεθεί η μεγαλύτερη προσφορά μεταξύ ενός συνόλου προσφορών της μορφής offer(x,y), όπου x είναι αυτός που έκανε την προσφορά και y είναι το ύψος της προσφοράς, τότε ο κατάλληλος για την περίπτωση κανόνας είναι ο offer(x,y), not(offer(x 1,y 1 ), x 1 x, y 1 >y) => max_offer (X,Y). Στο σημείο αυτό πρέπει να σημειωθεί ότι η χρήση της αναίρεσης NAF είναι προαιρετική, καθώς μια αναιρέσιμη θεωρία που χρησιμοποιεί NAF, μπορεί πολύ εύκολα να μετατραπεί σε μια ισοδύναμη που δεν χρησιμοποιεί. Για παράδειγμα, κάθε κανόνας τύ-
που r: L1,,Ln, not M1,, not Mk => L μπορεί να αντικατασταθεί με τους εξής κανόνες r: L1,,Ln, pr => L,=> pr, ~L1 => pr, ~Ln => pr.[13] 3.1.4 Εννοιολογικές Συγκρούσεις Στην αναιρέσιμη συλλογιστική, όπως έχει ήδη αναφερθεί υπάρχουν συγκρούσεις, οι συγκρούσεις αυτές συνήθως έχουν να κάνουν με το συμπέρασμα του κανόνα. Η πιθανότερη, λοιπόν, περίπτωση σύγκρουσης είναι κανόνες με αντίθετα συμπεράσματα. Ό- μως, αυτή δεν είναι η μοναδική περίπτωση, καθώς αρκετές φορές προκύπτουν ακόμη και εννοιολογικές συγκρούσεις (conflicting literals). Σε αυτή την περίπτωση, δύο ή περισσότερα κατηγορήματα θεωρείται ότι συγκρούονται όταν οι έννοιες τους είναι αντίθετες ή αλληλοσυγκρουόμενες. Σε πραγματικές εφαρμογές αυτή η περίπτωση είναι πολύ συνηθισμένη, για παράδειγμα το ρίσκο που είναι διατεθειμένος να αναλάβει ένας επενδυτής μπορεί να είναι υψηλό (high), μέσο (medium) ή χαμηλό (low). Όπως είναι φυσικό υπάρχουν συγκρούσεις μεταξύ αυτών των κατηγοριών, που πρέπει με κάποιο τρόπο να επιλυθούν. Τέτοιου τύπου προβλήματα λύνονται με την προσθήκη κανόνων, όπως οι παρακάτω για την συγκεκριμένη περίπτωση.. conflict :: low, medium conflict :: low, high conflict :: medium, high Έτσι, εάν για παράδειγμα το ζητούμενο είναι το υψηλό (high), συγκρουόμενοι κανόνες δεν είναι μόνο αυτοί που έχουν high αλλά και αυτοί με το low και medium. Ένα άλλο παράδειγμα, συχνά εμφανιζόμενο σε πραγματικές συνθήκες είναι η διαπραγμάτευση. Σε αυτή την περίπτωση κάθε ενδιαφερόμενος κάνει μια προσφορά offer(x) και τελικά επικρατεί η μεγαλύτερη. Καθώς η προσφορά αυτή είναι ένα θετικό αλφαριθμητικό πρέπει, επιπλέον, να καθοριστεί όπως και στο προηγούμενο παράδειγμα ο κανόνας που περιγράφει την σύγκρουση μεταξύ των αλφαριθμητικών. Στην προκειμένη περίπτωση ο κανόνας αυτός είναι ο C(offer(x)) = { offer(x) { offer(y) y x. Γενικά, όταν προκύπτουν τέτοιου είδους συγκρούσεις, δηλαδή συγκρούσεις μεταξύ εννοιών αλφαριθμητικών η αναιρέσιμη θεωρία πρέπει να αναθεωρηθεί ώστε να συμπεριλαμβάνει και την σύγκρουση αυτή. Για παράδειγμα δεδομένου ενός κανόνα conflict :: L, M, η αναιρέσιμη θεωρία αναθεωρείται με την προσθήκη των εξής κανόνων: -21-
ri : q1,q2,,qn L, ri: q1,q2,,qn M ri : q1,q2,,qn M, ri: q1,q2,,qn L ri : q1,q2,,qn => L, ri: q1,q2,,qn => M ri : q1,q2,,qn => M, ri: q1,q2,,qn => L Επιπλέον, κάθε σχέση προτεραιότητας μεταξύ των κανόνων, που υπάρχει στην αρχική θεωρία, πρέπει να μεταφερθεί και στους αντίστοιχους νέους κανόνες που προέκυψαν. Δεδομένου, λοιπόν, δύο κανόνων και μιας σχέσης όπως οι παρακάτω r1: q1,q2,,qn => L r2: p1,p2,,pn => M r1 > r2 η αναθεωρημένη αναιρέσιμη θεωρία θα περιέχει εκτός από τους νέους κανόνες και τις νέες σχέσεις προτεραιοτήτων όπως φαίνεται παρακάτω r1 : q1,q2,,qn => M r2 : p1,p2,,pn => L r1 > r2 r1 > r2 3.2 Στόχοι της Διπλωματικής Εργασίας Το ενδιαφέρον στο περιβάλλον του Σημασιολογικού Ιστού, όπως έχει ήδη παρουσιαστεί, είναι στραμμένο πλέον στην συλλογιστική και τους ευφυείς πράκτορες. Συνεχώς αναπτύσσονται πολυ-πρακτορικά συστήματα (MAS) και η ανάγκη για υπηρεσίες συλλογιστικής, ιδιαίτερα αναιρέσιμης συλλογιστικής, είναι πλέον δεδομένη. Διαπραγματεύσεις, ανεξαρτήτως αντικειμένου, μεταξύ ευφυών πρακτόρων θα ήταν εξαιρετικά δύσκολες, αν όχι αδύνατες, χωρίς τέτοιες υπηρεσίες. Στο πλαίσιο αυτό, η παρούσα διπλωματική εργασία στοχεύει στη δημιουργία μιας υπηρεσίας αναιρέσιμης συλλογιστικής (defeasible reasoning service) για τον Σημασιολογικό Ιστό. Μια υπηρεσία, διαθέσιμη να χρησιμοποιηθεί από οποιονδήποτε πράκτορα, όπου κι αν βρίσκεται αυτός, εύκολα και αποδοτικά. Το ιδιαίτερο με αυτή την υπηρεσία, πέρα από την ευελιξία και την απόδοση της καθώς βασίζεται στο σύστημα DR-DEVICE [22], είναι το γεγονός ότι παρέχεται μέσω ε-
νός ευφυούς πράκτορα. Ο πράκτορας αυτός ονομάζεται Reasoner και το περιβάλλον του είναι το πλαίσιο JADE [23]. Το πλαίσιο JADE είναι σύμφωνο με τις προδιαγραφές της FIPA [21] και η ευελιξία του επιτρέπει πολλαπλούς τρόπους επαφής με τον πράκτορα και κατ επέκταση με την υπηρεσία. Οι στόχοι της εργασίας, όμως, δεν περιορίζονται στην προαναφερθείσα υπηρεσία. Υλοποιείται, επιπλέον, ένα σενάριο μεσιτείας με τη συμμετοχή ευφυών πρακτόρων αντιπροσώπων για τον πελάτη και τον μεσίτη, οι οποίο επικοινωνούν τόσο μεταξύ τους όσο και με τον πράκτορα Reasoner που παρέχει την υπηρεσία συλλογιστικής. Το σενάριο αυτό ολοκληρώνεται με επιτυχία και καταδεικνύει τη χρησιμότητα και την απόδοση της υπηρεσίας που παρέχεται από τον πράκτορα Reasoner. Σημαντικό σημείο είναι το γεγονός ότι οι υπόλοιποι πράκτορες, δηλαδή ο πελάτης και ο μεσίτης, υλοποιήθηκαν διαφορετικά από ότι ο ευφυής πράκτορας Reasoner. Η συμπεριφορά στρατηγική τους καθορίστηκε με ένα σύνολο κανόνων, για την συγγραφή και επεξεργασία των οποίων επιλέχθηκε η μηχανή κανόνων Jess [24], μια μέθοδος ευέλικτη και αποδοτική, που δεν επηρεάζει την ίδια την υπηρεσία συλλογιστικής που παρέχεται. Αυτή η ιδιαίτερη επιλογή έγινε για δύο λόγους, αφενός για να μελετηθεί η μηχανή κανόνων και παράλληλα η γλώσσα Jess σε συνδυασμό με τους ευφυείς πράκτορες και το πλαίσιο JADE και αφετέρου για να δημιουργηθεί ένα πλαίσιο εύκολης υιοθέτησης ή αλλαγής της στρατηγικής των ευφυών πρακτόρων. -23-
4 Εργαλεία 4.1 Εισαγωγή Στην παρούσα διπλωματική εργασία χρησιμοποιήθηκαν ορισμένα σημαντικά εργαλεία, όπως το σύστημα αναιρέσιμης συλλογιστικής DR-DEVICE [22], το πλαίσιο ανάπτυξης πρακτόρων JADE [23] και η μηχανή κανόνων JESS [24]. Κάθε ένα από αυτά αποτέλεσε σημαντικό στοιχείο στην ανάπτυξη της εργασίας στο βαθμό που το αφορούσε. Το σύστημα DR-DEVICE προσφέρει την απαραίτητη υποστήριξη για την παροχή της υπηρεσίας αναιρέσιμης συλλογιστικής από τον ευφυή πράκτορα Reasoner. Το πλαίσιο ανάπτυξης JADE προσέφερε ένα σταθερό περιβάλλον για τους ευφυείς πράκτορες της εφαρμογής, παρέχοντας αρκετές χρήσιμες δυνατότητες. Τέλος, η μηχανή κανόνων JESS προσέφερε την δυνατότητα ανάπτυξης ευφυών πρακτόρων ιδιαίτερου τύπου, στους οποίους είναι πλέον εύκολη η υιοθέτηση και η αλλαγή στρατηγικής. Όλα αυτά τα σημαντικά εργαλεία παρουσιάζονται αναλυτικά στις ενότητες που ακολουθούν. 4.2 Το Σύστημα DR DEVICE 4.2.1 Εισαγωγή Το DR-DEVICE [13] είναι ένα σύστημα αναιρέσιμης συλλογιστικής για τον Σημασιολογικό Ιστό. Αναπτύχθηκε πάνω στο σύστημα κανόνων CLIPS και βασίστηκε στο R- DEVICE [14], ένα παλαιότερο παραγωγικό σύστημα κανόνων για RDF μεταδεδομένα. Τα σημαντικότερα χαρακτηριστικά του συστήματος, μεταξύ άλλων είναι: i. η υποστήριξη πολλών τύπων για τους κανόνες αναιρέσιμης λογικής, όπως είναι οι αυστηροί κανόνες (strict rules), οι αναιρέσιμοι (defeasible rules) και αναιρέτες (defeaters) αλλά και η υποστήριξη προτεραιοτήτων μεταξύ των κανόνων. ii. iii. η υποστήριξη επίσης τόσο της κλασσικής αναίρεσης όσο και της αναίρεσης ως αποτυχία (negation- as - failure) η άμεση εισαγωγή RDF οντολογιών και δεδομένων από το διαδίκτυο ως γεγονότα στο πρόγραμμα αναιρέσιμης λογικής. -25-
iv. η άμεση εισαγωγή προγραμμάτων αναιρέσιμης λογικής από το διαδίκτυο με το RuleML, ένα συντακτικό κανόνων σύμφωνο με το XML. v. η άμεση εξαγωγή των αποτελεσμάτων του προγράμματος σαν ένα RDF έγγραφο στο διαδίκτυο. Επομένως, το σύστημα DR-DEVICE είναι ένα ισχυρό σύστημα που υποστηρίζει όλα τα στοιχεία της αναιρέσιμης συλλογιστικής, δηλαδή γεγονότα (facts), κανόνες (rules) και οντολογίες (ontologies). Επιπλέον όμως, υποστηρίζει και τα κύρια πρότυπα του Σημασιολογικού Ιστού, RDF, RDFS και RuleML. Τέλος, να σημειωθεί ότι το σύστημα DR-DEVICE έχει και μια απλή και εύχρηστη διεπαφή χρήστη, η οποία παρουσιάζεται στην εικόνα που ακολουθεί. Εικόνα 4.1 : Διεπαφή Χρήστη του Συστήματος DR-DEVICE. 4.2.2 Αρχιτεκτονική του DR-DEVICE Το σύστημα DR-DEVICE αποτελείται από δύο βασικά στοιχεία, το RDF loader/translator και το rule loader/translator, όπως παρουσιάζεται και στο σχήμα που α- κολουθεί (Εικόνα 4.1).
Εικόνα 4.2 : Αρχιτεκτονική του Συστήματος DR-DEVICE. Η λειτουργία του συστήματος μπορεί να αναλυθεί σε μια σειρά έξι βημάτων, τα ο- ποία και παρουσιάζονται αναλυτικά στην συνέχεια. i. Αρχικά, ο χρήστης εισάγει (1) στον rule loader ένα πρόγραμμα κανόνων, δηλαδή εισάγει το URL ή το τοπικό όνομα του σχετικού αρχείου. Το αρχείο αυτό, το πρόγραμμα κανόνων ουσιαστικά, περιέχει μεταξύ άλλων κανόνες σε ένα συντακτικό τύπου RuleML, το URL του RDF εγγράφου με τα δεδομένα, το οποίο θα προωθηθεί στη συνέχεια στον RDF loader, καθώς και το όνομα που θα έχει το τελικό RDF έγγραφο με τα αποτελέσματα που θα προκύψουν. ii. iii. iv. Το παραπάνω RuleML έγγραφο μετατρέπεται (2) σε ένα αμιγώς CLIPS συντακτικό (3) με τη χρήση του Xalan XSLT processor. Κατόπιν, το πρόγραμμα κανόνων του DR-DEVICE μεταφέρεται στον rule translator (4). Εντωμεταξύ, ο RDF loader προσπελαύνει το RDF έγγραφο με τα αρχικά δεδομένα (5) και μετατρέπει τα δεδομένα αυτά σε CLIPS αντικείμενα (6), σύμφωνα με το πρότυπο που χρησιμοποιείται στο R-DEVICE. O rule translator μεταφράζει τους κανόνες αναιρέσιμης λογικής σε κανόνες CLIPS, με μια διαδικασία δύο βημάτων (7, 8). -27-
v. Μέσω της μηχανής του CLIPS, εκτελείται η συλλογιστική πάνω στους κανόνες και έτσι τελικά προκύπτει το αποτέλεσμα σε μορφή αντικειμένων (objects) (9). vi. Τέλος, τα παραπάνω αντικείμενα εξάγονται σε ένα RDF/XML έγγραφο, το ο- ποίο και είναι διαθέσιμο προς τον χρήστη. 4.2.3 Το συντακτικό της γλώσσας του DR-DEVICE Το DR-DEVICE έχει δύο συντακτικά, το πρώτο συμβατό με την RuleML και το δεύτερο όμοιο με το συντακτικό του CLIPS. Στην ενότητα αυτή, ωστόσο, παρουσιάζεται μόνο το πρώτο συντακτικό (RuleML compatible) και όχι το δεύτερο καθώς θεωρείται ιδιαίτερα γνωστό. Οι τρείς τύποι κανόνων που υποστηρίζονται από το DR-DEVICE, αναπαρίστανται στο συντακτικό με συγκεκριμένες λέξεις κλειδιά, τις strictrule για τους αυστηρούς κανόνες, defeasiblerule για τους αναιρέσιμους και defeater για τους αναιρέτες. Οπότε, ένας κανόνας, για παράδειγμα ο r4: bird(x) => flies(x), στο συντακτικό αυτό θα γινόταν όπως παρουσιάζεται παρακάτω στην Εικόνα 4.2. Εικόνα 4.3 : Αναπαράσταση κανόνα σε RuleML. Παρόλο που στο DR-DEVICE χρησιμοποιούνται τα περισσότερα χαρακτηριστικά της RuleML, υπάρχουν και ορισμένα χαρακτηριστικά της γλώσσας του που δεν μπορεί να περιγράψει το DTD έγγραφο της RuleML. Έτσι, στα πλαίσια του συστήματος δημιουργήθηκε ένα νέο DTD, επέκταση του βασικού με επιπλέον χαρακτηριστικά την ισχυ-
ρή αναίρεση (strong negation) και την αναίρεση ως αποτυχία (negotiation as failure). Το DTD αυτό παρουσιάζεται στην Εικόνα 4.3 που ακολουθεί. Εικόνα 4.4 : DTD για το RuleML συντακτικό του DR-DEVICE. Τέλος, ιδιαίτερο ενδιαφέρον παρουσιάζουν οι ιδιότητες (attributes) του βασικού στοιχείου (root element) του RuleML εγγράφου, δηλαδή του rulebase. Με την ιδιότητα του rdf_import καθορίζεται το RDF έγγραφο με τα αρχικά δεδομένα, με την rdf_export καθορίζεται η διεύθυνση του αρχείου στο οποίο θα εξαχθούν τα τελικά αποτελέσματα και με την rdf_export_classes καθορίζονται οι κλάσεις των οποίων τα στιγμιότυπα θα εξαχθούν στην RDF/XML μορφή. Παράδειγμα των ιδιοτήτων αυτών παρουσιάζεται στην Εικόνα που ακολουθεί. Εικόνα 4.5 : Οι ιδιότητες του στοιχείου rulebase. -29-
4.3 Το πλαίσιο JADE 4.3.1 Εισαγωγή Το JADE (Java Agent DΕvelopment Framework) είναι ένα πλαίσιο middle-ware που αναπτύχθηκε από το TILAB (TELECOM ITALIA LAB) για την ανάπτυξη κατανεμημένων πολύ-πρακτορικών (multi-agent) εφαρμογών, πλήρως σύμφωνων με τις προδιαγραφές της FIPA (Foundation for Intelligent Physical Agents www.fipa.org). Το JADE είναι μια εφαρμογή ανοιχτού κώδικα (open source), πλήρως υλοποιημένη στη γλώσσα Java. Παρουσιάστηκε για πρώτη φορά το 2000 και έχει τέσσερις κινητήριες αρχές: i. Interoperability: Καθώς το JADE είναι σύμφωνο με τις προδιαγραφές της FIPA, οι πράκτορες του μπορούν να συνεργαστούν με οποιονδήποτε άλλο πράκτορα, με την προϋπόθεση ότι και αυτός είναι σύμφωνος με το ίδιο πρότυπο. ii. Uniformity and portability: Το JADE παρέχει ένα ομογενές σύνολο από APIs, τα οποία είναι ανεξάρτητα από το δίκτυο (underlying network) και την έκδοση της Java (Java version), παρέχοντας έτσι ομοιομορφία και φορητότητα. iii. Easy to use: Η πολυπλοκότητα του συστήματος είναι κρυμμένη πίσω από ένα απλό σύνολο APIs, κάνοντας έτσι το JADE ιδιαίτερα εύχρηστο. iv. Pay-as-you-go philosophy: Δεν χρειάζεται οι προγραμματιστές να χρησιμοποιούν όλα τα εργαλεία που παρέχει το JADE. Έτσι, δεν χρειάζεται να γνωρίζουν τίποτα για όλα αυτά, επιτρέποντας τους να ασχοληθούν μόνο με χαρακτηριστικά που τους ενδιαφέρουν. Έτσι, όπως γίνεται φανερό από τα παραπάνω, το JADE παρέχει τόσο μια πλατφόρμα για την εκτέλεση των πρακτόρων όσο και ένα σύνολο εργαλείων για την ανάπτυξη και τον έλεγχο αυτών των πρακτόρων. Επιπλέον, λόγω της φορητότητας, το κατανεμημένο περιβάλλον που παρέχεται από το JADE επιτρέπει τη συμμετοχή στην ίδια πλατφόρμα πολλών διαφορετικών υπολογιστών ακόμη και εάν έχουν διαφορετικό λειτουργικό σύστημα. Η μεγάλη αποδοχή του JADE στην ανάπτυξη πρακτόρων οφείλεται όχι μόνο στο γεγονός ότι παρέχει πλήρως υλοποιημένο το μοντέλο επικοινωνίας 2 πρακτόρων της FI- PA αλλά και στο ότι μέσω της αρχιτεκτονικής επικοινωνίας του επιτρέπει τον εύκολο, 2 το μοντέλο επικοινωνίας πρακτόρων της FIPA υποστηρίζει μεταξύ άλλων πρωτόκολλα αλληλεπίδρασης και μεταφοράς, οντολογίες, μηνύματα ACL (Agent Communication Language), γλώσσες περιεχομένου (content languages) και σχήματα κωδικοποίησης (encoding schemes).
αποδοτικό και ευέλικτο χειρισμό μηνυμάτων που ανταλλάσσουν οι πράκτορες. Η βασική αρχή για αυτό είναι η δημιουργία μιας ουράς μηνυμάτων ACL για κάθε πράκτορα και η δυνατότητα πρόσβασης σε αυτή με πολλούς διαφορετικούς τρόπους. Επιπρόσθετα, η μεταφορά των μηνυμάτων αυτών γίνεται με τρόπο απόλυτα διαφανή στο χρήστη, έτσι ο χρήστης έχει την δυνατότητα να επιλέγει κάθε φορά το καταλληλότερο πρωτόκολλο μεταφοράς, μεταξύ πχ. HTTP, Java RMI, IIOP κλπ. Τέλος, πρέπει να σημειωθεί ότι το JADE υποστηρίζει και διασύνδεση με το Jess, ένα Java κέλυφος που υλοποιεί το clips, επιτρέποντας έτσι τον έλεγχο των συλλογιστικών ικανοτήτων των πρακτόρων. Όλα αυτά τα χαρακτηριστικά έκαναν το JADE ένα δημοφιλές σύστημα τόσο μεταξύ των ερευνητών όσο και μεταξύ γνωστών εταιριών, μελών της FIPA.[11, 12, 15, 16, 17, 18] 4.3.2 Αρχιτεκτονική του JADE Εισαγωγικά να σημειωθεί ότι το JADE συμπεριλαμβάνει τόσο τις βιβλιοθήκες (πχ. κλάσεις της Java) που χρειάζονται για την ανάπτυξη των εφαρμογών όσο και το runtime περιβάλλον που παρέχει τις βασικές υπηρεσίες που είναι απαραίτητες για την ε- κτέλεση των πρακτόρων. Κάθε στιγμιότυπο του run-time ονομάζεται container (καθώς περιέχει τους πράκτορες). Το σύνολο όλων των containers ονομάζεται πλατφόρμα (platform) και παρέχει ένα ομογενές επίπεδο που αποκρύπτει από τους πράκτορες (όπως ε- πίσης και από τους προγραμματιστές) την πολυπλοκότητα και την ποικιλομορφία των επιμέρους συστατικών (υλικό, λειτουργικό σύστημα, δίκτυο, κλπ.). Το JADE καθώς είναι εξαιρετικά ευέλικτο, είναι κατάλληλο για περιβάλλοντα με περιορισμένους πόρους αλλά επιπλέον έχει ήδη ενσωματωθεί σε πολύπλοκες αρχιτεκτονικές, όπως είναι οι.net και J2EE. Τέλος, μπορεί ακόμη και να εγκατασταθεί σε κινητά τηλέφωνα, με την προϋπόθεση ότι υποστηρίζουν την Java. Εικόνα 4.6 : Αρχιτεκτονική του JADE. -31-
Όπως έχει ήδη αναφερθεί, το JADE είναι πλήρως σύμφωνο με τις προδιαγραφές της FIPA, οι οποίες επιπλέον ορίζουν και το γενικό μοντέλο μιας πλατφόρμας πρακτόρων, όπως φαίνεται στην Εικόνα 4.6. Επομένως, σύμφωνα με αυτό το μοντέλο το JADE α- ναλαμβάνει την μεταφορά και την διαχείριση των μηνυμάτων μεταξύ των πρακτόρων αλλά και τη διαχείριση του ίδιου του συστήματος. Τα βασικά χαρακτηριστικά αυτής της αρχιτεκτονικής είναι δύο, το AMS (Agent Management System) και το DF (Directory Facilitator), τα οποία αναλύονται στη συνέχεια. Εικόνα 4.7 : Γενικό μοντέλο μιας πλατφόρμας πρακτόρων. Το AMS (Agent Management System) είναι και το ίδιο ένας πράκτορας, που παρέχει ένα περιβάλλον με πολλές υπηρεσίες για τους πράκτορες που βρίσκονται στην πλατφόρμα. Ουσιαστικά, το AMS είναι ο πράκτορας που έχει τον εποπτικό έλεγχο της πλατφόρμας και παρέχει την υπηρεσία White Pages. Όπως είναι φυσικό κάθε πλατφόρμα έχει το δικό της AMS πράκτορα. Από την άλλη, το DF (Directory Facilitator) είναι επίσης πράκτορας και παρέχει την υπηρεσία Yellow Pages (είναι δηλαδή σαν ένας χρυσός οδηγός). Αναλυτικότερα, ο AMS είναι ο πράκτορας με τον οποίο πρέπει να επικοινωνήσει οποιοσδήποτε άλλος πράκτορας που θέλει να χρησιμοποιήσει την πλατφόρμα. Με αυτή την επικοινωνία ο νέος πράκτορας θα λάβει ένα έγκυρο AID (AID Identifier) κάνοντας έτσι register στην πλατφόρμα. Το AID είναι ένα μοναδικό προσδιοριστικό, που μεταξύ άλλων αποτελείται από ένα μοναδικό καθολικό όνομα. Το όνομα αυτό αποτελείται από το nickname του πράκτορα και την διεύθυνση του διαχωρισμένα από το σύμβολο (@). Για παράδειγμα, ένα τέτοιο όνομα είναι το RMA@IBM:1099/JADE. Όπως φαίνεται από το παράδειγμα, η διεύθυνση αποτελείται από τρία μέρη το όνομα του υπολογιστή (host), τη θύρα (port) και την κατάληξη /JADE. Επιπρόσθετα, ο AMS έχει και ακόμη
ένα ρόλο, ελέγχει πλήρως τον κύκλο ζωής κάθε πράκτορα που βρίσκεται στην πλατφόρμα. Ο κύκλος ζωής ενός πράκτορα παρουσιάζεται στην Εικόνα 4.7 και περιγράφεται αμέσως μετά. Εικόνα 4.8 : Ο κύκλος ζωής ενός πράκτορα. Αρχικά, ο πράκτορας δημιουργείται και καθώς δεν έχει κάνει register με τον AMS δεν μπορεί να επικοινωνήσει με κανέναν άλλο πράκτορα. Όταν αρχικοποιείται, κάνει δηλαδή register και παίρνει το AID του αποκτά πλήρη λειτουργικότητα και τίθεται στην κατάσταση active. Στην κατάσταση αυτή μπορεί να εκτελεί κάποια ενέργεια (πχ. αποστολή μηνύματος) ή να κάνει κάποια επεξεργασία (συλλογιστική). Σε οποιαδήποτε χρονική στιγμή ο πράκτορας μπορεί να τεθεί είτε στην κατάσταση waiting (περιμένοντας να συμβεί κάποια ενέργεια) είτε στην κατάσταση suspended (όπου αναστέλλεται κάθε συμπεριφορά του). Τέλος, όταν ο πράκτορας βρίσκεται στην κατάσταση transit σημαίνει ότι μετακινείται και αλλάζει πλατφόρμα. Αντίστοιχα, όσον αφορά στον DF, κάθε πράκτορας που παρέχει κάποια υπηρεσία πρέπει να κάνει register με έναν ή περισσότερους DF πράκτορες, ώστε να δημοσιεύσει την υπηρεσία του. Κάθε DF πράκτορας κρατάει μια λίστα με όλες τις διαθέσιμες υπηρεσίες καθώς και τα αντίστοιχα AID των πρακτόρων που τις παρέχουν. Με αυτό τον τρόπο, ένας τρίτος πράκτορας που χρειάζεται κάποια υπηρεσία, στέλνει ένα μήνυμα στον DF πράκτορα και εκείνος του επιστρέφει τα AID των πρακτόρων που παρέχουν αυτή την υπηρεσία. Γνωρίζοντας πλέον τα AID μπορεί να επικοινωνήσει με όποιον πράκτορα επιθυμεί χωρίς να χρειάζεται πλέον η μεσολάβηση του DF πράκτορα. Η διαδικασία αυτή παρουσιάζεται στην παρακάτω εικόνα. -33-
Εικόνα 4.9 : Η υπηρεσία Yellow Pages. Τέλος, στο σημείο αυτό αξίζει να επισημανθεί ο κατανεμημένος χαρακτήρας που παρουσιάζει η αρχιτεκτονική του JADE. Κατανεμημένος χαρακτήρας, συνοπτικά σημαίνει ότι μια πλατφόρμα μπορεί να κατανέμεται σε πολλούς διαφορετικούς υπολογιστές (hosts). Αυτό σε συνδυασμό με όλα τα παραπάνω παρουσιάζονται σε ένα πιθανό σενάριο στην Εικόνα 4.9.[11, 12, 15, 16, 17, 18] Εικόνα 4.10 : Ένα τυπικό σενάριο στο Jade. 4.3.3 Η Οργάνωση FIPA Η FIPA (Foundation for Intelligent, Physical Agents) ιδρύθηκε το 1996 ως μια διεθνής μη κερδοσκοπική οργάνωση με στόχο την ανάπτυξη προτύπων για την τεχνολογία πρακτόρων (software agent technology). Εκείνη την εποχή οι ευφυείς πράκτορες ήταν γνωστοί μόνο στην ακαδημαϊκή κοινότητα, έτσι η FIPA αποφάσισε να αναπτύξει τα πρότυ-
πα που θα έκαναν τους πράκτορες χρήσιμους για ένα μεγάλο αριθμό εφαρμογών και επομένως χρήσιμους για τον βιομηχανικό εμπορικό κόσμο. Οπότε, τελικά, ο πυρήνας της FIPA δομείται από τις εξής βασικές αρχές: Οι τεχνολογίες πρακτόρων παρέχουν μια νέα διέξοδο για την επίλυση παλιών και νέων προβλημάτων. Κάποιες από αυτές τις τεχνολογίες (agent technologies) έχουν ήδη φτάσει σε ένα καλό επίπεδο ωριμότητας. Για να μπορέσουν να χρησιμοποιηθούν ευρέως κάποιες τεχνολογίες πρέπει να προτυποποιηθούν. Η προτυποποίηση των εσωτερικών μηχανισμών των ίδιων των πρακτόρων δεν αποτελεί πρωταρχικό στόχο, παρά μόνο η υποδομή και η γλώσσα που απαιτείται για μια ανοιχτή διαλειτουργικότητα (interoperation). Φυσικά, κατά την διάρκεια όλων αυτών των ετών προτάθηκαν διάφορες ιδέες σχετικές με τους πράκτορες, άλλες τελικά προτυποποιήθηκαν, άλλες βρίσκονται υπό ανάπτυξη και άλλες εντέλει απορρίφθηκαν. Από όλες, όμως, αυτές τις ιδέες τρεις ξεχώρισαν και αποτελούν το κύριο ενδιαφέρον της FIPA, η επικοινωνία των πρακτόρων (agent communication), η διαχείριση πρακτόρων (agent management) και η αρχιτεκτονική τους (agent architecture).[11, 21] 4.4 JESS 4.4.1 Εισαγωγή Το Jess [24] είναι μια μηχανή κανόνων (rule engine) και επιπλέον μια ιδιαίτερη γλώσσα (scripting language) που αναπτύχθηκε στα εργαστήρια Sandia National Laboratories. Είναι υλοποιημένο σε Java και γι αυτό είναι κατάλληλο να χρησιμοποιηθεί με οποιοδήποτε σύστημα που βασίζεται στη γλώσσα αυτή (java based). Η αρχική έμπνευση για την ανάπτυξη του ήταν το κέλυφος CLIPS (expert system shell), αυτός είναι και ο λόγος που οι αντίστοιχες γλώσσες (rule languages jess/clips) μοιάζουν τόσο πολύ. Ωστόσο, το jess, αντίθετα με το CLIPS, είναι δυναμικό και προσανατολισμένο στη γλώσσα Java (Java centric), παρέχοντας έτσι άμεσα πλήρη πρόσβαση σε όλα τα χαρακτηριστικά της. Τελικά, το Jess είναι ένα ισχυρό εργαλείο, το οποίο μπορεί να χρησιμοποιηθεί σε ένα μεγάλο εύρος εφαρμογών με πολύ καλή απόδοση. Το ιδιαίτερο που το κάνει τόσο -35-
ευέλικτο είναι το γεγονός ότι μπορεί να συνεργαστεί το ίδιο καλά με εφαρμογές που είναι πλήρως υλοποιημένες με την γλώσσα κανόνων του (Jess rule language) αλλά και με εφαρμογές που είναι υλοποιημένες εξ ολοκλήρου στη γλώσσα Java. Επιπλέον, μπορεί να χρησιμοποιηθεί το ίδιο αποδοτικά και με εφαρμογές που αναπτύχθηκαν με ο- ποιονδήποτε συνδυασμό των παραπάνω, δηλαδή της γλώσσας Jess και της Java.[19, 20] 4.4.2 Αρχιτεκτονική Όπως έχει ήδη αναφερθεί το Jess μπορεί να χρησιμοποιηθεί σε πολλές διαφορετικές εφαρμογές και με πολλούς διαφορετικούς τρόπους, ανάλογα με την ανάγκη που παρουσιάζεται στο εκάστοτε πρόβλημα. Έτσι, το σημαντικότερο και πρωταρχικό ζήτημα σε κάθε εφαρμογή που αναπτύσσεται με τη βοήθεια του Jess είναι η επιλογή της κατάλληλης αρχιτεκτονικής, μεταξύ των άπειρων πραγματικά εναλλακτικών. Ένας τρόπος για να οργανωθούν οι διάφορες εναλλακτικές, όπως αναφέρουν και οι ίδιοι οι δημιουργοί του, είναι με μια λίστα. Μια τέτοια λίστα, για παράδειγμα, διατάσσεται με βάση το ποσοστό συμμετοχής της γλώσσας Java στην ανάπτυξη της εφαρμογής. Στην εικόνα 4.10 που ακολουθεί παρουσιάζεται η λίστα αυτή με αυξητική διάταξη. Εικόνα 4.11 : Λίστα εναλλακτικών αρχιτεκτονικών για την χρήση του Jess.
Οι πολυάριθμες εναλλακτικές, οδήγησαν τελικά και σε υλοποίηση πολυάριθμων εφαρμογών. Οι εφαρμογές που αναπτύχθηκαν με τη βοήθεια του Jess δεν είναι μόνο ακαδημαϊκής φύσης αλλά και εμπορικής. Για παράδειγμα, μεταξύ αυτών των εμπορικών εφαρμογών είναι έμπειρα συστήματα (expert systems), πράκτορες (agents) ακόμη και παιχνίδια (games). Στο σημείο αυτό είναι σημαντικό να τονισθεί η διπλή φύση του Jess. Από την μία είναι μια μηχανή κανόνων (rule engine) και από την άλλη είναι μια γλώσσα προγραμματισμού (Jess language). Στην πρώτη περίπτωση, αυτό που κάνει είναι να εφαρμόσει τους κανόνες ενός προγράμματος (rule based program) πάνω στα κατάλληλα δεδομένα. Οι κανόνες αυτοί μπορεί να είναι εκατοντάδες ή ακόμη και χιλιάδες αλλά το Jess είναι γρήγορο και επομένως η απόδοση του είναι καλή. Στη δεύτερη περίπτωση πρόκειται για μια προγραμματιστική γλώσσα γενικού σκοπού, που έχει την δυνατότητα άμεσης πρόσβασης σε όλες τις κλάσεις και τις βιβλιοθήκες της Java. Πλεονέκτημα της είναι ότι δεν χρειάζεται μεταγλώττιση, σε αντίθεση με τον κώδικα της γλώσσας Java, έτσι μπορεί να εκτελεστεί άμεσα επιτρέποντας την επαυξητική ανάπτυξη μεγάλων προγραμμάτων. Επιπλέον, ένα ακόμη σημαντικό πλεονέκτημα της είναι ότι μπορεί να επεκταθεί εύκολα με εντολές γραμμένες είτε σε Java είτε σε Jess.[19, 20] 4.4.3 Η αλληλεπίδραση των γλωσσών Jess και Java Η γλώσσα Jess είναι γενικού σκοπού και έχει απλό και εύκολο συντακτικό, παρόμοιο με αυτό του CLIPS. Αν και το συντακτικό της είναι διαφορετικό από αυτό της γλώσσας Java συνεργάζεται αποδοτικά μαζί της και παρουσιάζει ορισμένες ομοιότητες σε βασικά χαρακτηριστικά. Δεδομένου ότι έχει όλα τα χαρακτηριστικά μιας προγραμματιστικής γλώσσας και ότι δεν χρειάζεται μεταγλώττιση ο κώδικας της, είναι μια εξαιρετικά γρήγορη γλώσσα. Όσον αφορά στη γλώσσα Java η ομοιότητα τους περιορίζεται σε λίγα βασικά χαρακτηριστικά, όπως είναι τα σύμβολα (symbols) που μοιάζουν με τους προσδιοριστές (identifiers) της Java, ή τα λίγα ειδικά σύμβολα της Jess που αντιστοιχούν σε συγκεκριμένες δεσμευμένες λέξεις της Java, όπως για παράδειγμα το σύμβολο nil που είναι το αντίστοιχο null της Java. Ωστόσο, αυτό που ουσιαστικά παρουσιάζει ενδιαφέρον είναι η ικανότητα της να καλεί οποιαδήποτε μέθοδο της Java μέσα από τον κώδικα της. Στην πραγματικότητα, η αλληλεπίδραση Jess Java είναι το δυνατό σημείο του Jess και αυτό που το έκανε αποδεκτό και χρήσιμο για την κοινότητα των προγραμματιστών. -37-
Έτσι, από τη μια μέσα από τον κώδικα Java μπορεί να προσπελαστεί κάθε στοιχείο της Jess βιβλιοθήκης και από την άλλη η γλώσσα Jess έχει πλήρη πρόσβαση στην Java. Αποτέλεσμα όλων αυτών είναι να μπορούν να δημιουργηθούν αντικείμενα της Java, να καλούνται οι μέθοδοι τους και γενικά να πραγματοποιείται οποιαδήποτε αλληλεπίδραση με την Java χωρίς να γραφτεί καθόλου Java κώδικας. Χρησιμοποιώντας την γλώσσα Jess είναι επομένως δυνατό να δημιουργηθούν τμήματα Java εφαρμογών ή ακόμη και ολόκληρες εφαρμογές. Το όφελος της χρήσης κώδικα Jess έναντι του κώδικα Java είναι το κέρδος σε χρόνο. Δεν είναι μόνο ότι ο κώδικας Jess εκτελείται άμεσα ενώ αντίστοιχα αυτός της Java πρέπει πρώτα να μεταγλωττιστεί, είναι και ότι στο Jess μπορεί να εκτελεστεί ακόμη και μια μόνο γραμμή κώδικα ενώ στην Java πρέπει να γραφτεί ολόκληρο το πρόγραμμα, να μεταγλωττιστεί και στη συνέχεια να εκτελεσθεί. Επιπλέον, σε περίπτωση προσθήκης νέων λειτουργιών, ο Java κώδικας θα πρέπει να αναδιοργανωθεί ενώ ο Jess όχι.[19, 20]
5 Υλοποίηση 5.1 Υπηρεσία Αναιρέσιμης Συλλογιστικής 5.1.1 Ο Ευφυής Πράκτορας Reasoner Όπως έχει ήδη αναφερθεί, ένας από τους στόχους της εργασίας είναι η παροχή μιας υ- πηρεσίας αναιρέσιμης συλλογιστικής (defeasible reasoning service) μέσω ενός ευφυούς πράκτορα, του Reasoner. Ο πράκτορας αυτός, υλοποιήθηκε εξ ολοκλήρου στη γλώσσα προγραμματισμού Java, η οποία είναι και η γλώσσα υλοποίησης των πρακτόρων στο πλαίσιο JADE, το περιβάλλον δηλαδή της παρούσας εφαρμογής. Δουλειά του Reasoner είναι να δέχεται αιτήματα από άλλους πράκτορες που επιθυμούν να εφαρμοστεί η αναιρέσιμη λογική σε δεδομένα που κατέχουν και να επιστρέφει σε αυτούς το σωστό αποτέλεσμα. Ο Reasoner, επομένως και η υπηρεσία που παρέχει, είναι διαθέσιμος μέσα από το περιβάλλον του JADE, όπως φαίνεται και στην Εικόνα 5.1 που ακολουθεί. Εικόνα 5.1 : Ο Reasoner.στο περιβάλλον του JADE. Η επαφή με τον πράκτορα μπορεί, κατά περίπτωση, να γίνει με διάφορους τρόπους, η επικοινωνία όμως μαζί του γίνεται μονάχα με μηνύματα ACL συγκεκριμένου τύπου. Ένα νέο αίτημα, για να ληφθεί υπόψη, πρέπει οπωσδήποτε να είναι τύπου REQUEST διαφορετικά ο Reasoner θα το αγνοήσει και θα επιστρέψει στον αποστολέα ένα ενημερωτικό μήνυμα τύπου NOT_UNDERSTOOD. Στην περίπτωση επιτυχούς αιτήματος -39-
(τύπου REQUEST) ο πράκτορας μετά την ολοκλήρωση της διαδικασίας επιστρέφει το αποτέλεσμα μέσω μηνύματος τύπου INFORM. Εικόνα 5.2 : Input Output του πράκτορα Reasoner. Στρατηγικής σημασίας είναι το περιεχόμενο αυτών των μηνυμάτων, το οποίο πρέπει να είναι αποκλειστικά η διεύθυνση (path) στην οποία θα βρίσκεται διαθέσιμη η βάση κανόνων (rulebase). Ουσιαστικά, με κάθε αίτηση αυτό που κοινοποιείται στον Reasoner είναι το σημείο από το οποίο θα παραλάβει τα δεδομένα του πελάτη για επεξεργασία. Οι λόγοι της αποστολής μονάχα της διεύθυνσης και όχι για παράδειγμα του συνόλου των δεδομένων είναι μεταξύ άλλων η βελτιστοποίηση της απόδοσης σε χρόνο και χώρο. Πρέπει να σημειωθεί ότι, η ίδια πολιτική ακολουθείται και κατά την αποστολή του τελικού αποτελέσματος. Παράδειγμα των παραπάνω παρουσιάζεται στην Εικόνα 5.3.
Εικόνα 5.3 : Ανταλλαγή κατάλληλων ACL μηνυμάτων. Από τη στιγμή που θα ληφθεί ένα αίτημα μέχρι την στιγμή που θα αποσταλεί πίσω το αποτέλεσμα πραγματοποιείται μια διαδικασία διακριτών βημάτων. Αρχικά, εφόσον το μήνυμα ACL που λήφθηκε είναι τύπου REQUEST, ο πράκτορας (Reasoner) παίρνει το περιεχόμενο του και χρησιμοποιώντας την διεύθυνση που βρίσκει εκεί λαμβάνει τα δεδομένα της βάσης κανόνων (rulebase). Πρέπει να σημειωθεί ότι για κάθε νέο αίτημα δημιουργείται και ένα νέο project. Έτσι, όταν ο πράκτορας ετοιμάσει το φάκελο με τα κατάλληλα δεδομένα, καλεί το σύστημα DR-DEVICE για να αναλάβει το συγκεκριμένο θέμα. Όταν, ολοκληρώσει την επεξεργασία των δεδομένων, το DR-DEVICE επιστρέφει το αποτέλεσμα με τη μορφή ενός RDF εγγράφου. Έπειτα, ο Reasoner δημιουργεί ένα αντίγραφο του παραπάνω εγγράφου, σε χώρο ειδικά διαθέσιμο για τον σκοπό αυτό, και στέλνει την μοναδική αυτή διεύθυνση μέσω ACL μηνύματος, τύπου INFORM, πίσω στον αρχικό πράκτορα. Έτσι, ο ενδιαφερόμενος πράκτορας μπορεί να ανακτήσει τα δεδομένα του αποτελέσματος από το σημείο που του υπέδειξε ο Reasoner. 5.1.2 Τρόποι Επαφής με την Υπηρεσία Στην προηγούμενη ενότητα παρουσιάστηκε αναλυτικά ο ευφυής πράκτορας Reasoner και η υπηρεσία αναιρέσιμης συλλογιστικής που παρέχει. Όπως, επίσης, είναι γνωστό το πλαίσιο JADE παρέχει μια πληθώρα δυνατοτήτων, μεταξύ αυτών η απομακρυσμένη επικοινωνία πρακτόρων και η υπηρεσία Yellow Pages. Έτσι, οποιοσδήποτε πράκτορας επιθυμεί να κάνει χρήση της υπηρεσίας μπορεί να έρθει σε επαφή με τον Reasoner με ορισμένους απλούς αλλά εντελώς διαφορετικούς τρόπους, ωστόσο σε κάθε περίπτωση η επικοινωνία μεταξύ των πρακτόρων γίνεται πάντοτε με την ανταλλαγή μηνυμάτων ACL. Οι τρεις πιθανότερες περιπτώσεις παρουσιάζονται στην συνέχεια. Στην απλούστερη περίπτωση ο ενδιαφερόμενος πράκτορας βρίσκεται στην ίδια πλατφόρμα με τον πράκτορα Reasoner. Το μόνο που έχει να κάνει σε αυτή την περίπτωση είναι μέσω του κατάλληλου ACL μηνύματος να κοινοποιήσει το αίτημα του και να περιμένει την απάντηση. Παράδειγμα τέτοιας περίπτωσης, με τον Reasoner και δύο ενδιαφερόμενους πράκτορες, παρουσιάζεται στην Εικόνα 5.4 που ακολουθεί. -41-
Εικόνα 5.4 : Όλοι οι πράκτορες στην ίδια πλατφόρμα του JADE. Μια περισσότερο σύνθετη περίπτωση αλλά εξίσου λειτουργική είναι η περίπτωση όπου ο ενδιαφερόμενος πράκτορας βρίσκεται σε κάποια άλλη απομακρυσμένη πλατφόρμα. Σε αυτή την περίπτωση για να επικοινωνήσει με τον Reasoner πρέπει πρώτα να αποκτήσει πρόσβαση στην πλατφόρμα που βρίσκεται αυτός (remote access) και στη συνέχεια να ζητήσει την βοήθεια του. Ο πιο απλός τρόπος για να αποκτήσει πρόσβαση είναι μέσω της επιλογής "add platform via AMS AID" που παρέχει το JADE. Η χρήση του, όμως, προϋποθέτει τη γνώση της διεύθυνσης της πλατφόρμας που βρίσκεται ο Reasoner καθώς και του ονόματος του AMS πράκτορα αυτής της πλατφόρμας. Ενδεικτικό παράδειγμα παρουσιάζεται στην επόμενη Εικόνα. Εικόνα 5.5 : Διαδικασία πρόσβασης απομακρυσμένης πλατφόρμας. Το αποτέλεσμα της παραπάνω διαδικασίας παρουσιάζεται παρακάτω. Όπως είναι εμφανές, πλέον, κάθε πράκτορας της αρχικής πλατφόρμας μπορεί να επικοινωνήσει με
οποιονδήποτε πράκτορα της απομακρυσμένης πλατφόρμας, σαν να βρίσκονται όλοι στην ίδια εικονική πλατφόρμα. Έτσι, όπως και στην προηγούμενη περίπτωση μέσα από απλά ACL μηνύματα πραγματοποιείται η επικοινωνία με τον Reasoner. Εικόνα 5.6 : Περίπτωση απομακρυσμένης πλατφόρμας. Η τρίτη περίπτωση αφορά την υπηρεσία Yellow Pages. Για την περίπτωση που κάποιος πράκτορας επιθυμεί να εντοπίσει μια υπηρεσία αναιρέσιμης συλλογιστικής, ο Reasoner καταχωρείται στον αρμόδιο DF πράκτορα. Η διαδικασία της υπηρεσίας Yellow Pages εκτελείται όπως ορίζεται από το JADE και στη συνέχεια η παροχή της υπηρεσίας συλλογιστικής από τον Reasoner γίνεται όπως και στις προηγούμενες περιπτώσεις, μέσω μηνυμάτων ACL. Να σημειωθεί ότι η υπηρεσία καταχωρείται με το όνομα "Defeasible-Reasoning-Service". Επισκόπιση του DF πράκτορα παρουσιάζεται στη συνέχεια όπου φαίνεται και η καταχώρηση της υπηρεσίας του πράκτορα Reasoner. Εικόνα 5.7 : Περίπτωση αναζήτησης υπηρεσίας μέσω Yellow Pages. -43-
5.2 Σενάριο Μεσιτείας 5.2.1 Συμμετέχοντες Στην ενότητα αυτή παρουσιάζεται ένα πλήρες παράδειγμα εφαρμογής της αναιρέσιμης λογικής σε ένα σενάριο μεσιτείας (brokering trade scenario). Ειδικότερα, πρόκειται για μια διαδικασία ενοικίασης διαμερίσματος (apartment renting), μια δραστηριότητα δύσκολη και χρονοβόρα. Στο συγκεκριμένο σενάριο 3 εμπλέκονται τρία ανεξάρτητα μέρη, ο πελάτης (customer), ο μεσίτης (broker) και ο πράκτορας που παρέχει την υπηρεσία συλλογιστικής (reasoner). Αυτά τα τρία ανεξάρτητα μέρη αντιπροσωπεύονται από ευφυείς πράκτορες, οι οποίοι επικοινωνούν μεταξύ τους, δημιουργώντας ένα πολυ πρακτορικό σύστημα (Multi-Agent System MAS). Το σύστημα αυτό υλοποιήθηκε στο πλαίσιο που χρησιμοποιείται στην παρούσα εργασία, δηλαδή το JADE. O πελάτης (customer), ο οποίος για παράδειγμα ονομάζεται Carlo, είναι ένας πιθανός ενοικιαστής που επιθυμεί να νοικιάσει ένα διαμέρισμα. Ο Carlo όμως έχει κάποιες απαιτήσεις και θέλει το διαμέρισμα να τις ικανοποιεί, τέτοιες απαιτήσεις για παράδειγμα είναι το μέγεθος του διαμερίσματος, η τοποθεσία και ο όροφος. Επιπλέον, όμως έχει και κάποιες προτιμήσεις, οι οποίες θα πρέπει τελικά να ληφθούν και αυτές υπόψη για να βρεθεί το κατάλληλο διαμέρισμα. Ο μεσίτης (broker), από την άλλη, έχει στην βάση δεδομένων του έναν αριθμό από διαθέσιμα διαμερίσματα. Δουλειά του, λοιπόν, είναι να συνδυάσει τις απαιτήσεις του πελάτη (Carlo) με τα χαρακτηριστικά κάθε διαθέσιμου διαμερίσματος, έτσι ώστε να του προτείνει τελικά όσα από αυτά είναι κατάλληλα. Τέλος, ο reasoner είναι μια ανεξάρτητη υπηρεσία, η οποία έχει την δυνατότητα να εφαρμόζει τους κανόνες της αναιρέσιμης συλλογιστικής σε βάσεις κανόνων που διέπονται από την αναιρέσιμη λογική, παράγοντας το τελικό αποτέλεσμα σε RDF μορφή. Η είσοδος (input) της υπηρεσίας είναι, δηλαδή, μια βάση κανόνων και το αποτέλεσμα (output) είναι ένα RDF αρχείο. 5.2.2 Απαιτήσεις και Προτιμήσεις του Carlo Ο Carlo, όπως αναφέρθηκε, έχει μια σειρά από απαιτήσεις και προτιμήσεις για το διαμέρισμα που αναζητά. Οι επιθυμίες του αυτές παρουσιάζονται αναλυτικά παρακάτω: 3 Υιοθετήθηκε από το [2].
1. Επιθυμεί το διαμέρισμα να είναι τουλάχιστον 45m 2 και να έχει τουλάχιστον 2 υπνοδωμάτια. Εάν το διαμέρισμα βρίσκεται στον 3 ο όροφο ή και ψηλότερα πρέπει οπωσδήποτε να έχει ανελκυστήρα. Επιπλέον, επιθυμεί να επιτρέπονται και τα κατοικίδια. 2. Είναι διατεθειμένος να πληρώσει 300$ για ένα κεντρικό διαμέρισμα 45m 2 και 250$ για ένα παρόμοιο στα προάστια. Επιπλέον, είναι διατεθειμένος να πληρώσει 5$ επιπλέον για κάθε τετραγωνικό μέτρο (m 2 ) για ένα μεγαλύτερο διαμέρισμα και 2$ για κάθε τετραγωνικό μέτρο (m 2 ) κήπου. Συνολικά, δεν μπορεί να πληρώσει περισσότερα από 400$. 3. Τέλος, εάν είχε περισσότερες από μία επιλογές θα προτιμούσε την φθηνότερη. Δεύτερη στη σειρά των προτιμήσεων του είναι η ύπαρξη κήπου ενώ τελευταία στις προτιμήσεις του είναι η ύπαρξη επιπλέον χώρου. Όλα αυτά, όμως, για να χρησιμοποιηθούν θα πρέπει πρώτα να μετατραπούν από την φυσική γλώσσα σε μια κατάλληλη μορφή, δηλαδή να εκφραστούν σε αναιρέσιμη λογική. Στην Εικόνα 5.1 παρουσιάζεται ένα τμήμα από το έγγραφο RuleML που περιέχει τις απαιτήσεις του Carlo. Όπως φαίνεται και στο τμήμα του εγγράφου που παρατίθεται για κάθε ιδιότητα των διαμερισμάτων, παραδείγματος χάρη το μέγεθος ή ο αριθμός των υπνοδωματίων, χρησιμοποιείται ένα συγκεκριμένο κατηγόρημα. Οι οκτώ βασικές ιδιότητες, επομένως, αντιστοιχούν σε οκτώ κατηγορήματα, τα οποία είναι τα εξής: size(x,y), όπου y είναι το μέγεθος του διαμερίσματος x (σε m 2 ) bedrooms(x,y), όπου το διαμέρισμα x έχει y υπνοδωμάτια price(x,y), όπου y είναι η τιμή του διαμερίσματος x floor(x,y), όπου το διαμέρισμα x είναι στον y o όροφο gardensize(x,y), όπου το διαμέρισμα x έχει ένα κήπο μεγέθους y lift(x), σημαίνει ότι υπάρχει ανελκυστήρας pets(x), σημαίνει ότι επιτρέπονται τα κατοικίδια central(x), σημαίνει ότι το διαμέρισμα x βρίσκεται σε κεντρική τοποθεσία -45-
Εικόνα 5.8 : Τμήμα RuleML εγγράφου για τις απαιτήσεις του Carlo. Εκτός, όμως, από τα κατηγορήματα που περιγράφουν τις βασικές ιδιότητες των διαμερισμάτων υπάρχουν και άλλα δύο ιδιαίτερα σημαντικά για την σύνταξη των κανόνων. Τα κατηγορήματα αυτά είναι τα: acceptable(x), που σημαίνει ότι το διαμέρισμα x ικανοποιεί τις απαιτήσεις του offer(x,y), που σημαίνει ότι είναι διατεθειμένος να πληρώσει y$ για το x Οι απαιτήσεις του Carlo τελικά, με τη βοήθεια όλων των παραπάνω κατηγορημάτων, αντιπροσωπεύονται μέσω μιας σειράς κανόνων. Ο πρωταρχικός κανόνας θεωρεί ότι όλα τα διαμερίσματα αρχικά είναι αποδεκτά, r1: => acceptable(x). Οι κανόνες που ακολουθούν, ωστόσο, καθορίζουν πότε ένα διαμέρισμα δεν είναι αποδεκτό, δηλαδή ό-
ταν δεν ικανοποιεί τις απαιτήσεις του Carlo. Οι κανόνες αυτοί, εξαιρέσεις ουσιαστικά του πρώτου κανόνα (r1), είναι οι: r2: bedrooms(x,y), Y < 2 => acceptable(x) r3: size(x,y), Y < 45 => acceptable(x) r4: pets(x) => acceptable(x) r5: floor(x,y), Y > 2, lift(x) => acceptable(x) r6: price(x,y), Y > 400 => acceptable(x) με r2 > r1, r3 > r1, r4 > r1, r5 > r1 και r6 > r1. Ένα άλλο σημαντικό ζήτημα είναι το ποσό που είναι διατεθειμένος να πληρώσει ο Carlo, οι δύο κανόνες που σχετίζονται με αυτό είναι οι: r7: size(x,y), Y 45, garden(x,z), central(x) => offer(x, 300 + 2Z + 5(Y 45)) r8: size(x,y), Y 45, garden(x,z), central(x) => offer(x, 250 + 2Z + 5(Y 45)) Όπως είναι λοιπόν φυσικό, για να θεωρηθεί κατάλληλο ένα διαμέρισμα πρέπει το ποσό που μπορεί να προσφέρει ο Carlo να είναι τουλάχιστον όσο και το ενοίκιο που ζητά ο ιδιοκτήτης. Έτσι, ο κανόνας r9: offer(x,y), price(x,z), Y < Z => acceptable(x) είναι σαφώς πιο ισχυρός από τον αρχικό, r9 > r1. Πέρα όμως από τις απαιτήσεις ο Carlo έχει και κάποιες προτιμήσεις, οι οποίες όταν ληφθούν υπόψη θα μειώσουν ακόμη περισσότερο τον αριθμό των κατάλληλων διαμερισμάτων. Οι προτιμήσεις του, όπως έχει ήδη αναφερθεί, βασίζονται στην τιμή και το μέγεθος του διαμερίσματος καθώς και στην ύπαρξη κήπου. Οι σχετικοί κανόνες και οι σχέσεις προτεραιοτήτων που τους διέπουν είναι οι εξής: r10: cheapest(x) => rent(x) r11: cheapest(x), largestgarden(x) => rent(x) r12: cheapest(x), largestgarden(x), largest(x) => rent(x) r11 > r10, r12 > r10, r12 > r11 5.2.3 Διαθέσιμα Διαμερίσματα Τα διαθέσιμα διαμερίσματα που έχει στη διάθεση του ο μεσίτης βρίσκονται σε ένα RDF έγγραφο, μέρος του οποίου παρατίθεται στην Εικόνα που ακολουθεί. Κάθε διαμέρισμα, όπως φαίνεται, είναι και ένας ξεχωριστός RDF πόρος και κάθε ιδιότητα του διαμερίσματος είναι αντίστοιχα ιδιότητα του πόρου. Να σημειωθεί ότι ολόκληρο το έγγραφο είναι διαθέσιμο στην διεύθυνση http://lpis.csd.auth.gr/systems/dr-device.html. -47-
Εικόνα 5.9 : Τμήμα RDF εγγράφου για τα διαθέσιμα διαμερίσμα. 5.2.4 Αναλυτική Περιγραφή Σεναρίου Ο Carlo, όπως έχει ήδη αναφερθεί, επιθυμεί να ενοικιάσει ένα διαμέρισμα, έτσι αναθέτει στον πράκτορα του την διεκπεραίωση της απαιτούμενης συναλλαγής. Ο πράκτορας του Carlo, λοιπόν, ξεκινά μια διαδικασία για να φέρει εις πέρας την αποστολή του. Πρώτη ενέργεια, επομένως, του πράκτορα είναι να κοινοποιήσει στον μεσίτη (broker), ουσιαστικά στον πράκτορα του μεσίτη, τις απαιτήσεις του Carlo ζητώντας πίσω όλα τα διαθέσιμα διαμερίσματα που ικανοποιούν τις απαιτήσεις αυτές. Έτσι, με την αποστολή του κατάλληλου μηνύματος από τον πράκτορα του Carlo στον πράκτορα του μεσίτη ολοκληρώνεται το πρώτο (1) βήμα της διαδικασίας. Από την πλευρά του, ο μεσίτης έχει μια λίστα με όλα τα διαθέσιμα διαμερίσματα αλλά δεν μπορεί να συνδυάσει τις ιδιότητες τους με τις απαιτήσεις του πελάτη. Έτσι, για να κατορθώσει να προτείνει τα κατάλληλα διαμερίσματα ζητά την βοήθεια ενός α- νεξάρτητου μέρους, ουσιαστικά μιας ανεξάρτητης υπηρεσίας συλλογιστικής. Η υπηρεσία αυτή, όπως περιγράφηκε σε προηγούμενη ενότητα, παρέχεται από έναν ειδικό πράκτορα, τον Reasoner, ο οποίος χρησιμοποιώντας την μηχανή αναιρέσιμης συλλογιστικής DR-DEVICE επιστρέφει την σωστή απάντηση στο πρόβλημα του μεσίτη. Έτσι, ο
μεσίτης (broker), στο δεύτερο (2) βήμα, στέλνει τις απαιτήσεις του πελάτη του και τη λίστα με τα διαθέσιμα διαμερίσματα, περιμένοντας την απάντηση του Reasoner. Μόλις ο Reasoner λάβει ένα αίτημα, καλεί την εφαρμογή DR-DEVICE εφοδιάζοντας την με τα δεδομένα του αιτήματος. Αυτή με τη σειρά της επεξεργάζεται τα δεδομένα και επιστρέφει ένα RDF έγγραφο, το οποίο περιέχει τελικά τα διαμερίσματα που ικανοποιούν όλες τις απαιτήσεις. Όταν το αποτέλεσμα είναι έτοιμο, ο Reasoner ενημερώνει τον μεσίτη και αυτός με τη σειρά του ενημερώνει τον πελάτη. Έτσι, τα βήματα τρία (3) και τέσσερα (4) της διαδικασίας ολοκληρώνονται. Τελικά, ο πελάτης λαμβάνει την απάντηση που ζητά, μια λίστα με τα κατάλληλα διαμερίσματα. Ωστόσο, είναι εξαιρετικά πιθανό η λίστα αυτή να περιέχει περισσότερα από ένα κατάλληλα διαμερίσματα και, έτσι, ο πελάτης πρέπει να διαλέξει ποιο από αυτά προτιμά. Για ακόμη μια φορά, λοιπόν, πρέπει να ζητήσει βοήθεια. Στο πέμπτο (5) βήμα της διαδικασίας, στέλνει ένα αίτημα στον Reasoner αυτή τη φορά, κοινοποιώντας του τη λίστα των διαμερισμάτων που έχει πλέον στην διάθεση του και τις προτιμήσεις του. Όπως είναι αναμενόμενο, ο Reasoner κάνει για ακόμα μια φορά τη δουλειά του, καλεί την εφαρμογή DR-DEVICE και λαμβάνει από αυτή το αποτέλεσμα, δηλαδή το καταλληλότερο διαμέρισμα. Έτσι, ο Reasoner, στο έκτο (6) κατά σειρά βήμα, απαντά και προτείνει την καλύτερη συναλλαγή για τον πελάτη. Τελικά, η διαδικασία ολοκληρώνεται και ο Carlo μπορεί, πλέον, με ασφάλεια να πραγματοποιήσει την καλύτερη δυνατή συναλλαγή, βασισμένη τόσο στις απαιτήσεις του όσο και στις προτιμήσεις του. Όλη αυτή η διαδικασία διεξάγεται σε έξι διακριτά βήματα, όπως αυτά αναλύθηκαν παραπάνω, και παρουσιάζεται γραφικά στη εικόνα που ακολουθεί. Εικόνα 5.10 : Τα έξι διακριτά βήματα του σεναρίου μεσιτείας. -49-
5.2.5 Λεπτομέρειες Υλοποίησης Στο σενάριο αυτό, λοιπόν, εμπλέκονται τρία ανεξάρτητα μέρη, ο Customer, ο Broker και ο Reasoner.Οι δύο πρώτοι, ο Customer και ο Broker υλοποιήθηκαν εντελώς διαφορετικά από τον τρίτο, ο οποίος και περιγράφηκε στην προηγούμενο ενότητα. Σημείο κλειδί για τους δύο πρώτους είναι η μηχανή κανόνων, και παράλληλα γλώσσα, Jess. Με τη βοήθεια της καθορίστηκε η συμπεριφορά κάθε πράκτορα, ανεξάρτητα από την υλοποίηση του Reasoner και χωρίς να επηρεάζει στο ελάχιστο ούτε αυτόν ούτε την υπηρεσία αναιρέσιμης συλλογιστικής που παρέχει. Πρέπει να σημειωθεί ότι, το πλαίσιο ανάπτυξης του πολυ-πρακτορικού συστήματος της εργασίας, δηλαδή το JADE, υποστηρίζει την συνεργασία με την μηχανή κανόνων Jess καθώς είναι ευέλικτη και αποδοτική. Έτσι, η συγγραφή και επεξεργασία των κανόνων της συμπεριφοράς στρατηγικής κάθε πράκτορα, με τη χρήση της Jess είναι σχετικά εύκολη και απλή. Το ιδιαίτερο σε αυτή την εργασία, όμως, είναι ότι, δίνεται επιπλέον ευελιξία. Δεν υλοποιείται ένας διαφορετικός πράκτορας για κάθε περίπτωση αλλά ορίστηκε μονάχα ένας. Ο πράκτορας αυτός δέχεται ως όρισμα την διεύθυνση (path) στην οποία βρίσκεται το αρχείο (file.clp), που καθορίζει την συμπεριφορά του πράκτορα, επιτρέποντας έτσι τη χρήση πολλαπλών στιγμιοτύπων του. Κάθε τέτοιο στιγμιότυπο είναι ένας νέος πράκτορας με μια ιδιαίτερη στρατηγική, υλοποιημένη στη γλώσσα Jess. Αποτέλεσμα όλων αυτών είναι η πλέον αποδοτική υλοποίηση του σεναρίου που μελετάται και η δημιουργία ενός πλαισίου, το οποίο θα μπορεί να χρησιμοποιηθεί για την υλοποίηση πληθώρας άλλων περιπτώσεων σεναρίων. Στην προκειμένη περίπτωση, λοιπόν, οι ευφυείς πράκτορες Customer και Broker αποτελούν στιγμιότυπα του γενικού πράκτορα (jessagent) και για τον καθένα από αυτούς συντάχθηκε ένα ξεχωριστό αρχείο τύπου.clp, το μοναδικό ουσιαστικά που διαφοροποιείται. Στην Εικόνα 5.11 που ακολουθεί παρουσιάζονται οι πράκτορες Customer και Broker κατά την αρχικοποίηση τους στο περιβάλλον του JADE. Αρχικά στο περιβάλλον βρίσκεται ο πράκτορας Reasoner, ο οποίος όπως αναλύθηκε στην σχετική ενότητα είναι ενεργός και έτοιμος να δεχθεί νέα αιτήματα από οποιονδήποτε άλλο πράκτορα. Στη συνέχεια εισάγονται διαδοχικά ο μεσίτης και ο πελάτης (Carlo).
Εικόνα 5.11 : Αρχικοποίηση για τους πράκτορες Customer και Broker. Τελικά, όταν πλέον εισαχθούν και οι τρεις πράκτορες στο περιβάλλον του JADE (Εικόνα 5.12) ξεκινά άμεσα η διαδικασία του σεναρίου όπως αυτή παρουσιάστηκε στην προηγούμενη ενότητα. Όπως είναι εμφανές και από την εικόνα που ακολουθεί, στο συγκεκριμένο σενάριο θεωρήθηκε, χωρίς να διαδραματίζει καθοριστικό ρόλο, ότι όλοι οι πράκτορες βρίσκονται στην ίδια πλατφόρμα. Εικόνα 5.12 :Οι τρεις πράκτορες του σεναρίου στο περιβάλλον του JADE. Η ανταλλαγή των μηνυμάτων γίνεται όπως καθορίστηκε από τον βασικό πράκτορα Reasoner, δηλαδή μηνύματα τύπου REQUEST για τα αιτήματα, μηνύματα τύπου IN- FORM για τα αποτελέσματα. Με τη βοήθεια του πράκτορα Introspector παρουσιάζεται η αποστολή και λήψη μηνυμάτων για κάθε πράκτορα χωριστά (Εικόνα 5.13). -51-
Εικόνα 5.13 : Ο πράκτορες Introspector του JADE. Καλύτερη, ωστόσο, και πιο άμεση εποπτεία της ανταλλαγής μηνυμάτων μεταξύ των πρακτόρων μπορεί να γίνει με τη βοήθεια ενός άλλου πράκτορα του JADE, του Sniffer. Στην Εικόνα 5.14 παρουσιάζεται ο παραπάνω πράκτορας όπου και διακρίνεται εύκολα η αλληλουχία των μηνυμάτων καθώς επίσης και ο τύπος κάθε μηνύματος. Εικόνα 5.14 : Ο πράκτορες Sniffer του JADE. Τέλος, παρουσιάζεται ένα γραφικό πλαίσιο που αναπτύχθηκε στα πλαίσια της διπλωματικής εργασίας για τον πελάτη Carlo, όπου συγκεντρώνονται όλα όσα χρειάζεται. Επάνω αριστερά ορίζεται το αρχείο που καθορίζει την στρατηγική του και ακριβώς από κάτω παρουσιάζονται τα δύο RuleML αρχεία που περιέχουν τις απαιτήσεις και τις προ-
τιμήσεις του αντίστοιχα. Με το κουμπί REQUEST ενεργοποιείται ο πράκτορας του Carlo και αρχίζει η διαδικασία, όπως αυτή έχει ήδη περιγραφεί. Στην δεξιά πλευρά εμφανίζονται τα αποτελέσματα που λαμβάνει ο πράκτορας του Carlo, αρχικά από τον μεσίτη (Broker) και τελικά, κάτω δεξιά, από τον ίδιο τον Reasoner που του προτείνει το καταλληλότερο διαμέρισμα. Εικόνα 5.15 : Γραφικό πλαίσιο για τον πράκτορα του Carlo. Οι λόγοι ανάπτυξης του είναι αφενός η ευκολότερη και σφαιρικότερη εποπτεία του πράκτορα και αφετέρου η χρήση του για παρουσίαση του σεναρίου σε πραγματικό χρόνο. -53-