ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Ανταλλαγή Κανόνων ανάμεσα σε Ευφυείς Πράκτορες στο Σημασιολογικό Ιστό Διπλωματική Εργασία της Καστώρη Γραμματής-Ειρήνης (ΑΕΜ: 245) Επιβλέπων Καθηγητής: Νικόλαος Βασιλειάδης Θεσσαλονίκη 2009
- 2 -
ΠΡΟΛΟΓΟΣ Ο Σημασιολογικός Ιστός (Semantic Web) αποτελεί εξέλιξη και επέκταση του υπάρχοντος διαδικτύου. Ο ΣΙ παρέχει τη δυνατότητα για καλύτερη οργάνωση της πληροφορίας που είναι διασκορπισμένη στον Παγκόσμιο Ιστό και έχει σαν σκοπό την οργάνωσή της με τέτοιο τρόπο ώστε να γίνεται κατανοητή από τους πράκτορες. Μέχρι στιγμής έχουν αναπτυχθεί αρκετά εργαλεία τα οποία διευκολύνουν τη δημιουργία των πρακτόρων στα πολυ-πρακτορικά περιβάλλοντα, τα οποία παρουσιάζουν και μεγάλο ενδιαφέρον. Ένα επίσης πολύ σημαντικό πεδίο έρευνας είναι η συλλογιστική (reasoning). Τα τελευταία χρόνια, το ενδιαφέρον της επιστημονικής κοινότητας έχει στραφεί προς αυτή την κατεύθυνση, δηλαδή προς τη δημιουργία πρακτόρων που θα μπορούν να επωφεληθούν από υπηρεσίες συλλογιστικής και θα δρουν αποδοτικά σε ένα πολυπρακτορικό περιβάλλον. Έτσι, με την ανάπτυξη του ΣΙ, οι γλώσσες κανόνες (rule-languages) και τα συστήματα κανόνων (rule-based systems) αποτελούν σημαντικό τομέα έρευνας. Σημαντική πρόοδος έχει επιτευχθεί μέχρι σήμερα χωρίς ωστόσο να υπάρχει ακόμη ένα κοινά αποδεκτό πρότυπο ανταλλαγής κανόνων. Το αντικείμενο της παρούσας διπλωματικής εργασίας είναι η γενικότερη μελέτη του χώρου και ειδικότερα η υλοποίηση ενός επιλεγμένου σεναρίου χρήσης (use case), όπου θα μοντελοποιηθεί η επικοινωνία μεταξύ των πρακτόρων με την ανταλλαγή των κατάλληλων συνόλων κανόνων, μέρος των ιδιωτικών στρατηγικών τους. Οι πράκτορες αυτοί θα χρησιμοποιούν, επιπλέον, δυνατότητες συλλογιστικής ώστε να επικοινωνούν και να συνεργάζονται αποδοτικά. Η ανάπτυξη της εργασίας έγινε σε συνεργασία με την ερευνητική ομάδα Intelligent Systems and Knowledge Processing (ISKP) του εργαστηρίου Γλωσσών Προγραμματισμού και Τεχνολογίας Λογισμικού του τμήματος Πληροφορικής, της σχολής Θετικών Επιστημών του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης. Θα ήθελα να ευχαριστήσω θερμά τον Επίκουρο Καθηγητή του Τμήματος Πληροφορικής Νικόλαο Βασιλειάδη, για την ανάθεση της συγκεκριμένης διπλωματικής καθώς και για τη συνεχή καθοδήγησή του. - 3 -
Επίσης, θα ήθελα να ευχαριστήσω τον καθηγητή και διευθυντή του εργαστηρίου Ιωάννη Βλαχάβα για το ενδιαφέρον και την συνολική καθοδήγηση του. Τέλος, τις θερμές ευχαριστίες μου στην Καλλιόπη Κράβαρη για την υπομονή καθώς και για τη διαρκή βοήθεια που μου παρείχε. Καστώρη Γραμματή-Ειρήνη Θεσσαλονίκη 2010-4 -
ΠΕΡΙΕΧΟΜΕΝΑ 1 ΕΙΣΑΓΩΓΗ...- 7-2 Θεωρητικό Υπόβαθρο... - 9-2.1 Σημασιολογικός Ιστός... - 9-2.1.1 Εισαγωγή...- 9-2.1.2 Αρχική Αρχιτεκτονική του Σημασιολογικού Ιστού...- 9-2.1.3 Αναθεωρημένη Αρχιτεκτονική του Σημασιολογικού Ιστού... - 10-2.1.4 Βασικές Γλώσσες του Σημασιολογικού Ιστού... - 11-2.2 Ευφυείς Πράκτορες... - 13-2.2.1 Εισαγωγή... - 13-2.2.2 Αρχιτεκτονικές Πρακτόρων... - 14-2.2.3 Πολυ Πρακτορικά Συστήματα... - 16-2.2.4 Επικοινωνία μεταξύ πρακτόρων... - 17-3 Ειδικότερο Υπόβαθρο... - 19-3.1 Κανόνες και συστήματα κανόνων... - 19-3.1.1 Κανόνες και γλώσσες κανόνων... - 19-3.1.2 Συστήματα κανόνων... - 20-3.2 Αναιρέσιμη Συλλογιστική... - 20-3.2.1 Εισαγωγή... - 20-3.2.2 Η γλώσσα... - 21-3.2.3 Αναίρεση ως αποτυχία NAF... - 22-3.2 Στόχοι της Διπλωματικής Εργασίας... - 22-4 Εργαλεία... - 25-4.1 Εισαγωγή... - 25-4.2 Το πλαίσιο JADE... - 25-4.2.1 Εισαγωγή... - 25-4.2.2 Αρχιτεκτονική του JADE... - 26-4.3 JESS... - 29-4.3.1 Εισαγωγή... - 29-4.3.2 Αρχιτεκτονική... - 30-4.4 DR-DEVICE... - 31 - - 5 -
4.4.1 Εισαγωγή... - 31-4.4.2 Αρχιτεκτονική του DR-DEVICE... - 31-4.5 EMERALD... - 32-4.5.1 Εισαγωγή... - 32-4.5.2 Αρχιτεκτονική του EMERALD... - 33-4.5.2.1 Reasoner... - 33-4.5.2.2 Μοντέλο πρακτόρων KC... - 34-4.5.2.3 Advanced Yellow Pages Service... - 34-4.5.2.4 Basic Java Library... - 34-5 Υλοποίηση... - 37-5.1 Σενάριο... - 37-5.1.1 Συμμετέχοντες... - 37-5.1.2 Απαιτήσεις του Εκπροσώπου του Wine Club... - 38-5.1.3 Κατηγορίες μελών του Wine Club... - 39-5.1.4 Πολιτικές πελατών... - 40-5.1.5 Αναλυτική Περιγραφή Σεναρίου... - 43-5.2.6 Λεπτομέρειες Υλοποίησης... - 47-6 Συμπεράσματα - Μελλοντικές Εργασίες... - 55-6.1 Συμπεράσματα... - 55-6.2 Προκλήσεις... - 56-6.3 Μελλοντικές Εργασίες... - 56 - Βιβλιογραφία... - 59 - ΠΑΡΑΡΤΗΜΑ... - 63 - Το Συμβόλαιο... - 63 - Η Στρατηγική του Εκπροσώπου του Wine Club... - 65 - Η Στρατηγική του Πρώτου Πελάτη... - 74 - O Πράκτορας Timer... - 81 - - 6 -
1 ΕΙΣΑΓΩΓΗ Ο Σημασιολογικός Ιστός (Semantic Web) αποτελεί εξέλιξη και επέκταση του υπάρχοντος διαδικτύου. Ο ΣΙ παρέχει τη δυνατότητα για καλύτερη οργάνωση της πληροφορίας που είναι διασκορπισμένη στον Παγκόσμιο Ιστό και έχει σαν σκοπό την οργάνωσή της με τέτοιο τρόπο ώστε να γίνεται κατανοητή από τους πράκτορες. Μέχρι στιγμής έχουν αναπτυχθεί αρκετά εργαλεία τα οποία διευκολύνουν τη δημιουργία των πρακτόρων ιδιαίτερα σε πολυ-πρακτορικά περιβάλλοντα, τα οποία παρουσιάζουν και μεγάλο ενδιαφέρον. Η ερευνητική δραστηριότητα στο ΣΙ παρουσιάζει άνθηση τα τελευταία χρόνια. Ένα πολύ σημαντικό πεδίο έρευνας είναι η συλλογιστική (reasoning). Τα τελευταία χρόνια, το ενδιαφέρον της επιστημονικής κοινότητας έχει στραφεί προς αυτή την κατεύθυνση, δηλαδή προς τη δημιουργία πρακτόρων που θα μπορούν να επωφεληθούν από υπηρεσίες συλλογιστικής και θα δρουν αποδοτικά σε ένα πολυ-πρακτορικό περιβάλλον. Η παρούσα διπλωματική εργασία έχει σαν στόχο την υλοποίηση πρακτόρων, οι οποίοι θα συνεργάζονται αποδοτικά σε ένα πολυ-πρακτορικό περιβάλλον. Ο βασικός στόχος είναι η επικοινωνία των πρακτόρων με ανταλλαγή κανόνων, οι οποίοι προσδιορίζουν τη στρατηγική τους. Επίσης, δεν είναι απαραίτητη η εκ των προτέρων γνώση της γλώσσας πoυ θα χρησιμοποιεί από τον κάθε πράκτορα, καθώς θα χρησιμοποιηθεί μία υπηρεσία συλλογιστικής. Αυτή η υπηρεσία θα έχει ως στόχο την εξαγωγή συμπερασμάτων και στη συνέχεια τη μετάδοση αυτών των συμπερασμάτων στους πράκτορες. Με τον τρόπο αυτό, επιτυγχάνεται αποδοτικότερη επικοινωνία μεταξύ των πρακτόρων. Για την ανάπτυξη των ευφυών πρακτόρων επιλέχθηκε το πλαίσιο EMERALD, το οποίο χρησιμοποιεί σαν βάση του το περιβάλλον JADE, το οποίο είναι σύμφωνο με τις προδιαγραφές της FIPA 1 (Foundation for Intelligent Physical Agents) και παρέχει εύκολη επικοινωνία μεταξύ των πρακτόρων. Επιπλέον, το πλαίσιο 1 FIPA specification, http://www.fipa.org/ - 7 -
EMERALD παρέχει τους κατάλληλους μηχανισμούς συλλογιστικής, απαραίτητους για την αποδοτική επικοινωνία των πρακτόρων του περιβάλλοντος, καθώς η συμπεριφορά τους καθορίζεται από ένα σύνολο κανόνων, την ιδιωτική στρατηγική τους. Για τη συγγραφή και επεξεργασία των κανόνων αυτών επιλέχθηκε η γλώσσα και μηχανή κανόνων JESS. Επιλέχθηκε, η μέθοδος αυτή, για την συμπεριφορά κάθε πράκτορα, καθώς είναι ευέλικτη, αποδοτική, επιτρέπει την εύκολη υλοποίηση οποιουδήποτε σεναρίου και δεν επηρεάζει την ίδια την υπηρεσία συλλογιστικής που παρέχεται. Στα έξι κεφάλαια που ακολουθούν περιγράφονται όλα τα θέματα που αναφέρθηκαν παραπάνω. Συγκεκριμένα: Κεφάλαιο 2: Στο δεύτερο κεφάλαιο παρουσιάζεται ο Σημασιολογικός Ιστός και τα βασικά χαρακτηριστικά του με ιδιαίτερη έμφαση στην αρχιτεκτονική του και στις πιο συχνά χρησιμοποιούμενες γλώσσες. Επιπλέον, περιγράφονται τα χαρακτηριστικά της τεχνολογίας των ευφυών πρακτόρων, οι διαθέσιμες αρχιτεκτονικές καθώς και ο τρόπος με τον οποίο επιτυγχάνεται η επικοινωνία μεταξύ αυτών. Κεφάλαιο 3: Στο τρίτο κεφάλαιο περιγράφονται τα βασικά χαρακτηριστικά των γλωσσών κανόνων, των συστημάτων που βασίζονται σε κανόνες και της αναιρέσιμης συλλογιστικής, καθώς κατέχουν σημαντικό ρόλο στην ανάπτυξη της παρούσας εργασίας. Επίσης, περιγράφονται οι λόγοι που οδήγησαν στην ανάπτυξη της συγκεκριμένης εργασίας, καθώς και οι στόχοι αυτής. Κεφάλαιο 4: Σε αυτό το κεφάλαιο παρουσιάζονται αναλυτικά τα εργαλεία που χρησιμοποιήθηκαν, δηλαδή το πλαίσιο ανάπτυξης πολύ-πρακτορικών συστημάτων JADE, το σύστημα αναιρέσιμης συλλογιστικής DR-DEVICE, η μηχανή κανόνων αλλά και γλώσσα προγραμματισμού JESS και το ειδικότερο πλαίσιο ανάπτυξης πρακτόρων EMERALD. Κεφάλαιο 5: Το κεφάλαιο αυτό περιγράφει λεπτομερώς την παρούσα εφαρμογή. Επεξηγούνται όλα τα στοιχεία που την αποτελούν, αναλύεται η ροή της λειτουργία της, δίνεται ένα λεπτομερές παράδειγμα σεναρίου υλοποίησης. Κεφάλαιο 6: Τέλος, παρουσιάζονται τα συμπεράσματα που προέκυψαν κατά την εκπόνηση της παρούσας εργασίας και δίνονται προτάσεις για μελλοντική επέκτασή της. - 8 -
2 Θεωρητικό Υπόβαθρο 2.1 Σημασιολογικός Ιστός 2.1.1 Εισαγωγή Ο Σημασιολογικός Ιστός (Semantic Web) αναπτύχθηκε από τον Tim Berners-Lee, ο οποίος οραματίστηκε το Διαδίκτυο σαν ένα χώρο ανταλλαγής δεδομένων και πληροφοριών. Το βασικό χαρακτηριστικό του Σημασιολογικού Ιστού (ΣΙ) είναι ότι η πληροφορία ορίζεται με τέτοιο τρόπο ώστε να είναι κατανοητή τόσο από τον άνθρωπο όσο και από τους πράκτορες (agents). Για το λόγο αυτό, ο στόχος του ΣΙ ήταν η ανάπτυξη των κατάλληλων τεχνολογιών που θα προάγουν την αναπαράσταση της πληροφορίας σε μορφή, η οποία θα είναι κατανοητή από τους πράκτορες. Στις προαναφερθείσες τεχνολογίες ανήκουν οι γλώσσες XML (Extensible Markup Language), RDF (Resource Description Framework) και OWL (Web Ontology Language). [1, 2, 3] 2.1.2 Αρχική Αρχιτεκτονική του Σημασιολογικού Ιστού O Tim Berners-Lee, σχεδίασε το 2000, τη διαστρωματική αρχιτεκτονική του Σημασιολογικού Ιστού, όπως παρουσιάζεται στην Εικόνα 2.1. Σε αυτή την αρχιτεκτονική ο ΣΙ αναπτύσσεται σταδιακά, με αποτέλεσμα τη δημιουργία διακριτών επιπέδων, όπου αναπτύσσονται διαδοχικά οι διάφορες γλώσσες-τεχνολογίες. Εικόνα 2.1: Αρχική Αρχιτεκτονική του Σημασιολογικού Ιστού - 9 -
Έτσι, το κάθε επίπεδο υλοποιείται ξεχωριστά και είναι πλήρως υλοποιημένο πριν την ανάπτυξη του επιπέδου που ακολουθεί. Ο τελικός στόχος είναι να υπάρχει ανεξαρτησία μεταξύ των επιπέδων αλλά ταυτόχρονα, το επόμενο επίπεδο να μπορεί να επωφεληθεί από το προηγούμενο και να επεκτείνει τις δυνατότητές του. Για παράδειγμα, μετά την ανάπτυξη της XML γλώσσας, αναπτύχθηκε η RDF. Το επόμενο επίπεδο αποτελείται από γλώσσες που περιγράφουν πιο αποδοτικά τις οντολογίες, όπως η γλώσσα OWL (Web Ontology Language). Η γλώσσα OWL, βασίζεται συντακτικά στην RDF, αλλά προσφέρει λεξιλόγιο το οποίο είναι καταλληλότερο για την περιγραφή των οντολογιών. Ταυτόχρονα, δόθηκε ιδιαίτερη σημασία στη συλλογιστική, όμως διαπιστώθηκε ότι η χρήση της RDF δημιουργούσε συντακτικά και σημασιολογικά προβλήματα. Για το λόγο αυτό, η παραπάνω αρχιτεκτονική αναθεωρήθηκε και δημιουργήθηκε μία καινούρια έκδοση, η οποία ήταν προσανατολισμένη στην έννοια της συλλογιστικής. 2.1.3 Αναθεωρημένη Αρχιτεκτονική του Σημασιολογικού Ιστού Στην Εικόνα 2.2 παρουσιάζεται η αναθεωρημένη αρχιτεκτονική του Σημασιολογικού Ιστού, η οποία διατήρησε τη διαστρωμένη μορφή εισάγοντας ταυτόχρονα πλεονεκτήματα χωρίς να απομακρύνεται από το αρχικό όραμα του ΣΙ. Εικόνα 2.2: Αναθεωρημένη Αρχιτεκτονική του Σημασιολογικού Ιστού Όπως αναφέρθηκε η RDF παρέχει τη δυνατότητα για αναπαράσταση της πληροφορίας με τη μορφή γράφου και πιο συγκεκριμένα με τη χρήση τριπλετών (triplets) της μορφής subject-predicate-object. Η προαναφερθείσα λογική είναι - 10 -
ικανοποιητική για την αναπαράσταση απλών πληροφοριών αλλά δεν είναι αποδοτική για την αναπαράσταση πληροφοριών που εμφανίζουν πολυπλοκότητα. Πιο συγκεκριμένα, όταν η πληροφορία που πρέπει να αναπαρασταθεί είναι πολύπλοκη, και κωδικοποιηθεί με τη μορφή τριπλετών υπάρχει ο κίνδυνος να δημιουργηθεί ένα πολύπλοκο συντακτικό σχήμα, στο οποίο θα υπάρχουν επαναλαμβανόμενες τριπλέτες ή σε μερικές περιπτώσεις ενδέχεται να λείπουν κάποιες τριπλέτες καθιστώντας το τελικό συντακτικό σχήμα ελλιπές. Ωστόσο τα προβλήματα που εισάγει η χρήση της RDF δεν περιορίζονται μόνο στη σύνταξη των πληροφοριών αλλά και στη σημασιολογική πλευρά αυτών. Το πρόβλημα έγκειται στο γεγονός ότι κάθε τριπλέτα πρέπει να αληθεύει, ανεξάρτητα από την πληροφορία που κωδικοποιεί. Σαν αποτέλεσμα, πρέπει να χρησιμοποιούνται μηχανισμοί επαλήθευσης, οι οποίοι μπορεί να οδηγήσουν σε σημασιολογικά παράδοξα (semantic paradoxes), τα οποία αντιμετωπίζονται δύσκολα. Για να αντιμετωπιστούν τα παραπάνω προβλήματα, προτάθηκε η χρήση διαφορετικού λεξιλογίου για κάθε γλώσσα, όπως είναι η OWL και η SWRL (Semantic Web Rule Language). Πιο συγκεκριμένα, κάθε γλώσσα θα έχει το δικό της συντακτικό και τη δική της σημασιολογία.. Έτσι, στην αναθεωρημένη αρχιτεκτονική του ΣΙ η κάθε γλώσσα μπορεί να αντιληφθεί το συντακτικό και τις ιδιότητες του κάθε στρώματος στο οποίο βασίζεται. 2.1.4 Βασικές Γλώσσες του Σημασιολογικού Ιστού Με βάση την αρχιτεκτονική που παρουσιάστηκε από τον Tim Berners-Lee, οι πλέον βασικές γλώσσες που χρησιμοποιήθηκαν στα πλαίσια του ΣΙ είναι η XML, η RDF και η OWL. [4, 5, 6] Η XML (Extensible Markup Language) στοχεύει στην εισαγωγή της απλότητας και της χρηστικότητας στις εφαρμογές του διαδικτύου. Η XML χρησιμοποιείται κυρίως για την περιγραφή δεδομένων και εμφανίζει αρκετές ομοιότητες με την HTML, με πιο χαρακτηριστική τη χρήση ετικετών (tags). Η διαφορά έγκειται στο γεγονός ότι οι ετικέτες (tags) καθορίζονται από το χρήστη με τη δημιουργία ενός εγγράφου δομής Document Type Definition (DTD) ή XML Schema. Η πρώτη έκδοση της XML, η XML 1.0, αναπτύχθηκε το 1998 και πέτυχε τον αρχικό στόχο που ήταν η εύκολη ανάπτυξη των εφαρμογών του διαδικτύου και η χρηστικότητα αυτών. Το βασικότερο όμως μειονέκτημα της γλώσσας αυτής είναι το - 11 -
γεγονός ότι αδυνατεί να περιγράψει επαρκώς τις σημασιολογικές έννοιες των δεδομένων. Στην Εικόνα 2.3 περιγράφεται ένα απλό παράδειγμα χρήσης της γλώσσας XML, στο οποίο ορίζεται ένα βιβλίο, οι συγγραφείς του, ο εκδοτικός οίκος και η χρονιά έκδοσης. Από το παράδειγμα αυτό γίνεται φανερή η χρήση των ετικετών (tags). <book> <title>nonmonotonic Reasoning: Context-Dependent Reasoning</title> <author>v. Marek</author> <author>m. Truszcynski</author> <publisher>springer</publisher> <year>1993</year> </book> Εικόνα 2.3: Παράδειγμα XML εγγράφου Η RDF (Resource Description Framework) βασίζεται στη δημιουργία δηλώσεων (statements) της μορφής subject-predicate-object. Όπως αναφέρθηκε προηγουμένως, η παραπάνω μορφή είναι γνωστή με τον όρο τριπλέτα. Οι όροι subject και object ορίζουν το υποκείμενο και το αντικείμενο αντίστοιχα, που αναφέρονται σε μία δήλωση (statement). Ο όρος predicate περιγράφει τη σχέση που υπάρχει μεταξύ του subject και του object. Η γλώσσα RDF δημιουργήθηκε για να χρησιμοποιείται κυρίως για την κωδικοποίηση πληροφοριών τις οποίες επεξεργάζονται ως επί το πλείστον εφαρμογές. Στην Εικόνα 2.4 παρουσιάζεται ένα έγγραφο δομής RDF, στο οποίο ορίζεται ότι ο David Billington είναι ο ιδιοκτήτης του site http://www.cit.gu.edu.au/~db. <rdf:rdf xmlns:rdf= http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:ex=http://www.mydomain.org/my-rdf-ns> <rdf:description rdf:about=http://www.cit.gu.edu.au/~db <ex:site-owner>david Billington</ex:site-owner> </rdf:description> </rdf:rdf> Εικόνα 2.4: Παράδειγμα RDF εγγράφου - 12 -
Επιπλέον, στην Εικόνα 2.5 παρουσιάζεται η παραπάνω σχέση (τριπλέτα) με τη μορφή γράφου. Πιο συγκεκριμένα μέσα στους κύκλους παρουσιάζονται οι όροι subject (David Billigton) και object (το site http://www.cit.gu.edu.au/~db ) ενώ το βέλος αναπαριστά τον όρο predicate (site-owner). http://www.cit.gu.edu.au/~db site-owner David Billington Εικόνα 2.5: Παράδειγμα τριπλέτας Η γλώσσα OWL (Web Ontology Language) είναι μία γλώσσα για την αναπαράσταση οντολογιών και θεωρείται μία από τις πιο βασικές τεχνολογίες που χρησιμοποιούνται στο ΣΙ. Ουσιαστικά, αποτελεί μία επέκταση της γλώσσας RDF, στην οποία τα δεδομένα περιγράφονται σαν ένα σύνολο από κλάσεις και ιδιότητες, οι οποίες συνδέουν τις κλάσεις. Στην Εικόνα 2.6 απεικονίζεται ένα παράδειγμα μίας κλάσης ορισμένης σε γλώσσα OWL. Η κλάση αυτή είναι η associateprofessor η οποία ορίζεται σαν υπο-κλάση της academicstaffmember. Πιο συγκεκριμένα, η κλάση αυτή προέρχεται από την ιεραρχία των μελών ΔΕΠ ενός πανεπιστημίου. Δηλαδή, η υπερκλάση είναι η academicstaffmember, η οποία περιλαμβάνει όλους τους εργαζομένους του πανεπιστημίου και η υποκλάση associateprofessor περιλαμβάνει τους καθηγητές που εργάζονται στο πανεπιστήμιο. <owl:class rdf:id= associateprofessor > <rdfs:subclassof rdf:resource= #academicstaffmember /> </owl:class> Εικόνα 2.6: Παράδειγμα κλάσης σε OWL 2.2 Ευφυείς Πράκτορες 2.2.1 Εισαγωγή Οι ευφυείς πράκτορες (intelligent agents) αποτελούν μία αυτόνομη οντότητα η οποία δρα σε ένα περιβάλλον προσπαθώντας να επιτύχει κάποιους στόχους. Οι ευφυείς - 13 -
πράκτορες έχουν τη δυνατότητα να δρουν σε διάφορα περιβάλλοντα με αποτέλεσμα να συγκεντρώνουν διαφορετικά χαρακτηριστικά ανάλογα με το περιβάλλον στο οποίο δρουν. Τα τελευταία χρόνια υπάρχει έντονο ενδιαφέρον στον τομέα των πολυπρακτορικών συστημάτων. Στα εν λόγω συστήματα, οι πράκτορες συνεργάζονται μεταξύ τους σε διάφορους τομείς, όπως είναι η διαπραγμάτευση (negotiation) και η μεσιτεία (brokering). Ο βασικός στόχος των πρακτόρων που δρουν σε ένα πολυπρακτορικό σύστημα είναι η προσομοίωση των ενεργειών και των βημάτων που πρέπει να ακολουθήσει ο κάθε πράκτορας με απώτερο σκοπό την επικοινωνία με τους άλλους πράκτορες και την επίτευξη των στόχων του. Οι πράκτορες συγκεντρώνουν κάποια χαρακτηριστικά που τους διαφοροποιούν από τα υπόλοιπα προγράμματα. Τέτοια χαρακτηριστικά είναι η προσαρμοστικότητα (adaptivity), η αυτονομία (autonomy) και η αντιδραστικότητα (reactivity). Η προσαρμοστικότητα αναφέρεται στο γεγονός ότι ο πράκτορας έχει τη δυνατότητα να αποκτά εμπειρία από τις ενέργειες που εκτελεί. Η αυτονομία έγκειται στο γεγονός ότι μπορεί και ενεργεί ανεξάρτητα και αυτόνομα λαμβάνοντας υπόψη το προσωπικό του συμφέρον και έχοντας σαν σκοπό την επίτευξη των στόχων του. Τέλος, η αντιδραστικότητα είναι η ικανότητα να αντιλαμβάνεται και να ενεργεί επιλεκτικά. [7, 8, 9] 2.2.2 Αρχιτεκτονικές Πρακτόρων Οι αρχιτεκτονικές των πρακτόρων (agent architectures) ποικίλουν και περιλαμβάνουν μεταξύ άλλων αμιγώς αντιδραστικές (reactive) και προσχεδιασμένες (deliberative) αρχιτεκτονικές. Πέρα από τις προαναφερθείσες αρχιτεκτονικές υπάρχουν και κάποιοι υβριδικοί συνδυασμοί οι οποίοι προσπαθούν να συγχωνεύσουν τα πλεονεκτήματα της κάθε προσέγγισης. Τελικά, προκύπτουν τέσσερεις κατηγορίες αρχιτεκτονικών, οι οποίες είναι οι ακόλουθες: 1. βασιζόμενες στη λογική (logic based) 2. αντιδραστικές (reactive) 3. BDI (belief, desire, intention) 4. διαστρωματικές (layered) Οι βασιζόμενες στη λογική (logic based) είναι τεχνικές που αναπαριστούν το περιβάλλον συμβολικά, χρησιμοποιώντας ένα σύνολο χαρακτηριστικών. Το βασικό - 14 -
τους πλεονέκτημα είναι ότι τόσο τα δεδομένα όσο και η γνώση που αποκτούν οι πράκτορες κωδικοποιείται με ευκολία. Ενώ το βασικό τους μειονέκτημα είναι η δυσκολία που εμφανίζεται στην εφαρμογή αυτής της τεχνικής για την κωδικοποίηση του πραγματικού κόσμου. Οι αντιδραστικές (reactive) αρχιτεκτονικές χρησιμοποιούνται κυρίως για λήψη αποφάσεων όταν τα δεδομένα έχουν συλλεχθεί με τη χρήση αισθητήρων. Οι πράκτορες που διέπονται από αυτή την αρχιτεκτονική, εμφανίζουν καλύτερη συμπεριφορά σε δυναμικά περιβάλλοντα, αλλά δεν έχουν τη δυνατότητα να εκπαιδευθούν από τη γνώση που αποκτούν όταν εκτελούν μία ενέργεια. Επίσης, για να υπάρξουν ικανοποιητικά αποτέλεσμα και οι πράκτορες να ενεργούν με αποδοτικό τρόπο, πρέπει τα δεδομένα τα οποία συλλέγονται από αισθητήρες να είναι επαρκή. Οι αρχιτεκτονικές BDI (belief, desire, intention) προσπαθούν να προσδιορίσουν τις έννοιες της πεποίθησης (belief), οι οποίες αναπαριστούν τα δεδομένα που γνωρίζει ο πράκτορας, της επιθυμίας (desire), οι οποίες αναπαριστούν τις ενέργειες που σχετίζονται με τους στόχους που πρέπει να επιτύχει ο πράκτορας και της πρόθεσης (intention), οι οποίες αναπαριστούν τις επιθυμίες που πρέπει να επιτελέσει ο πράκτορας. Αυτού του τύπου οι αρχιτεκτονικές χρησιμοποιούνται αρκετά συχνά σε πολύ-πρακτορικά περιβάλλοντα. Η τελευταία κατηγορία αρχιτεκτονικών είναι οι υβριδικές διαστρωματωμένες (layered) αρχιτεκτονικές. Το πλεονέκτημα αυτής της κατηγορίας είναι ότι η συμπεριφορά του πράκτορα μπορεί να οργανωθεί σε επίπεδα με δύο τρόπους, είτε οριζόντια (horizontal) είτε κάθετα (vertical), παρέχοντας έτσι την ικανότητα για σχεδιασμό πρακτόρων που παρουσιάζουν σύνθετη συμπεριφορά. Οι δυο τρόποι οργάνωσης της συμπεριφοράς του πράκτορα, με βάση την παραπάνω αρχιτεκτονική, απεικονίζεται στην Εικόνα 2.7. [7, 8, 9] - 15 -
Εικόνα 2.7: Οργάνωση των διαστρωματικών αρχιτεκτονικών. 2.2.3 Πολυ Πρακτορικά Συστήματα Το πολυ-πρακτορικό σύστημα (multi-agent system MAS) είναι ένα περιβάλλον στο οποίο αλληλεπιδρούν οι ευφυείς πράκτορες, οι οποίοι έχουν τη δυνατότητα είτε να συνεργάζονται για την επίτευξη κοινών στόχων, είτε να δρουν ιδιοτελώς για την επίτευξη των ατομικών τους στόχων. Βασικό, επομένως, χαρακτηριστικό για τα συστήματα αυτά είναι η δυνατότητα παροχής μηχανισμών επικοινωνίας για τους ευφυείς πράκτορες που φιλοξενούν. Τα παραπάνω σε συνδυασμό με το γεγονός ότι τα πολυ-πρακτορικά συστήματα χρησιμοποιούνται όλο και περισσότερο τον τελευταίο καιρό καθιστούν την δημιουργία νέων εργαλείων αναγκαία. Για το λόγο αυτό πρέπει να δημιουργηθούν τόσο νέα εργαλεία όσο και νέες πλατφόρμες και πλαίσια (Agent Frameworks) τα οποία θα υποστηρίζουν τα πολύ-πρακτορικά περιβάλλοντα, στα οποία θα μπορούν να δρουν αποτελεσματικά οι πράκτορες. Η πιο συχνά χρησιμοποιούμενη πλατφόρμα, σήμερα, είναι το JADE [16], το οποίο είναι πλήρως συμβατό με τις προδιαγραφές της FIPA [17]. Η FIPA ACL (Foundation for Intelligent Physical Agents) είναι μία από τις πιο συχνά χρησιμοποιούμενες γλώσσες επικοινωνίας πρακτόρων. Επίσης, αναπτύχθηκαν νέες γλώσσες προγραμματισμού, οι οποίες ονομάζονται AOL (Agent-Oriented Languages) και προσπαθούν να επικεντρώσουν στα χαρακτηριστικά των πολυ-πρακτορικών συστημάτων. Πιο συγκεκριμένα, αυτές - 16 -
οι γλώσσες παρουσιάζουν ομοιότητες με τις αντικειμενοστραφείς γλώσσες (objectoriented), δηλαδή επικεντρώνονται κυρίως στα κύρια χαρακτηριστικά των πολυπρακτορικών συστημάτων. Χρησιμοποιώντας κάποιες από τις προαναφερθείσες τεχνολογίες ή εργαλεία είναι δυνατό να αναπτυχθούν πράκτορες, οι οποίοι θα δράσουν αποδοτικά σε ένα πολυ-πρακτορικό σύστημα, εκπληρώνοντας τους στόχους τους. [7, 8, 9] 2.2.4 Επικοινωνία μεταξύ πρακτόρων Οι πράκτορες που δρουν σε ένα πολυ-πρακτορικό σύστημα πρέπει να έχουν τη δυνατότητα της επικοινωνίας. Η επικοινωνία μεταξύ των πρακτόρων είναι ζωτικής σημασίας, αφού οι πράκτορες πρέπει να επικοινωνήσουν ώστε να επιτύχουν τους κοινούς στόχους που έχουν θέσει καθώς και για την επίτευξη των ατομικών τους στόχων. Η επικοινωνία μεταξύ των πρακτόρων πραγματοποιείται με την ανταλλαγή μηνυμάτων, χρησιμοποιώντας ειδικές γλώσσες, οι οποίες ονομάζονται γλώσσες επικοινωνίας πρακτόρων (agent communication languages ACLs). Η βασική ιδέα στην οποία στηρίζεται η γλώσσα FIPA ACL είναι ότι τα μηνύματα που ανταλλάσσουν οι πράκτορες αναπαριστούν ενέργειες, που ονομάζονται performatives. Οι πιο συχνά εμφανιζόμενοι τύποι μηνυμάτων είναι οι INFORM, ο οποίος ενημερώνει ή ειδοποιεί τον πράκτορα που λαμβάνει το μήνυμα, REQUEST, με τον οποίο ο πράκτορας που αποστέλλει τέτοιου είδους μήνυμα έχει κάποια απαίτηση από τον πράκτορα που λαμβάνει το μήνυμα, ACCEPT, με το οποίο ο πράκτορας αποδέχεται μία συναλλαγή ή μία συμφωνία με κάποιον άλλο πράκτορα, με τους οποίος επικοινωνούν συχνότερα οι πράκτορες. Στα μηνύματα αυτού του τύπου ορίζεται μεταξύ άλλων ο αποστολέας και ο παραλήπτης καθώς και το ουσιαστικό περιεχόμενο του μηνύματος. [7, 8, 9]. Στην Εικόνα 2.8 απεικονίζεται ένα παράδειγμα μηνύματος τύπου INFORM, το οποίο αποστέλλεται από τον agent1 και παραλαμβάνεται από τον agent5. Στο συγκεκριμένο μήνυμα, ο agent1 ενημερώνει τον agent5 ότι η τιμή του προϊόντος good200 είναι ίση με 150. : (inform :sender agent1 :receiver agent5 :content (price good200 150) ) Εικόνα 2.8: Παράδειγμα μηνύματος σε γλώσσα FIPA ACL - 17 -
- 18 -
3 Ειδικότερο Υπόβαθρο 3.1 Κανόνες και συστήματα κανόνων 3.1.1 Κανόνες και γλώσσες κανόνων Οι κανόνες αποτελούν ένα σημαντικό κομμάτι του ΣΙ και πιο συγκεκριμένα στα συστήματα γνώσης (knowledge-based systems) καθώς και στους ευφυείς πράκτορες. Πιο συγκεκριμένα οι κανόνες μεταξύ άλλων βρίσκουν εφαρμογή στο ηλεκτρονικό εμπόριο, καθώς μπορούν να προσομοιώσουν τις απαιτήσεις των πρακτόρων που λαμβάνουν μέρος σε μία τέτοιου είδους συναλλαγή. Παρά το γεγονός ότι οι κανόνες μπορούν να διευκολύνουν σημαντικά την επικοινωνία των πρακτόρων, δεν υπάρχει μία γλώσσα κανόνων, η οποία να είναι κοινά αποδεκτή. Μία από τις πιο διαδομένες γλώσσες κανόνων είναι η RuleML [22] η οποία αναπτύχθηκε από το Rule Markup Initiative με σκοπό την ανάπτυξη μίας κοινά αποδεκτής γλώσσας. Έτσι, αναπτύχθηκε η γλώσσα RuleML, η οποία εμφανίστηκε πρώτη φορά το έτος 2000. Η RuleML χρησιμοποιείται συχνά σε σενάρια στα οποία λαμβάνουν μέρος πράκτορες. Ταυτόχρονα όμως δεν αποτελεί μία γλώσσα κοινά αποδεκτή για χρήση σε εφαρμογές του ΣΙ. Μία προσπάθεια για την ανάπτυξη μίας γλώσσας κανόνων έγινε από τη W3C, με τη πρόταση για την ανάπτυξη της γλώσσας RIF (Rule Interchange Format) [24]. Το 2009, η ομάδα της W3C που ασχολείται με τη δραστηριότητα στο ΣΙ δημιούργησε τη γλώσσα RIF, η οποία έχει σαν σκοπό να βοηθήσει την επικοινωνία και την αλληλεπίδραση μεταξύ των διάφορων μηχανών κανόνων (rule engines). Ταυτόχρονα, στόχος της γλώσσας RIF είναι η εδραίωσή της ως μίας γλώσσας κανόνων η οποία θα διευκολύνει τις διαδικτυακές συναλλαγές. Δυστυχώς, μέχρι στιγμής η γλώσσα RIF, δεν έχει καταφέρει να επιτύχει το στόχο της, αφού δεν έχει γίνει πλήρως αποδεκτή από την κοινότητα που ασχολείται με το ΣΙ. - 19 -
3.1.2 Συστήματα κανόνων Τα συστήματα κανόνων (rule based systems) είναι τα συστήματα, τα οποία μπορούν να αποθηκεύσουν γνώση καθώς και να τη χειριστούν με τον κατάλληλο τρόπο ώστε να καταλήξουν σε εποικοδομητικά συμπεράσματα. Τα συστήματα κανόνων είναι ιδιαίτερα διαδεδομένα στην Τεχνητή Νοημοσύνη καθώς και στο Σημασιολογικό Ιστό. Ένα κλασσικό σύστημα κανόνων χρησιμοποιεί κανόνες ώστε να καταλήξει σε ασφαλή συμπεράσματα. Για παράδειγμα ένα τέτοιο σύστημα είναι ικανό να βοηθήσει ένα γιατρό στη σωστή διάγνωση ενός ασθενούς, λαμβάνοντας υπόψη το ιστορικό και τα συμπτώματα του ασθενούς. Τα βασικά στοιχεία από τα οποία απαρτίζεται ένα σύστημα κανόνων είναι μία λίστα κανόνων, που αποτελούν τη βάση γνώσης (knowledge base). Μία μηχανή που επιτελεί τη διαδικασία συλλογιστικής και είναι υπεύθυνη για την εξαγωγή συμπερασμάτων με βάση τα δεδομένα που υπάρχουν στη βάση γνώσης. 3.2 Αναιρέσιμη Συλλογιστική 3.2.1 Εισαγωγή Η αναιρέσιμη συλλογιστική (defeasible reasoning) βασίζεται στους κανόνες (rule-based) και χειρίζεται αποδοτικά πληροφορία, η οποία είναι ελλιπής (incomplete) ή ασυνεπής (inconsistent). Στην αναιρέσιμη συλλογιστική, η πληροφορία αναπαρίσταται με τη μορφή γεγονότων (facts) και κανόνων (rules). Για την αποδοτικότερη χρήση των κανόνων ορίζονται προτεραιότητες μεταξύ αυτών (priorities). Ο ορισμός των προτεραιοτήτων οδηγεί στην αποφυγή των συγκρούσεων μεταξύ των κανόνων καθώς όταν υπάρχουν οι κατάλληλες συνθήκες για την ενεργοποίηση περισσότερων του ενός κανόνων, ενεργοποιείται ο κανόνας με τη μεγαλύτερη προτεραιότητα. Η αναιρέσιμη συλλογιστική αντιμετωπίζει αποδοτικά τις πιθανές συγκρούσεις ή τις ασυνέπειες μεταξύ των στοιχείων που απαρτίζουν την πληροφορία, γι αυτό και περιέχουν την κλασσική αναίρεση (classical negation) σε αντίθεση με τα συνηθισμένα συστήματα λογικού προγραμματισμού. Στην ουσία οι συγκρούσεις μεταξύ των κανόνων προκύπτουν όταν το συμπέρασμα του ενός αναιρεί το - 20 -
συμπέρασμα ενός άλλου κανόνα. Ένα ακόμη πλεονέκτημα της αναιρέσιμης συλλογιστικής είναι η δυνατότητα αντιμετώπισης της αναίρεσης ως αποτυχία (negation as failure NAF). [10] 3.2.2 Η γλώσσα Στην αναιρέσιμη συλλογιστική κάθε αναιρέσιμη θεωρία D (defeasible theory) είναι μία τριπλέτα της μορφής (F, R, >), όπου F είναι το σύνολο των γεγονότων, R είναι το σύνολο των κανόνων και > είναι η σχέση προτεραιότητας. Η αναιρέσιμη συλλογιστική προσφέρει τρεις κατηγορίες κανόνων, τους αυστηρούς (strict rules), τους αναιρέσιμους (defeasible rules) και τους αναιρέτες (defeaters). Ο κάθε κανόνας μπορεί να ανήκει σε μία μόνο κατηγορία. Οι αυστηροί κανόνες αποτελούν την πιο γνωστή μορφή κανόνων και αναπαρίστανται με τη μορφή Υ Σ, όπου Υ είναι η υπόθεση του κανόνα και Σ το συμπέρασμα. Κάθε φορά που αληθεύει η υπόθεση του κανόνα, τότε αληθεύει και το συμπέρασμα του κανόνα. Ένα παράδειγμα τέτοιου κανόνα είναι η εξής πρόταση Dogs are animals και ο αντίστοιχος κανόνας είναι dog(x) animal(x). Η επόμενη κατηγορία κανόνων είναι αυτή των αναιρέσιμων κανόνων, οι οποίοι αναπαρίστανται με τη μορφή Υ Σ και μπορούν να αναιρεθούν από κάποιον αντίθετο κανόνα. Ο κανόνας που αναιρεί το συμπέρασμα ενός άλλου κανόνας ονομάζεται αναιρέτης και αναπαρίσταται με τη μορφή Υ ~> Σ. Ένα παράδειγμα αναιρέσιμου κανόνα αλλά και αναιρέτη είναι το εξής: η πρόταση Birds can fly αναπαρίσταται σαν αναιρέσιμος κανόνας με τη μορφή bird(x) fly(x). Ένας αναιρέσιμος κανόνας είναι επίσης ο penguin(x) bird(x) που προκύπτει από την πρόταση Penguin is a bird. Με βάση τους παραπάνω κανόνες προκύπτει το συμπέρασμα ότι penguin(x) fly(x), δηλαδή η πρόταση Penguins can fly. Η ύπαρξη όμως της πρότασης Penguins can not fly που αναπαρίσταται με τη μορφή αναιρέτη penguin(x) ~> not fly(x) αναιρεί τον τελευταίο κανόνα. Οι σχέσεις προτεραιότητας μεταξύ των κανόνων έχουν μεγάλη σημασία, καθώς καθορίζουν πιο κανόνας είναι πιο ισχυρός από τον άλλο. Για παράδειγμα, όταν υπάρχουν δύο κανόνες οι r 1 και r 2, οι οποίοι διέπονται από τη σχέση r 1 > r 2, ο r 1 ονομάζεται ανώτερος (superior) και ο r 2 κατώτερος (inferior). Έτσι σε μία ενδεχόμενη σύγκρουση μεταξύ των δύο αυτών κανόνων, θα υπερίσχυε ο κανόνας με τη - 21 -
μεγαλύτερη προτεραιότητα, δηλαδή ο κανόνας r 1 και η σύγκρουση μεταξύ τους θα είχε αποφευχθεί. 3.2.3 Αναίρεση ως αποτυχία NAF Η αναιρέσιμη συλλογιστική υποστηρίζει την αναίρεση ως αποτυχία (negation as failure NAF). Χρησιμοποιώντας τη 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. [10] 3.2 Στόχοι της Διπλωματικής Εργασίας Όπως έχει ήδη αναφερθεί, ένας νέος τομέας έρευνας στο ΣΙ είναι η συλλογιστική και η αποδοτικότερη επικοινωνία μεταξύ πρακτόρων που δρουν σε ένα πολυ-πρακτορικό περιβάλλον. Οι γλώσσες κανόνων καθώς και τα συστήματα κανόνων παίζουν σημαντικό ρόλο στην εξέλιξη του σεναρίου που αναπτύσσεται στην παρούσα διπλωματική. Η αναιρέσιμη συλλογιστική είναι μείζονος σημασίας και μπορεί να διευκολύνει την επικοινωνία των πρακτόρων σε μεγάλο βαθμό. Ο πιο βασικός στόχος της παρούσας διπλωματικής είναι η μοντελοποίηση της επικοινωνίας μεταξύ πρακτόρων με την ανταλλαγή ενός συνόλου από κανόνες. Πιο συγκεκριμένα, οι πράκτορες, χωρίς να μιλάνε την ίδια «γλώσσα», μπορούν και επικοινωνούν και ταυτόχρονα διαπραγματεύονται τους όρους του συμβολαίου που θα «υπογράψουν». Για το σκοπό αυτό χρησιμοποιείται επίσης και η υπηρεσία αναιρέσιμης συλλογιστικής, η οποία παρέχεται από έναν ανεξάρτητο πράκτορα, ο οποίος έχοντας τα κατάλληλα στοιχεία, μπορεί να επιτελέσει υπηρεσίες συλλογιστικής. - 22 -
Στην παρούσα εργασία υλοποιείται ένα σενάριο, στο οποίο συμμετέχουν ευφυείς πράκτορες οι οποίοι επικοινωνούν μεταξύ τους και διαπραγματεύονται τους όρους του συμβολαίου που θα «υπογραφεί», ανταλλάσσοντας σταδιακά τμήματα κανόνων που αντιπροσωπεύουν την πολιτική τους, πιθανότατα καταλήγοντας τελικά σε κάποια συμφωνία. Πιο συγκεκριμένα, υπάρχει ένα Club, το οποίο εμπορεύεται κρασιά και εκπροσωπείται από έναν πράκτορα. Σε αυτό το Club επιθυμεί να γίνει μέλος ένας πράκτορας που αντιπροσωπεύει τον πελάτη. Έτσι, αρχικά πρέπει να συμφωνήσουν στους όρους του συμβολαίου που θα υπογραφεί μεταξύ τους. Στην Εικόνα 3.1 απεικονίζεται ένα τμήμα αυτού του συμβολαίου, που αφορά τις κατηγορίες πελατών και την πολιτική του Wine Club σχετικά με τις τιμές. 3) Price Policy -A Gold Customer is a customer who has spent more than 600 euro in an order -For a Gold Customer the standard order costs 400 euro - A Silver Customer is a customer who should spent at least 400 euros in an order -For a Silver Customer the standard order costs 300 euro - A Bronze Customer is a customer who should spent at least 200 euro in an order -For a Bronze Customer the standard order costs 100 euro Εικόνα 3.1: Τμήμα του συμβολαίου Λόγω του γεγονότος ότι οι πράκτορες δε «μιλούν» την ίδια γλώσσα και δεν μπορούν να κατανοήσουν τις απαιτήσεις που θέτει ο κάθε πράκτορας, πρέπει να χρησιμοποιηθεί μία υπηρεσία αναιρέσιμης συλλογιστικής, η οποία προσφέρεται από τον πράκτορα Reasoner. Ο Reasoner μπορεί να εξάγει ασφαλή συμπεράσματα και να οδηγήσει στην επιτυχή συμφωνία των όρων του συμβολαίου. Με την επιτυχή ολοκλήρωση του προαναφερθέντος σεναρίου, γίνεται φανερή η δυνατότητα που έχουν οι πράκτορες για επικοινωνία που βασίζεται αποκλειστικά στην ανταλλαγή κανόνων και στη χρήση της υπηρεσίας της συλλογιστικής. - 23 -
Στο σημείο αυτό, πρέπει να αναφερθεί ότι οι κανόνες που ανταλλάσσουν οι πράκτορες είναι της μορφής RuleML ενώ τα αποτελέσματα που προκύπτουν μετά τις υπηρεσίες της συλλογιστικής είναι της μορφής RDF. Δηλαδή, στην παρούσα διπλωματική μοντελοποιείται η επίτευξη της συμφωνίας με ανταλλαγή RuleML και RDF αρχείων. Στη συνέχεια και αφού συμφωνηθούν οι όροι του συμβολαίου, ο πελάτης είναι μέλος του Wine Club και μπορεί να επιτελέσει μία παραγγελία ώστε να του αποσταλούν τα κρασιά που επιθυμεί. Για την εύρυθμη λειτουργία του σεναρίου είναι απαραίτητη η ύπαρξη ενός πράκτορα που θα επιτελεί υπηρεσίες ρολογιού. Ο πράκτορας αυτός είναι ο Timer. Σημαντικό σημείο είναι το γεγονός ότι οι τόσο οι πράκτορες των πελατών όσο και ο πράκτορας που αντιπροσωπεύει το Wine Club, έχουν υλοποιηθεί με τη γλώσσα JESS, ενώ ο ανεξάρτητος πράκτορας, ο Timer, υλοποιήθηκε σε γλώσσα JAVA. Η επικοινωνία όμως των πρακτόρων επιτυγχάνεται καθώς όλοι οι πράκτορες δρουν στο περιβάλλον που προσφέρει το EMERALD. - 24 -
4 Εργαλεία 4.1 Εισαγωγή Τα εργαλεία που χρησιμοποιήθηκαν στην παρούσα διπλωματική εργασία είναι το πλαίσιο ανάπτυξης πρακτόρων, JADE [16], το σύστημα αναιρέσιμης συλλογιστικής, DR-DEVICE [18], η μηχανή κανόνων αλλά και γλώσσα JESS [19] και το πλαίσιο EMERALD [20]. Τα συγκεκριμένα εργαλεία δρουν συλλογικά και εξυπηρετούν τις ανάγκες της συγκεκριμένης διπλωματικής εργασίας με διαφορετικό τρόπο το καθένα. Πιο συγκεκριμένα, το πλαίσιο ανάπτυξης JADE προσφέρει το περιβάλλον μέσα στο οποίο δρουν και αλληλεπιδρούν οι πράκτορες. Το σύστημα DR-DEVICE αντιπροσωπεύεται στο περιβάλλον από τον πράκτορα Reasoner, παρέχοντας υπηρεσίες αναιρέσιμης συλλογιστικής. Με τη βοήθεια της γλώσσας JESS δημιουργήθηκαν πράκτορες που διέπονται από κατάλληλες στρατηγικές. 4.2 Το πλαίσιο JADE 4.2.1 Εισαγωγή Το JADE (Java Agent Development Framework) είναι ένα πλαίσιο ανάπτυξης πρακτόρων, το οποίο παρέχει ένα σύνολο εργαλείων και επιτρέπει την επικοινωνία πολλών πρακτόρων που είναι σύμφωνοι με τις προδιαγραφές της FIPA, χρησιμοποιώντας σαν γλώσσα επικοινωνίας την FIPA-ACL. Η μεγάλη αποδοχή του JADE στην ανάπτυξη πρακτόρων οφείλεται στο γεγονός ότι παρέχει ένα εύκολο και αποδοτικό χειρισμό των μηνυμάτων που ανταλλάσσουν οι πράκτορες. Η βασική αρχή που διέπει το χειρισμό αυτών των μηνυμάτων, είναι η τοποθέτηση αυτών, σε μία ουρά ACL μηνυμάτων για κάθε πράκτορα, στην οποία ο πράκτορας έχει τη δυνατότητα πρόσβασης. Επίσης, το JADE υποστηρίζει διασύνδεση με το JESS, ένα Java κέλυφος, το οποίο υλοποιεί CLIPS [21]. Το CLIPS (C Language Integrated Production System) είναι ένα εργαλείο για την ανάπτυξη έμπειρων συστημάτων (expert systems). Έτσι, το JADE προσφέρει τη δυνατότητα για έλεγχο των συλλογιστικών ικανοτήτων των - 25 -
αναπτυσσομένων πρακτόρων. Για όλους τους παραπάνω λόγους, το JADE χρησιμοποιείται ως πλατφόρμα ανάπτυξης πρακτόρων, τόσο από ερευνητές όσο και από αρκετές γνωστές εταιρείες. [8, 9, 11, 12, 13, 14] 4.2.2 Αρχιτεκτονική του JADE Όπως έχει ήδη αναφερθεί το JADE είναι σύμφωνο με τις προδιαγραφές της FIPA, οι οποίες ορίζουν το γενικό μοντέλο μιας πλατφόρμας πρακτόρων. Στην Εικόνα 4.1 απεικονίζεται το μοντέλο αυτό. Εικόνα 4.1: Αρχιτεκτονική αναφοράς πλατφόρμας πρακτόρων (FIPA) Όπως φαίνεται και από την παραπάνω εικόνα, το JADE αναλαμβάνει τη γενική διαχείριση των μηνυμάτων, καθώς και τη μεταφορά τους μεταξύ των πρακτόρων. Τα βασικά χαρακτηριστικά αυτής της αρχιτεκτονικής είναι το Agent Management System (AMS) και ο Directory Facilitator (DF). Το AMS είναι ένα πράκτορας που έχει το γενικό έλεγχο για τη χρησιμοποίηση της πλατφόρμας. Κάθε πράκτορας ο οποίος επιθυμεί να χρησιμοποιήσει την πλατφόρμα, πρέπει να επικοινωνήσει με τον AMS που υπάρχει σε κάθε πλατφόρμα και να κάνει register, ώστε να του δοθεί ένα έγκυρο Agent Identifier (AID). Το AID προσδιορίζει μοναδικά τον κάθε πράκτορα, αποτελείται από ένα καθολικό προσδιοριστικό όνομα που περιλαμβάνει το τοπικό όνομα του πράκτορα, το σύμβολο @ και το προσδιοριστικό της πλατφόρμας στην οποία συμμετέχει ο πράκτορας. Το προσδιοριστικό της πλατφόρμας περιλαμβάνει το όνομα του host υπολογιστή, τη θύρα (port) μέσω της οποίας επιτελείται η επικοινωνία και την κατάληξη /JADE. - 26 -
Για παράδειγμα, ένα τέτοιο όνομα είναι το agent1@ibm:1099/jade, στο οποίο φαίνεται ότι το προσδιοριστικό όνομα του πράκτορα είναι το agent1, το όνομα του host υπολογιστή είναι το IBM και η θύρα είναι η 1099. Η παραπάνω διαδικασία αποτελεί την υπηρεσία White Pages όπως αυτή ορίζεται από τη FIPA. Ταυτόχρονα, ο AMS agent ελέγχει τον κύκλο ζωής των πρακτόρων, δηλαδή, τη δημιουργία και τη διαγραφή τους. Ο κύκλος ζωής των πρακτόρων φαίνεται στην Εικόνα 4.2. Αφού δημιουργηθεί ο πράκτορας, αρχικοποιείται, δηλαδή κάνει register και του αποδίδεται ένα AID. Ο πράκτορας τίθεται στην ενεργή κατάσταση (active) και μπορεί να επιτελέσει ενέργειες, όπως είναι η αποστολή ενός μηνύματος. Οι καταστάσεις στις οποίες μπορεί να τεθεί ο πράκτορας είναι waiting, όπου περιμένει να συμβεί κάποια ενέργεια (όπως η έλευση ενός μηνύματος) ή στην κατάσταση suspended, όπου έχει σταματήσει κάθε συμπεριφορά του πράκτορα. Τέλος, η κατάσταση transit αναφέρεται σε έναν πράκτορα, ο οποίος μπορεί να μετακινείται και να αλλάζει πλατφόρμες. Εικόνα 4.2: Ο κύκλος ζωής ενός πράκτορα Το δεύτερο βασικό στοιχείο της αρχιτεκτονικής της πλατφόρμας είναι ο Directory Facilitator (DF) agent. Για να μπορεί ο κάθε πράκτορας να παρέχει μία υπηρεσία πρέπει να κάνει register με έναν DF agent. Ο DF agent παρέχει την υπηρεσία Yellow Pages και μπορεί να δημοσιεύει την υπηρεσία που παρέχει ο κάθε πράκτορας. Έτσι, ο DF agent διατηρεί καταχωρήσεις για τις προσφερόμενες υπηρεσίες από κάθε πράκτορα, καθώς και το AID του κάθε πράκτορα, ώστε όταν - 27 -
κάποιος τρίτος πράκτορας επιθυμεί να χρησιμοποιήσει μία υπηρεσία, επικοινωνεί με τον DF agent και ενημερώνεται για τους πράκτορες που παρέχουν την επιθυμητή υπηρεσία. Ο DF agent του παρέχει τα AID των πρακτόρων που προσφέρουν τη επιθυμητή υπηρεσία και τελικά ο πράκτορας μπορεί να επικοινωνήσει με αυτούς. Η διαδικασία που αναφέρθηκε παραπάνω περιγράφεται σχηματικά στην Εικόνα 4.3. Εικόνα 4.3: Η υπηρεσία Yellow Pages Μεγάλη σημασία έχει και ο κατανεμημένος χαρακτήρας της αρχιτεκτονικής του JADE. Στο JADE, το σύνολο των ενεργών πρακτόρων αποτελεί ένα Container και το σύνολο όλων των Containers ονομάζεται πλατφόρμα (platform). Η αρχιτεκτονική του JADE παρέχει τη δυνατότητα κατανομής μίας πλατφόρμας σε πολλούς υπολογιστές-hosts. Στη Εικόνα 4.4 παρουσιάζεται ένα πιθανό σενάριο από containers και platforms. Η πλατφόρμα 1 κατανέμεται σε τρεις υπολογιστές και αποτελείται από τρεις Containers, ενώ η πλατφόρμα 2 αποτελείται μόνο από ένα Container και δεν είναι κατανεμημένη, δηλαδή βρίσκεται μόνο σε ένα hostυπολογιστή. Οι πράκτορες που φαίνονται στην εικόνα, μπορούν να επικοινωνούν μεταξύ τους γνωρίζοντας μόνο το AID του κάθε πράκτορα. - 28 -
Εικόνα 4.4: Παράδειγμα σεναρίου στο JADE 4.3 JESS 4.3.1 Εισαγωγή Το JESS [19] είναι όχι μόνο μια μηχανή κανόνων (rule engine) υλοποιημένη σε Java αλλά και μια ιδιαίτερη γλώσσα προγραμματισμού. Δημιουργήθηκε το 1995 από τον Ernest Friedman-Hill στα εργαστήρια Sandia National Labs. Το JESS αποτελεί ένα υπερ-σύνολο του κελύφους CLIPS (expert system shell), αλλά είναι πιο προσανατολισμένο στη γλώσσα Java. Για το λόγο αυτό, το JESS μπορεί εύκολα να ενσωματωθεί και να χρησιμοποιηθεί σε συνδυασμό με οποιαδήποτε άλλο σύστημα που βασίζεται στη γλώσσα Java (java based). Σαν αποτέλεσμα, το JESS αποτελεί ένα ισχυρό εργαλείο, το οποίο μπορεί να χρησιμoποιηθεί από πολλές εφαρμογές. Όπως, αναφέρθηκε ήδη, το JESS εμφανίζει διττή φύση. Πιο συγκεκριμένα, λειτουργεί τόσο σαν μία μηχανή κανόνων (rule engine) όσο και σαν μία γλώσσα προγραμματισμού (JESS language). Όταν το JESS χρησιμοποιείται σαν μηχανή κανόνων, τότε είναι υπεύθυνο για την εφαρμογή των κανόνων πάνω στα δεδομένα. Στη δεύτερη περίπτωση, λειτουργεί σαν μια γλώσσα προγραμματισμού, με τη διαφορά ότι μπορεί να χρησιμοποιηθεί σε συνδυασμό με την προγραμματιστική γλώσσα Java. Σε γενικές γραμμές, το συντακτικό της γλώσσας JESS εμφανίζει ομοιότητες με το αυτό του CLIPS. Ταυτόχρονα, παρουσιάζει και αρκετές ομοιότητες με τη γλώσσα Java. Το πιο σημαντικό όμως είναι η δυνατότητα που παρουσιάζει η - 29 -
γλώσσα JESS να καλεί οποιαδήποτε μέθοδο της Java. Με τον τρόπο αυτό, μπορούν να δημιουργηθούν αντικείμενα της Java, χωρίς να γραφεί Java κώδικας, παρά μόνο JESS κώδικας, ο οποίος είναι πιο απλός και δε χρειάζεται μεταγλώττιση. [14, 15] 4.3.2 Αρχιτεκτονική Το JESS παρέχει τη δυνατότητα χρησιμοποίησης διάφορων αρχιτεκτονικών, επιτρέποντας έτσι την χρησιμοποίηση του σε διάφορες εφαρμογές. Οι διάφορες αρχιτεκτονικές που είναι διαθέσιμες συνοψίζονται στη λίστα που παρουσιάζεται στην Εικόνα 4.5. Στην εικόνα αυτή, παρουσιάζεται το ποσοστό συμμετοχής που κατέχει η γλώσσα Java στην ανάπτυξη κάθε εφαρμογής. Με αυτό τον τρόπο, είναι δυνατόν, όποιος ενδιαφέρεται να χρησιμοποιήσει το JESS, να ενημερωθεί για τις επιλογές που έχει και να επιλέξει τη λύση που εξυπηρετεί, με πιο αποδοτικό τρόπο, τους σκοπούς του. Εικόνα 4.5: Λίστα εναλλακτικών αρχιτεκτονικών για την χρήση του JESS. Το JESS, καθώς συνδυάζει όλα τα προαναφερθέντα πλεονεκτήματα, χρησιμοποιείται όχι μόνο για ακαδημαϊκούς σκοπούς αλλά και για εμπορικούς. Οι τομείς στους οποίους χρησιμοποιείται κυρίως είναι οι πράκτορες λογισμικού (software agents) και τα παιχνίδια (games). - 30 -
4.4 DR-DEVICE 4.4.1 Εισαγωγή Το DR-DEVICE [18] είναι ένα σύστημα αναιρέσιμης συλλογιστικής, το οποίο χρησιμοποιείται στο Σημασιολογικό Ιστό. Το DR-DEVICE έχει τη δυνατότητα να επιτελεί διαδικασίες συλλογιστικής πάνω σε δεδομένα RDF, χρησιμοποιώντας κανόνες αναιρέσιμης συλλογιστικής. Το σύστημα αναπτύχθηκε πάνω στο σύστημα παραγωγής κανόνων CLIPS και βασίστηκε στο R-DEVICE [23]. Το R-DEVICE είναι ένα παλιότερο σύστημα κανόνων, το οποίο παρέχει τη δυνατότητα άσκησης ερωτημάτων σε RDF δεδομένα. Οι κανόνες στους οποίους βασίζεται το DR-DEVICE ώστε να επιτελέσει τις διαδικασίες της συλλογιστικής μπορούν να γραφούν είτε σε γλώσσα της μορφής CLIPS είτε σε μορφή RuleML [22]. Τα πιο σημαντικά χαρακτηριστικά του DR-DEVICE είναι τα ακόλουθα: η υποστήριξη πολλών τύπων κανόνων αναιρέσιμης συλλογιστικής, όπως οι αυστηροί κανόνες (strict rules), οι αναιρέσιμοι κανόνες (defeasible rules) και οι αναιρέτες (defeaters). η υποστήριξη τόσο της κλασσικής αναίρεσης (strong negation) όσο και της αναίρεσης ως αποτυχία (negation-as-failure). η άμεση εισαγωγή οντολογιών σε γλώσσα RDF από το διαδίκτυο σαν δεδομένα εισόδου στο πρόγραμμα αναιρέσιμης συλλογιστικής. η άμεση εισαγωγή προγραμμάτων αναιρέσιμης συλλογιστικής από το διαδίκτυο, σε μορφή RuleML, η οποία είναι σύμφωνη με την XML. η άμεση εξαγωγή των αποτελεσμάτων (συμπερασμάτων) ενός προγράμματος σε ένα έγγραφο RDF. 4.4.2 Αρχιτεκτονική του DR-DEVICE Το σύστημα DR-DEVICE αποτελείται από δύο βασικά στοιχεία, το RDF loader/translator και το rule loader. Η διαδικασία που ακολουθείται για την λειτουργία του συστήματος είναι η ακόλουθη. Ο χρήστης εισάγει στον rule loader/translator ένα πρόγραμμα κανόνων, το οποίο περιλαμβάνει κανόνες οι οποίοι ακολουθούν το συντακτικό της RuleML. Επίσης, περιλαμβάνει το URL του RDF εγγράφου με τα δεδομένα και το όνομα του εγγράφου που θα προκύψει αφού - 31 -
εξαχθούν τα συμπεράσματα. Στη συνέχεια, το RuleML έγγραφο μετατρέπεται σε ένα αντίστοιχο έγγραφο, το οποίο όμως ακολουθεί το συντακτικό της γλώσσας CLIPS. Έτσι, μεταφέρεται στον rule translator, ο οποίος μεταφράζει τους κανόνες αναιρέσιμης συλλογιστικής σε κανόνες CLIPS. Χρησιμοποιώντας τη μηχανή CLIPS, επιτελείται η συλλογιστική πάνω στους κανόνες και προκύπτει το αποτέλεσμα. Τέλος, το αποτέλεσμα που προέκυψε, εξάγεται σε ένα RDF/XML έγγραφο, το οποίο παρέχεται στο χρήστη. Η παραπάνω διαδικασία περιγράφεται και στην Εικόνα 4.6. Εικόνα 4.6: Αρχιτεκτονική του συστήματος DR-DEVICE 4.5 EMERALD 4.5.1 Εισαγωγή Το EMERALD [20] είναι ένα πλαίσιο, το οποίο αναπτύχθηκε χρησιμοποιώντας σαν βάση το JADE, με σκοπό την διευκόλυνση της αλληλεπίδρασης των πρακτόρων στο ΣΙ. Στο πλαίσιο αυτό προσφέρονται υπηρεσίες συλλογιστικής (reasoning services), βασισμένες σε διάφορες λογικές, οι οποίες αντιπροσωπεύονται από τους κατάλληλους πράκτορες αντιπροσώπους, που - 32 -
ονομάζονται Reasoners. Έτσι, οι πράκτορες που δρουν στο EMERALD μπορούν να επικοινωνούν, ανταλλάσσοντας τη γνώση που κατέχουν με τη μορφή μίας βάσης κανόνων. Ο πράκτορας που λαμβάνει ένα μήνυμα από κάποιον άλλο πράκτορα και δεν είναι σε θέση να κατανοήσει το περιεχόμενο του μπορεί να ζητήσει την βοήθεια του κατάλληλου Reasoner, ώστε να εξάγει την πληροφορία που περιέχεται στο μήνυμα. Επιπλέον, οι πράκτορες που δρουν στο περιβάλλον του EMERALD μπορούν να παραμετροποιηθούν με βάση το πρότυπο KC που παρέχει το πλαίσιο, όπου η συμπεριφορά κάθε πράκτορα μοντελοποιείται σε μια βάση κανόνων. Έτσι, μεταβάλλοντας τη βάση κανόνων του πράκτορα αλλάζει και η συμπεριφορά του καθώς και η πολιτική/στρατηγική για τη επίτευξη των εκάστοτε στόχων του. Στην παρούσα εργασία χρησιμοποιήθηκαν πράκτορες οι οποίοι βασίζονται στη γλώσσα JESS. 4.5.2 Αρχιτεκτονική του EMERALD Στην παρακάτω ενότητα περιγράφονται τα χαρακτηριστικά που συγκεντρώνει το EMERALD, τα οποία είναι ο Reasoner, το μοντέλο πρακτόρων KC, η υπηρεσία Advanced Yellow Pages Service (AYPS) και αρκετές μέθοδοι της JAVA (Basic Java Library). 4.5.2.1 Reasoner Όπως αναφέρθηκε το EMERALD υποστηρίζει και υπηρεσίες συλλογιστικής, οι οποίες παρέχονται από την αντίστοιχο Reasoner. Στα πλαίσια της παρούσας εργασίας χρησιμοποιείται ο DR-Reasoner, ο οποίος παρέχει υπηρεσίες αναιρέσιμης συλλογιστικής. Η διαδικασία επικοινωνίας με τον DR-Reasoner παρουσιάζεται στην Εικόνα 4.7. Ο Reasoner αναμένει μηνύματα ACL τύπου REQUEST από τους πράκτορες και μόλις λάβει ένα τέτοιου είδους μήνυμα ενεργοποιείται το σύστημα DR-DEVICE, το οποίο περιγράφηκε παραπάνω. Τα αποτελέσματα που θα προκύψουν από τη συλλογιστική που θα επιτελέσει το DR-DEVICE σύστημα επιστρέφονται από τον Reasoner στον πράκτορα με ένα μήνυμα ACL τύπου INFORM. - 33 -
Εικόνα 4.7: Είσοδος και έξοδος του Reasoner 4.5.2.2 Μοντέλο πρακτόρων KC Ένα ακόμη χαρακτηριστικό του EMERALD είναι το μοντέλο KC το οποίο παρέχει την δυνατότητα μοντελοποίησης των πρακτόρων. Οι πράκτορες παραμετροποιούνται με μία βάση γνώσης (knowledge base) η οποία περιέχει γνώση που σχετίζεται με το περιβάλλον (με τη μορφή των γεγονότων), πρότυπα συμπεριφορών (με τη μορφή κανόνων) και στρατηγικές. Όταν αλλάζει η βάση γνώσης, τότε αλλάζουν αυτόματα η συμπεριφορά αλλά και οι γνώσεις που κατέχει ο πράκτορας. Το μοντέλο KC έχει ενσωματωμένη τη μηχανή κανόνων JESS και η βάση γνώσης που κατέχει κάθε πράκτορας περιγράφεται με τη γλώσσα JESS. 4.5.2.3 Advanced Yellow Pages Service Όπως έχει ήδη αναφερθεί, το JADE παρέχει υπηρεσίες Yellow Pages με τη χρήση του DF Agent. Το EMERALD παρέχει το advanced yellow pages service (AYPS) μοντέλο, το οποίο είναι απόλυτα αυτοματοποιημένο. Οι υπηρεσίες που παρέχει ή που αναζητά ο κάθε πράκτορας, είναι καταχωρημένες σε ένα ξεχωριστό αρχείο. Κάθε φορά που κάποιος πράκτορας θέλει να γνωστοποιήσει τις υπηρεσίες τις οποίες προσφέρει, τότε ενεργοποιείται ο AYPS και τις τοποθετεί σε έναν κατάλογο. Όταν κάποιος πράκτορας αναζητά κάποιες υπηρεσίες, τότε ο AYPS εκτελεί την αναζήτηση στο προαναφερθέν κατάλογο και επιστρέφει στον πράκτορα τα ονόματα των πρακτόρων που παρέχουν τις υπηρεσίες που ζήτησε. Στο KC μοντέλο, ο AYPS επιστρέφει τα ονόματα των πρακτόρων που παρέχουν τις υπηρεσίες σαν δεδομένα της γλώσσας JESS με την εξής μορφή: (service_type (provider provider_name)). 4.5.2.4 Basic Java Library Το πλαίσιο EMERALD παρέχει επιπλέον μια Java βιβλιοθήκη, οι μέθοδοι της οποίας παίζουν σημαντικό ρόλο στην επικοινωνία και μπορούν να χρησιμοποιηθούν από τους KC-πράκτορες μέσω της γλώσσας JESS στην οποία υλοποιούνται οι πράκτορες. - 34 -
Ένα παράδειγμα είναι η μέθοδος extracttriplets η οποία εξάγει τις πιθανές τριπλέτες που υπάρχουν σε ένα RDF αρχείο και τα αποθηκεύει με τη μορφή δεδομένων (facts). Ένα παράδειγμα είναι αυτό που παρουσιάζεται στην Εικόνα 4.8 όπου ο συγκεκριμένος κανόνας προσπαθεί να βρει την ιδιότητα Α του Β. (defrule find_a (triple (subject?x) (predicate rdf:type) (object dr-device:xx)) (triple (subject?x) (predicate dr-device:b) (object?a)) (assert(a?a))) Εικόνα 4.8: Παράδειγμα κλήσης Java μεθόδου μέσω JESS. - 35 -
- 36 -
5 Υλοποίηση 5.1 Σενάριο 5.1.1 Συμμετέχοντες Στα πλαίσια της διπλωματικής υλοποιήθηκε ένα πλήρες παράδειγμα σε ένα σενάριο για τη λειτουργία ενός Wine Club, δηλαδή μίας επιχείρησης που εμπορεύεται κρασιά. Στο συγκεκριμένο σενάριο εμπλέκονται τέσσερα ανεξάρτητα μέρη, ο εκπρόσωπος του Wine Club, οι πελάτες (customers), ο πράκτορας που παρέχει την υπηρεσία της συλλογιστικής (Reasoner) και ένας πράκτορας (Timer) που παρέχει τις υπηρεσίες ενός ρολογιού με σκοπό το συγχρονισμό των συναλλαγών μεταξύ των πρακτόρων ανάλογα με το συμβόλαιο που έχει οριστεί. Αυτά τα τέσσερα ανεξάρτητα μέρη αντιπροσωπεύονται από ευφυείς πράκτορες, οι οποίοι επικοινωνούν μεταξύ τους και δημιουργούν ένα πολυ-πρακτορικό σύστημα (Multi-Agent System). Το σύστημα υλοποιήθηκε στο περιβάλλον του EMERALD. Ο εκπρόσωπος του Wine Club έχει μία λίστα στην οποία συνοψίζει τι απαιτήσεις έχει από έναν πελάτη ο οποίος επιθυμεί να γίνει μέλος του Wine Club. Οι απαιτήσεις αυτές αφορούν τα προσωπικά στοιχεία τα οποία πρέπει να αποκαλύψει ο πελάτης ώστε να γίνει μέλος του Wine Club. Επίσης, υπάρχει μία λίστα στην οποία περιλαμβάνονται όλες οι κατηγορίες πελατών που προσφέρει το Wine Club και τα στοιχεία αυτών των κατηγοριών που αφορούν το πόσο συχνά οφείλει να κάνει παραγγελία το κάθε μέλος του Wine Club, το ελάχιστο κόστος που πρέπει να έχει κάθε παραγγελία. Τέλος, υπάρχει και μία λίστα που περιέχει τα διαθέσιμα κρασιά. Έτσι, ο εκπρόσωπος του Wine Club έχει σαν αρμοδιότητα την ένταξη νέων πελατών και την κατηγοριοποίησή τους σε κάποια από τις διαθέσιμες κατηγορίες πελατών. Ο πελάτης (customer), που στο συγκεκριμένο σενάριο υλοποιήθηκαν δύο πελάτες με διαφορετικές πολιτικές ο καθένας, είναι ένα πιθανό μέλος του Wine Club. Έχει όμως κάποιες απαιτήσεις οι οποίες αφορούν καταρχήν τα προσωπικά στοιχεία - 37 -
τα οποία είναι διατεθειμένος να αποκαλύψει στο Wine Club, αλλά και στοιχεία που σχετίζονται με την εκτέλεση των παραγγελιών μέσω του Wine Club. Έτσι, όλες αυτές οι απαιτήσεις πρέπει να ληφθούν υπόψη και να πληρούνται πριν γίνει μέλος στο Wine Club. Ο Reasoner είναι ο πράκτορας που προσφέρει μια ανεξάρτητη υπηρεσία συλλογιστικής, η οποία έχει την δυνατότητα να εφαρμόζει τους κανόνες της αναιρέσιμης συλλογιστικής σε βάσεις κανόνων που διέπονται από την αναιρέσιμη λογική, παράγοντας το τελικό αποτέλεσμα σε RDF μορφή. Η είσοδος (input) της υπηρεσίας είναι, δηλαδή, μια βάση κανόνων, την οποία την αποστέλλει ο ενδιαφερόμενος πράκτορας και το αποτέλεσμα (output) είναι ένα RDF αρχείο. Τέλος, ο Timer είναι ο πράκτορας που προσφέρει μια ανεξάρτητη υπηρεσία χρόνου, η οποία λειτουργεί σαν ένα ρολόι. Ενημερώνει του πράκτορες που έχουν εγγραφεί στην υπηρεσία που προφέρει ο Timer, κάθε φορά που ξεκινάει ένας καινούριος μήνας. Έτσι, τόσο τα μέλη όσο και ο εκπρόσωπος του Wine Club, μπορούν να γνωρίζουν τον τρέχων μήνα και να εκτελούν τις συναλλαγές όπως ορίζονται από το εκάστοτε συμβόλαιο που υπάρχει μεταξύ του Wine Club και του κάθε μέλους αυτού. 5.1.2 Απαιτήσεις του Εκπροσώπου του Wine Club Ο εκπρόσωπος του Wine Club έχει κάποιες απαιτήσεις που αφορούν τα προσωπικά στοιχεία που επιθυμεί να γνωρίζει από τον πελάτη που επιθυμεί να γίνει μέλος στο Wine Club. Πιο συγκεκριμένα, από κάθε πελάτη επιθυμεί να γνωρίζει: το όνομα του πελάτη το email του πελάτη τον αριθμό της πιστωτικής κάρτας με την οποία θα εκτελεί τις συναλλαγές ο πελάτης το όνομα του κατόχου της πιστωτικής κάρτας με την οποία θα εκτελεί τις συναλλαγές ο πελάτης την ημερομηνία λήξης της πιστωτικής κάρτας με την οποία θα εκτελεί τις συναλλαγές ο πελάτης Όλα αυτά, όμως, για να χρησιμοποιηθούν θα πρέπει πρώτα να μετατραπούν από την φυσική γλώσσα σε μια κατάλληλη μορφή, δηλαδή να εκφραστούν σε αναιρέσιμη - 38 -
λογική. Στην Εικόνα 5.1 παρουσιάζεται ένα τμήμα από το έγγραφο RuleML που περιέχει τις απαιτήσεις του εκπροσώπου του Wine Club. <rulebase > <_rbaselab><ind type="defeasible" >WineClub s-rules</ind></_rbaselab> <imp> <_rlab ruleid="r1" ruletype="defeasiblerule"/> <_head> <atom> <_opr><rel href="sendable"/></_opr> <_slot name="customersname"><var>x</var></_slot> <_slot name="customersemail"><var>y</var></_slot> <_slot name="customersnameofcardholder"><var>z</var> </_slot> <_slot name="customersdateofexpirationofcard"><var>w</var></_slot> <_slot name="customerscreditcardnum"><var>d</var></_slot> </atom></_head> <_body> <atom> <_opr><rel href="dr-device:sendable"/></_opr> <_slot name="dr-device:customersname"><var>x</var></_slot> <_slot name="dr-device:customersemail"><var>y</var></_slot> <_slot name="dr-device:customersnameofcardholder"><var>z</var></_slot> <_slot name="dr-device:customersdateofexpiration"><var>w</var></_slot> <_slot name="dr-device:customerscreditcardnum"><var>d</var></_slot> </atom></_body></imp> </rulebase> Εικόνα 5.1: Μέρος του εγγράφου RuleML, που καθορίζει τις απαιτήσεις του Wine Club σχετικά με τα προσωπικά στοιχεία του πελάτη. 5.1.3 Κατηγορίες μελών του Wine Club Το Wine Club προσφέρει τρεις κατηγορίες πελατών. Το κάθε υποψήφιο μέλος του Wine Club ενημερώνεται για τις διαθέσιμες κατηγορίες και ανάλογα με τις προτιμήσεις του, μπορεί να επιλέξει σε ποια κατηγορία θα ενταχθεί. Οι μεταβλητές που καθορίζουν τις τρεις κατηγορίες πελατών είναι το κόστος της παραγγελίας, η συχνότητα με την οποία πρέπει να επιτελείται η διαδικασία της παραγγελίας, η παράταση που μπορεί να δοθεί ώστε να μην εκτελέσει τη διαδικασία της παραγγελίας ο πελάτης, ο χρόνος παράδοσης των προϊόντων, η έκπτωση που έχει ο πελάτης σε περίπτωση που δεν είναι διαθέσιμα τα προϊόντα που επιθυμεί ο πελάτης και το πρόστιμο που πρέπει να πληρώσει ο πελάτης σε περίπτωση που επιστρέψει την παραγγελία. - 39 -
Οι τρεις διακριτές κατηγορίες πελατών είναι ο Gold Customer, ο Silver Customer και ο Bronze Customer. Για τις τρεις αυτές κατηγορίες, οι προαναφερθείσες μεταβλητές έχουν διαφορετικές τιμές. Ο Gold Customer είναι αυτός που απολαμβάνει τα πιο πολλά πλεονεκτήματα (όπως μεγαλύτερη έκπτωση και πιο σύντομο χρονικό διάστημα παράδοσης των προϊόντων) αλλά ταυτόχρονα το κόστος της κάθε παραγγελίας είναι μεγαλύτερο. Πιο συγκεκριμένα, οι τιμές των μεταβλητών για κάθε κατηγορία συνοψίζονται στον Πίνακα 5.1 από τον οποίο είναι ευδιάκριτος ο διαχωρισμός μεταξύ των κατηγοριών. Κατηγορία πελάτη Τιμές Μεταβλητών Gold Customer Κόστος παραγγελίας 600 Συχνότητα παραγγελίας 1/3 Παράταση παραγγελίας = 2 μήνας Χρόνος παράδοσης = 5 ημέρες Έκπτωση = 8% Πρόστιμο επιστροφής παραγγελίας= 6% Silver Customer Κόστος παραγγελίας 400 Συχνότητα παραγγελίας 1/4 Παράταση παραγγελίας = 1 μήνας Χρόνος παράδοσης = 7 ημέρες Έκπτωση = 4% Πρόστιμο επιστροφής παραγγελίας = 8% Bronze Customer Κόστος παραγγελίας 200 Συχνότητα παραγγελίας 1/4 Παράταση παραγγελίας = 1 μήνας Χρόνος παράδοσης = 7 ημέρες Έκπτωση = 2% Πρόστιμο επιστροφής παραγγελίας= 10% Πίνακας 5.1: Χαρακτηριστικά των τριών κατηγοριών του πελάτη. 5.1.4 Πολιτικές πελατών Για τη εκτέλεση του συγκεκριμένου σεναρίου υλοποιήθηκαν δύο πελάτες με διαφορετικές πολιτικές ο καθένας. Αρχικά, θα περιγραφεί η πολιτική του πρώτου πελάτη, έστω Customer_1. Πολιτική Customer_1 Όπως είναι ήδη γνωστό το πρώτο βήμα του συμβολαίου είναι η συμφωνία των δύο πρακτόρων, πελάτη και εκπροσώπου Wine Club, στα προσωπικά στοιχεία που θα - 40 -
στείλει ο πρώτος στο δεύτερο. Τα προσωπικά στοιχεία που απαιτεί να γνωρίζει ο εκπρόσωπος του Wine Club έχουν περιγραφεί στην ενότητα 5.2.2. Τα προσωπικά στοιχεία που ο Customer_1 είναι διατεθειμένος να αποστείλει στον εκπρόσωπο του Wine Club είναι: το όνομά του η ηλικία του το email του τον αριθμό της πιστωτικής κάρτας με την οποία θα εκτελεί τις συναλλαγές το όνομα του κατόχου της πιστωτικής κάρτας με την οποία θα εκτελεί τις συναλλαγές την ημερομηνία λήξης της πιστωτικής κάρτας με την οποία θα εκτελεί τις συναλλαγές Στη συνέχεια και με βάση το σενάριο, ο πελάτης έχοντας ορίσει τις απαιτήσεις του, πρέπει να αποφασίσει σε ποια κατηγορία θα ενταχθεί. Η μόνη απαίτηση που έχει είναι η παραγγελία να κοστίζει 500 ευρώ. Αυτές οι απαιτήσεις είναι αρκετές για να ολοκληρωθεί το πρώτο κομμάτι του σεναρίου, κατά το οποίο επιτελείται η διαπραγμάτευση των όρων του σεναρίου. Πρέπει να σημειωθεί ότι πελάτης, σύμφωνα με τις απαιτήσεις του καταχωρείται στην κατηγορία Silver customer. Το επόμενο στάδιο του σεναρίου περιλαμβάνει την εκτέλεση των παραγγελιών. Η πολιτική του Customer_1 ορίζει ότι ο πράκτορας θα επιτελέσει κανονικά την παραγγελία, στο χρονικό διάστημα που καθορίζεται από την κατηγορία πελάτη στην οποία θα εγγραφεί ο πελάτης. Στην Εικόνα 5.2 παρουσιάζεται ένα τμήμα του εγγράφου RDF, το οποίο περιλαμβάνει τα προσωπικά στοιχεία του πελάτη και τις προτιμήσεις του για τις παραγγελίες. - 41 -
<rdf:rdf > <personal-data rdf:about= > <name rdf:datatype= &rdfs;literal >Petridis</name> <email rdf:datatype= &rdfs;literal >petridis@gmail.com</email> <age rdf:datatype= xsd;integer >35</age> </personal-data> <order-pref rdf:about= > <amount rdf:datatype= &xsd;integer >500</amount> </order-pref> </rdf:rdf> Εικόνα 5.2: Μέρος του εγγράφου RDF, που αφορά τα προσωπικά δεδομένα του πελάτη και τις προτιμήσεις του για τις παραγγελίες. Πολιτική Customer_2 Ο δεύτερος πελάτης που υλοποιήθηκε έχει ως ένα σημείο την ίδια πολιτική με τον Customer_1. Πιο συγκεκριμένα, ο Customer_2 έχει την ίδια πολιτική με τον Customer_1 σε σχέση με τα προσωπικά στοιχεία που είναι διατεθειμένος να αποστείλει στον εκπρόσωπο του Wine Club. Δηλαδή, μπορεί να στείλει τα εξής: το όνομά του η ηλικία του το email του τον αριθμό της πιστωτικής κάρτας με την οποία θα εκτελεί τις συναλλαγές το όνομα του κατόχου της πιστωτικής κάρτας με την οποία θα εκτελεί τις συναλλαγές την ημερομηνία λήξης της πιστωτικής κάρτας με την οποία θα εκτελεί τις συναλλαγές Η διαφορά έγκειται στις απαιτήσεις που έχει ο πελάτης σχετικά με την κατηγορία στην οποία θα ενταχθεί. Πιο συγκεκριμένα, οι απαιτήσεις που έχει ο Customer_2 είναι οι εξής: κόστος παραγγελίας = 700 ευρώ παράταση παραγγελίας = 2 μήνες χρόνος παράδοσης = 5 ημέρες - 42 -
Με βάση αυτές τις απαιτήσεις ο Customer_2 καταχωρείται στην κατηγορία του Gold Customer και το σενάριο περνάει στο επόμενο στάδιο, αυτό των παραγγελιών. Ο συγκεκριμένος πελάτης έχει υλοποιηθεί ώστε να μην επιτελεί παραγγελία στο χρονικό διάστημα, το οποίο ορίζεται από την κατηγορία στην οποία ανήκει. Έτσι, ο εκπρόσωπος του Wine Club, τον ενημερώνει ότι θα του αποσταλεί μία τυπική παραγγελία, η οποία ορίζεται από το συμβόλαιο που «υπογράφηκε». Στην Εικόνα 5.3 παρουσιάζεται ένα τμήμα του εγγράφου RDF, το οποίο περιλαμβάνει τα προσωπικά στοιχεία του πελάτη και τις προτιμήσεις του για τις παραγγελίες. <rdf:rdf > <personal-data rdf:about= > <name rdf:datatype= &rdfs;literal >Palaiologou</name> <email rdf:datatype= &rdfs;literal >pap@yahoo.com</email> <creditcardnumber rdf:datatype= xsd;integer >6879</ creditcardnumber> </personal-data> <order-pref rdf:about= > <amount rdf:datatype= &xsd;integer >700</amount> <suspension rdf:datatype= &xsd;integer >2</suspension> <delivery rdf:datatype= &xsd;integer >5</delivery> Εικόνα 5.3: Μέρος του εγγράφου RDF, που αφορά τα προσωπικά δεδομένα του πελάτη και τις προτιμήσεις του για τις παραγγελίες. 5.1.5 Αναλυτική Περιγραφή Σεναρίου Το πρώτο βήμα του σεναρίου είναι η ενεργοποίηση των ανεξάρτητων πρακτόρων, δηλαδή του Reasoner και του Timer. Ο Reasoner, όπως έχει ήδη αναφερθεί είναι υλοποιημένος στο EMERALD (μέσω του DR-DEVICE), οπότε δε χρειάζεται κάποια διαδικασία για την ενεργοποίησή του. Ο Timer, χρειάζεται να ενεργοποιηθεί με μία απλή εντολή, όπως φαίνεται και στην Εικόνα 5.4. Στην ίδια εικόνα απεικονίζεται και ο πράκτορας DR_Reasoner, ο οποίος όπως αναφέρθηκε είναι ήδη υλοποιημένος. - 43 -
Εικόνα 5.4: Ενεργοποίηση του πράκτορα Timer. Στη συνέχεια, πρέπει να ενεργοποιηθεί ο πράκτορας που αντιπροσωπεύει το Wine Club. Ταυτόχρονα πρέπει να καταχωρήσει στον AYPS τις υπηρεσίες που προσφέρει ώστε όταν κάποιος πελάτης αναζητήσει αντίστοιχες υπηρεσίες να μπορεί να απευθυνθεί στο συγκεκριμένο πράκτορα. Επίσης, κοινοποιεί και τις υπηρεσίες τις οποίες αναζητά που στη συγκεκριμένη περίπτωση είναι απλά οι υπηρεσίες που παρέχει ο πράκτορας Timer. Με τον τρόπο αυτό, μπορεί ο εκπρόσωπος του Wine Club να ενημερώνεται για την πάροδο του χρονικού διαστήματος του ενός μήνα. Αφού επιτελεστούν αυτές οι διαδικασίες, ο συγκεκριμένος πράκτορας αναμένει μήνυμα από έναν πελάτη που επιθυμεί να γίνει μέλος στο Wine Club. Όπως έχει ήδη αναφερθεί, στο συγκεκριμένο σενάριο υπάρχουν δύο πελάτες με διαφορετικές πολιτικές. Αρχικά, θα περιγραφεί η πολιτική και η διαδικασία εκτέλεσης του σεναρίου για τον πρώτο πελάτη. Ο πρώτος πελάτης, αφού αναζητήσει μέσω του AYPS τις υπηρεσίες που επιθυμεί, εντοπίζει τον εκπρόσωπο του Wine Club και του αποστέλλει ένα μήνυμα με το οποίο του ζητάει να γίνει μέλος στο Wine Club. Ο εκπρόσωπος του Wine Club λαμβάνει το συγκεκριμένο μήνυμα και αποστέλλει ένα αρχείο με τα προσωπικά στοιχεία που απαιτεί να γνωρίζει από τον πράκτορα σε περίπτωση που δεχθεί να γίνει μέλος στο Wine Club. Στο σημείο αυτό ολοκληρώνεται το πρώτο (1) βήμα της διαδικασίας. - 44 -
Ο πελάτης λαμβάνει το συγκεκριμένο μήνυμα, αλλά δεν μπορεί να συνδυάζει τις απαιτήσεις του εκπροσώπου του Wine Club με τις δικές του απαιτήσεις, δηλαδή με τα στοιχεία που είναι διατεθειμένος να αποκαλύψει προκειμένου να εγγραφεί στο Wine Club. Έτσι, επικοινωνεί με το Reasoner, ο οποίος προσφέρει υπηρεσίες συλλογιστικής, στέλνοντας του τις απαιτήσεις του εκπρόσωπου του Wine Club, καθώς και τις δικές του προτιμήσεις. Στο σημείο αυτό ολοκληρώνεται το δεύτερο (2) βήμα της διαδικασίας. Μόλις ο Reasoner λάβει ένα αίτημα, καλεί την εφαρμογή DR-DEVICE εφοδιάζοντας την με τα δεδομένα του αιτήματος. Αυτή με τη σειρά της επεξεργάζεται τα δεδομένα και επιστρέφει ένα RDF έγγραφο, το οποίο περιέχει τελικά προσωπικά στοιχεία του πελάτη που μπορεί να αποκαλύψει στον εκπρόσωπο του Wine Club. Όταν το αποτέλεσμα είναι έτοιμο, ο Reasoner ενημερώνει τον πελάτη και αυτός με τη σειρά του ενημερώνει τον εκπρόσωπο του Wine Club. Έτσι, τα βήματα τρία (3) και τέσσερα (4) της διαδικασίας ολοκληρώνονται. Μόλις ο εκπρόσωπος του Wine Club λάβει αυτό το μήνυμα, προχωράει στην αποστολή του εγγράφου που περιέχει τις πληροφορίες που χαρακτηρίζουν τις τρεις διαθέσιμες κατηγορίες πελατών, το οποίο και λαμβάνει ο πελάτης. Στο σημείο αυτό ολοκληρώνεται το πέμπτο (5) βήμα της διαδικασίας. Για ακόμη μία φορά, ο πελάτης αναζητά τη βοήθεια του Reasoner και του αποστέλλει το έγγραφο με τις τρεις διαθέσιμες κατηγορίες πελατών καθώς και τις προσωπικές του προτιμήσεις που αφορούν τη διαδικασία εκτέλεσης των παραγγελιών και με αυτό τον τρόπο ολοκληρώνεται το έκτο (6) βήμα της διαδικασίας. Ο Reasoner καλεί την εφαρμογή DR-DEVICE εφοδιάζοντας την με τα δεδομένα του αιτήματος. Αυτή με τη σειρά της επεξεργάζεται τα δεδομένα και επιστρέφει ένα RDF έγγραφο, το οποίο περιέχει τελικά την κατηγορία στην οποία ανήκει ο πελάτης. Όταν το αποτέλεσμα είναι έτοιμο, ο Reasoner ενημερώνει τον πελάτη και αυτός με τη σειρά του ενημερώνει τον εκπρόσωπο του Wine Club. Έτσι, τα βήματα τρία (7) και τέσσερα (8) της διαδικασίας ολοκληρώνονται. Μόλις ο εκπρόσωπος λάβει το μήνυμα, μπορεί πλέον να καταχωρήσει τον πελάτη σαν μέλος του Wine Club. Έτσι, αποθηκεύει όλα τα προσωπικά στοιχεία, την κατηγορία στην οποία ανήκει καθώς και τον τρέχοντα μήνα (όπως αυτός προκύπτει από τη συνεχή ενημέρωση από τον Timer) που αντιπροσωπεύει τη χρονική στιγμή της - 45 -
εγγραφής του πελάτη στο Wine Club. Στο σημείο αυτό ολοκληρώνεται το ένατο (9) βήμα της διαδικασίας. Στη συνέχεια ο εκπρόσωπος του Wine Club αποστέλλει ένα μήνυμα το οποίο περιλαμβάνει τη λίστα με τα διαθέσιμα κρασιά του Wine Club από τα οποία μπορεί να επιλέξει ο πελάτης για την παραγγελία του. Ο πελάτης λαμβάνει το μήνυμα και αποθηκεύει τη συγκεκριμένη λίστα σε ένα ξεχωριστό αρχείο. Στο σημείο αυτό ολοκληρώνεται το δέκατο (10) βήμα της διαδικασίας. Στο επόμενο βήμα ο εκπρόσωπος του Wine Club αποστέλλει στον πελάτη ένα αρχείο που περιγράφει το πρότυπο αρχείο που πρέπει να στέλνει ο πελάτης κάθε φορά που θέλει να επιτελέσει μία παραγγελία. Το μήνυμα αυτό, το λαμβάνει ο πελάτης και αποθηκεύει αυτό το αρχείο και έτσι ολοκληρώνεται το ενδέκατο (11) βήμα της διαδικασίας. Στη συνέχεια, αρμοδιότητα του εκπροσώπου του Wine Club είναι να ελέγχει ότι εκτελείται σωστά το πρόγραμμα των παραγγελιών, ότι δηλαδή ο πελάτης εκτελεί την παραγγελία μέσα στο χρονικό διάστημα το οποίο καθορίζεται από την κατηγορία στην οποία ανήκει ο πελάτης. Έτσι, για κάθε μήνα, δηλαδή κάθε φορά που ενημερώνεται από τον Timer ότι περάσει ένας μήνας, ελέγχει εάν είναι η χρονική στιγμή που ο πελάτης πρέπει να στείλει την παραγγελία του. Πιο συγκεκριμένα, μόλις ο εκπρόσωπος του Wine Club διαπιστώσει ότι ο πελάτης έχει ακόμη ένα μήνα διαθέσιμο για να εκτελέσει την παραγγελία, του αποστέλλει ένα ενημερωτικό μήνυμα. Έτσι, ολοκληρώνεται το δωδέκατο (12) βήμα της διαδικασίας. Ο πελάτης λαμβάνει το μήνυμα και έχει τη δυνατότητα να αποστείλει στον εκπρόσωπο του Wine Club ένα μήνυμα που θα περιλαμβάνει την παραγγελία του είτε να αγνοήσει το μήνυμα που του έστειλε ο εκπρόσωπος του Wine Club και να μην αποστείλει κάποια παραγγελία. Στο σημείο αυτό ολοκληρώνεται το δέκατο-τρίτο (13) βήμα της διαδικασίας. Εφόσον ο πελάτης αποστείλει μήνυμα που περιλαμβάνει την παραγγελία του, τότε ελέγχει εάν τα κρασιά που επιθυμεί ο πελάτης υπάρχουν σε διαθεσιμότητα και αν όντως υπάρχουν τότε τον ενημερώνει ότι θα αποστείλει την παραγγελία. Ταυτόχρονα, ο εκπρόσωπος του Wine Club επιτελεί τις κατάλληλες διαδικασίες, όπως είναι η μείωση της διαθέσιμης ποσότητας των κρασιών, αφού κάποια τεμάχια απεστάλησαν στον πελάτη, καθώς και την καταχώρηση ότι ο πελάτης επιτέλεσε την - 46 -
παραγγελία για το συγκεκριμένο χρονικό διάστημα. Με τον τρόπο αυτό ολοκληρώνεται το δέκατο-τέταρτο (14α) βήμα της διαδικασίας. Ο εκπρόσωπος του Wine Club συνεχίζει να ελέγχει εάν είναι η χρονική στιγμή που ο πελάτης πρέπει να στείλει την παραγγελία του. Μόλις διαπιστώσει ότι έχει παρέλθει το χρονικό διάστημα αυτό, ελέγχει εάν ο πελάτης έχει στείλει παραγγελία. Εάν δεν έχει στείλει, τότε του αποστέλλει ένα μήνυμα ενημερώνοντας τον ότι θα του αποστείλει μία προκαθορισμένη παραγγελία. Με τον τρόπο αυτό ολοκληρώνεται το δέκατο-τέταρτο (14β) βήμα της διαδικασίας. Όλη η διαδικασία που περιγράφηκε διεξάγεται σε 14 διακριτά βήματα και παρουσιάζεται γραφικά στην Εικόνα 5.5. Από την εικόνα αυτή, παρατηρείται ότι μετά την «υπογραφή» του συμβολαίου, που κατά τη διαδικασία της διαπραγμάτευσης των όρων συμμετέχει και ο Reasoner, ο πελάτης και ο εκπρόσωπος του Wine Club, μπορούν πλέον να επικοινωνήσουν μεταξύ τους, με τη διαδοχική αποστολή μηνυμάτων. AYPS 3 4 7,11 1 2 6,10,14 8,12 DR-Reasoner Customer 5,9,13 Wine Club Agent Εικόνα 5.5: Τα 14 διακριτά βήματα του σεναρίου. 5.2.6 Λεπτομέρειες Υλοποίησης Όπως έχει ήδη αναφερθεί, ένας από τους στόχους της εργασίας είναι η επικοινωνία πρακτόρων μόνο με τη χρήση RDF και RuleML εγγράφων καθώς και η δυνατότητα να διαπραγματευτούν τους όρους του συμβολαίου που θα «υπογραφεί» μεταξύ των - 47 -
πρακτόρων. Φυσικά, η επικοινωνία μεταξύ αυτών των πρακτόρων δε θα ήταν δυνατή εάν δεν υπήρχε ο Reasoner, ο οποίος είναι υπεύθυνος για την εκτέλεση της συλλογιστικής στα αρχεία που ανταλλάσσουν μεταξύ τους οι πράκτορες. Ο τρόπος με τον οποίο υλοποιείται η επικοινωνία μεταξύ των πρακτόρων είναι με τη χρήση ACL μηνυμάτων, τα οποία περιέχουν τα αντίστοιχα αρχεία στα οποία επιτελεί τη διαδικασία της συλλογιστικής ο Reasoner. Πιο συγκεκριμένα ο κάθε πράκτορας είναι υλοποιημένος με τη γλώσσα JESS και η συμπεριφορά του περιγράφεται από ένα αρχείο της μορφής clp. Επίσης, λόγω της δυνατότητας που προσφέρει το εργαλείο EMERALD με τη χρήση του AYPS, ο κάθε πράκτορας μπορεί να δηλώσει τις υπηρεσίες που προσφέρει ή που αναζητά σε ξεχωριστά αρχεία της μορφής txt. Έτσι ένα αρχείο με κατάληξη reg.txt συνοψίζει τις υπηρεσίες που προσφέρει ο κάθε πράκτορας και ένα αρχείο με κατάληξη req.txt περιλαμβάνει τις υπηρεσίες που αναζητά ο κάθε πράκτορας. Πρέπει να αναφερθεί ότι δεν είναι απαραίτητο κάθε πράκτορας και να προσφέρει και να αναζητά υπηρεσίες, μπορεί να επιτελεί μία από τις δύο δυνατότητες. Με βάση όλα τα παραπάνω, ένας πράκτορας δημιουργείται στο περιβάλλον του EMERALD και σαν ορίσματα το αρχείο clp (το οποίο είναι απαραίτητο, καθώς περιγράφει τη συμπεριφορά του πράκτορα) καθώς και τα αντίστοιχα αρχεία με καταλήξεις reg.txt και reg.txt, εφόσον αυτά υπάρχουν. Όπως αναφέρθηκε και προηγουμένως, η επικοινωνία και η συνεννόηση των πρακτόρων βασίζεται αποκλειστικά στην ανταλλαγή αρχείων RDF και RuleML. Έτσι, κάθε φορά που ένας πράκτορας λαμβάνει μέσω μηνύματος ACL το path ενός αρχείο RuleML ή RDF, τότε επικοινωνεί με τον Reasoner αποστέλλοντας του, το path του αρχείου που έλαβε καθώς και το path του δικού του αρχείο (το οποίο περιέχει τις δικές του προτιμήσεις σχετικά με το θέμα που διαπραγματεύεται με τον άλλο πράκτορα). Στη συνέχεια, ο Reasoner εκτελεί τη συλλογιστική διαδικασία μέσω του DR-DEVICE και επιστρέφει το αποτέλεσμα στον πράκτορα. Η διαδικασία αυτή παρουσιάζεται στην Εικόνα 5.6, στην οποία απεικονίζεται ο πράκτορας ο οποίος επικοινωνεί με ένα μήνυμα τύπου REQUEST με το Reasoner και στη συνέχεια η απάντηση επιστρέφεται με ένα μήνυμα τύπου INFORM. - 48 -
Εικόνα 5.6: Input Output του πράκτορα Reasoner. Πρέπει να σημειωθεί ότι το μήνυμα INFORM που αποστέλλει ο Reasoner, περιέχει μόνο το path του αρχείου που προέκυψε μετά τη διαδικασία της συλλογιστικής που επιτελέστηκε. Στην ουσία, ο πράκτορας ενημερώνεται για το σημείο από το οποίο μπορεί να παραλάβει τα δεδομένα που προέκυψαν με βάση τα αρχικά στοιχεία που διέθετε και τα οποία απέστειλε στο Reasoner. Η διαδικασία που ακολουθεί ο Reasoner από τη στιγμή που λαμβάνει ένα μήνυμα από έναν πράκτορα, μέχρι τη στιγμή που αποστέλλεται το αποτέλεσμα στον πράκτορα είναι η ακόλουθη. Αρχικά, το περιεχόμενο του μηνύματος REQUEST που λαμβάνει ο Reasoner, περιέχει τη διεύθυνση που βρίσκονται τα δεδομένα. Στη συνέχεια, ο Reasoner καλεί το σύστημα DR-DEVICE, το οποίο επεξεργάζεται τα δεδομένα, επιτελεί τη διαδικασία της συλλογιστικής και επιστρέφει το αποτέλεσμα με τη μορφή ενός εγγράφου RDF. Μετά, ο Reasoner δημιουργεί ένα αντίγραφο του προαναφερθέντος εγγράφου, τη διεύθυνση του οποίου αποστέλλει με ένα ACL μήνυμα, τύπου INFORM, στον αρχικό πράκτορα. Με τον τρόπο αυτό, ο αρχικός πράκτορας μπορεί να ανακτήσει τα δεδομένα που προέκυψαν από το σημείο που του υπέδειξε ο Reasoner. Υπάρχει επίσης ακόμα ένας ανεξάρτητος πράκτορας, ο Timer, η λειτουργία του οποίου είναι πιο απλή. Αρχικά, ο πράκτορας Timer, κάνει register στον AYPS, ώστε να μπορούν οι υπόλοιποι πράκτορες να τον αναζητήσουν. Στη συνέχεια ο Timer αναμένει ένα μήνυμα τύπου INFORM από κάποιο πράκτορα. Μόλις λάβει ένα τέτοιο μήνυμα, καταχωρεί το AID του πράκτορα σε έναν πίνακα. Κάθε φορά που περνάει το διάστημα του ενός μήνα, η συγκεκριμένη λειτουργία έχει αναπτυχθεί μίας συμπεριφοράς που σε τακτά χρονικά διαστήματα επιτελεί κάποια διαδικασία (ticker behaviour), ανατρέχει στον πίνακα που έχει καταχωρημένους τα AID των πρακτόρων που του έχουν ήδη στείλει μήνυμα και τους αποστέλλει ένα μήνυμα τύπου INFORM, - 49 -
με περιεχόμενο έναν αριθμό, ο οποίος αυξάνεται κάθε φορά που περνάει το διάστημα του ενός μήνα. Στην Εικόνα 5.7 φαίνεται η προαναφερθείσα διαδικασία κατά την επικοινωνία ενός πράκτορα με τον Timer. INFORM (registration to the service) INFORM-every month (current time) Timer Εικόνα 5.7: Παράδειγμα λειτουργίας πράκτορα Timer. Στο σενάριο αυτό, λοιπόν, εμπλέκονται τέσσερα ανεξάρτητα μέρη, ο Customer, ο εκπρόσωπος του Wine Club, o Timer και ο Reasoner. Για τους δύο πρώτους χρησιμοποιήθηκε είναι η μηχανή κανόνων, και παράλληλα γλώσσα, JESS. Με τη βοήθεια της καθορίστηκε η συμπεριφορά κάθε πράκτορα, ανεξάρτητα από την υλοποίηση του Reasoner και χωρίς να επηρεάζει στο ελάχιστο ούτε αυτόν ούτε την υπηρεσία αναιρέσιμης συλλογιστικής που παρέχει. Πρέπει να σημειωθεί ότι, το πλαίσιο ανάπτυξης του πολυ-πρακτορικού συστήματος της εργασίας, δηλαδή το EMERALD, υποστηρίζει την συνεργασία με την μηχανή κανόνων JESS καθώς είναι ευέλικτη και αποδοτική. Έτσι, η συγγραφή και επεξεργασία των κανόνων της συμπεριφοράς στρατηγικής κάθε πράκτορα, με τη χρήση της JESS είναι σχετικά εύκολη και απλή. Ο κάθε πράκτορας που υλοποιείται, δέχεται ως όρισμα την διεύθυνση (path) στην οποία βρίσκεται το αρχείο (file.clp), που καθορίζει την συμπεριφορά του πράκτορα, επιτρέποντας έτσι τη χρήση πολλαπλών στιγμιότυπών του. Κάθε τέτοιο στιγμιότυπο είναι ένας νέος πράκτορας με μια ιδιαίτερη στρατηγική, υλοποιημένη στη γλώσσα JESS. Επίσης, όπως περιγράφηκε και παραπάνω, ο κάθε πράκτορας δέχεται σαν ορίσματα τα αρχεία που περιλαμβάνουν τις υπηρεσίες που προσφέρει και αυτές που αναζητά. - 50 -
Αποτέλεσμα όλων αυτών είναι η πλέον αποδοτική υλοποίηση του σεναρίου που μελετάται και η δημιουργία ενός πλαισίου, το οποίο θα μπορεί να χρησιμοποιηθεί για την υλοποίηση πληθώρας άλλων περιπτώσεων σεναρίων. Στην προκειμένη περίπτωση, λοιπόν, οι ευφυείς πράκτορες Customer, ο εκπρόσωπος του Wine Club αποτελούν στιγμιότυπα του γενικού πράκτορα (jessagent) και για τον καθένα από αυτούς συντάχθηκε ένα ξεχωριστό αρχείο τύπου.clp, το μοναδικό ουσιαστικά που διαφοροποιείται. Ο πράκτορας Timer υλοποιήθηκε με τη χρήση της γλώσσας Java. Σκοπός του είναι να αναμένει μηνύματα από τους πράκτορες που ενδιαφέρονται να λαμβάνουν ειδοποίηση κάθε φορά που ξεκινάει καινούριος μήνας. Στην Εικόνα 5.8 που ακολουθεί παρουσιάζονται οι πράκτορες Customer, ο εκπρόσωπος του Wine Club και ο Timer, κατά την αρχικοποίηση τους στο περιβάλλον του EMERALD. Αρχικά στο περιβάλλον βρίσκεται ο πράκτορας Reasoner, ο οποίος όπως αναλύθηκε στην σχετική ενότητα είναι ενεργός και έτοιμος να δεχθεί νέα αιτήματα από οποιονδήποτε άλλο πράκτορα. Στη συνέχεια εισάγονται διαδοχικά οι τρεις προαναφερθέντες πράκτορες. Όπως φαίνεται και από την Εικόνα 5.8, αρχικά εισάγεται ο πράκτορας Timer, ο οποίος είναι τύπου clock και δεν έχει κάποια ορίσματα. Στη συνέχεια εισάγεται ο πράκτορας Wine Club, που είναι ο εκπρόσωπος του Wine Club, ο οποίος πέρα από το αντίστοιχο.clp αρχείο, έχει και τα δύο αρχεία που καθορίζουν τις υπηρεσίες που προσφέρει (Wclubreg.txt) καθώς και αυτές που αναζητά (Wclubreq.txt). Τέλος, εισάγεται ο πρώτος πελάτης, Customer, με το αντίστοιχο.clp αρχείο, καθώς και ένα αρχείο το οποίο περιλαμβάνει τις υπηρεσίες που αναζητά (customerreq.txt). Πρέπει να σημειωθεί ότι ο πελάτης δεν προσφέρει κάποιες υπηρεσίες και για το λόγο αυτό, δεν υπάρχει και το αντίστοιχο αρχείο στα ορίσματά του. - 51 -
Εικόνα 5.8: Αρχικοποίηση για τους πράκτορες Timer, WineClub και Customer. Μετά την εισαγωγή και των τριών πρακτόρων στο περιβάλλον του EMERALD, ξεκινάει αμέσως η διαδικασία του σεναρίου, όπως αυτή περιγράφηκε σε προηγούμενη ενότητα. Πρέπει να σημειωθεί ότι υλοποιήθηκαν δύο πελάτες, οι οποίοι εισήχθησαν διαδοχικά στο περιβάλλον του EMERALD. Η διαφορά των δύο πελατών είναι ότι ο πρώτος επιτελεί κανονικά την παραγγελία του στο προκαθορισμένο χρονικό διάστημα, ενώ στο δεύτερο πελάτη αποστέλλεται η προκαθορισμένη παραγγελία, καθώς ο πελάτης δε επιτελεί κάποια παραγγελία στο χρονικό διάστημα το οποίο έχει συμφωνηθεί. Η εποπτεία των μηνυμάτων, τα οποία αποστέλλονται μεταξύ των πρακτόρων, γίνεται με τη βοήθεια του πράκτορα Sniffer. Χρησιμοποιώντας αυτό τον πράκτορα διακρίνεται η αλληλουχία ανταλλαγής μηνυμάτων καθώς και ο τύπος του κάθε μηνύματος. Στην Εικόνα 5.9 απεικονίζεται η ανταλλαγή μηνυμάτων μεταξύ του DR- Reasoner, του Timer, του WineClub agent και του πρώτου πελάτη (Customer_1). Επίσης, από τη συγκεκριμένη εικόνα είναι εμφανές ότι στο συγκεκριμένο σενάριο - 52 -
θεωρήθηκε, χωρίς να διαδραματίζει καθοριστικό ρόλο, ότι όλοι οι πράκτορες βρίσκονται στην ίδια πλατφόρμα. Εικόνα 5.9: O πράκτορας Sniffer του JADE. - 53 -