Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α"

Transcript

1 Α Ρ Ι Σ Τ Ο Τ Ε Λ Ε Ι Ο Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Θ Ε Σ Σ Α Λ Ο Ν Ι Κ Η Σ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΤΕΥΘΥΝΣΗ : ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α «ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML» ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Α.Ε.Μ: 358 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΝΙΚΟΛΑΟΣ ΒΑΣΙΛΕΙΑΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ ΙΟΥΛΙΟΣ 2012

2

3 ΠΕΡΙΛΗΨΗ Π Ε Ρ Ι Λ Η Ψ Η Η ιδέα του Σημασιολογικού Ιστού, ενός Παγκόσμιου Ιστού στον οποίο η πληροφορία αποκτά σημασιολογία και νόημα, έστρεψε το ενδιαφέρον μιας πλειάδας ερευνητών του Web στη θεωρητική και πρακτική διατύπωση και θεμελίωση όλων εκείνων των δομικών χαρακτηριστικών που τελικά διαμορφώνουν τη σημερινή του μορφή. Βασικά παραδείγματα αυτών των χαρακτηριστικών αποτελούν η γλώσσα xml, το μοντέλο αναπαράστασης γνώσης RDF όπως επίσης και οι έννοιες της Οντολογίας και του Κανόνα. Όσον αφορά τους Κανόνες και τη χρήση τους, μια αξιοσημείωτη πρόκληση είναι ο ρόλος τους στην ανταλλαγή πληροφορίας μεταξύ αυτόνομων τμημάτων λογισμικού που ονομάζονται Πράκτορες. Ο οργανισμός FIPA (Foundation for Intelligent Physical Agents), έχει δημιουργήσει και καθιερώσει διεθνή πρότυπα για να οριοθετήσει την επικοινωνία Πρακτόρων, με τη χρήση μηνυμάτων μέσα στα πλαίσια κάποιων Πρωτοκόλλων αλληλεπίδρασης. Επιπροσθέτως, η Reaction-RuleML έχει δημιουργηθεί και οριστεί ως μια γενική γλώσσα ανταλλαγής κανόνων στο πλαίσιο του Παγκόσμιου Ιστού. Το συντακτικό της επιτρέπει τη δημιουργία αντιδραστικών κανόνων οι οποίοι έχουν τη δυνατότητα να ενσωματώνουν μηνύματα, κάτι που αποτελεί σημείο-κλειδί στο ζήτημα της αλληλεπίδρασης Πρακτόρων, έτσι όπως αυτό αναλύθηκε παραπάνω. Αντικείμενο της παρούσης εργασίας λοιπόν, είναι κατ αρχήν η μελέτη του πρωτοκόλλου Contract-Net-Interaction-Protocol, με τις προδιαγραφές τις οποίες ορίζει η FIPA και η μελέτη της γλώσσας Reaction-RuleML. Στη συνέχεια η δημιουργία συνόλων κανόνων σε Reaction-RuleML, οι οποίοι αναπαριστούν το παραπάνω πρωτόκολλο διαπραγμάτευσης, σέβονται τις προδιαγραφές της FIPA και είναι κατασκευασμένοι με τέτοιο τρόπο ώστε να προάγουν την επεκτασιμότητα και την τροποποίησή τους για εφαρμογή σε διαφορετικά σενάρια υλοποίησης του πρωτοκόλλου. Για να επιτευχθεί αυτός ο στόχος, πραγματοποιείται ο διαχωρισμός του τμήματος πρωτοκόλλου από την ατομική στρατηγική του κάθε πράκτορα έτσι ώστε κάθε πράκτορας που θέλει να συμμετέχει σε μια διαδικασία να προσδιορίζει αφενός το δημόσια διαθέσιμο πρωτόκολλο που απαιτείται και αφετέρου την προσωπική του στρατηγική, χωρίς να χρειάζεται να καταβάλλεται επιπλέον προγραμματιστική δουλειά από τον χρήστη για την ενσωμάτωση της στρατηγικής στο πρωτόκολλο και ούτε να κινδυνεύει φυσικά και η προσωπική γνώση του πράκτορα. Τέλος, ακολουθεί η πειραματική εκτέλεση ενός σεναρίου αλληλεπίδρασης πάνω στο FIPA Contract-Net-Interaction-Protocol, με τη χρήση πρακτόρων της πλατφόρμας JADE και EMERALD. Με τον τρόπο αυτό επιτυγχάνεται ένα είδος «επαλήθευσης» τόσο ως προς τη λειτουργικότητα των κανόνων, όσο και ως προς την ορθότητα των μετατροπών. Λέξεις κλειδιά. Σημασιολογικός Ιστός, Πολυ-πρακτορικά Συστήματα, Πρωτόκολλα αλληλεπίδρασης, Συστήματα κανόνων, Reaction RuleML, FIPA, Jess, Jade ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML III

4 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ A B S T R A C T Thesis Title: Representation of FIPA Agent Interaction Protocols In Reaction- RuleML The Semantic Web movement attracted the attention of a great number of Web Researchers in both theoretical and practical terms of all those structural characteristics that ultimately shape its present form. Key examples of these features are the XML language, the RDF model as well as Ontologies and Rules. Concerning the rules and their usage, a notable challenge is their role in information exchange among autonomous software components called Intelligent Agents. The FIPA organization (Foundation for Intelligent Physical Agents) has developed and established international standards to define the agent communication with the use of interaction protocols based on message exchange. In addition, Reaction-RuleML is defined as a generic language that supports rules exchange under the World Wide Web. Its syntax allows the development of reactive rules that integrate messages, which is key to the issue of agent interaction, as already mentioned. The purpose of this thesis, therefore, is at first the study of the Contract-Net- Interaction protocol along with the FIPA specifications and then the study of the Reaction-RuleML language. Hence, next this thesis aims to develop set of rules in Reaction-RuleML that will represent the above negotiation protocol, respecting the FIPA specifications, promoting scalability and reusability. To achieve this goal, the protocol and the agent s private strategy were separated. Hence, every agent that wants to participate in a process will easily define both the publicly available protocol that is required and its private strategy, without having to pay extra programming effort for the protocol and strategy integration. Finally, a specific use case interaction scenario is presented in order to illustrate the added value of the approach. Keywords. Semantic Web, Multi-agent Systems, Interaction Protocol, Rule-based Systems, Reaction RuleML, FIPA, Jess, Jade IV ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

5 ΕΥΧΑΡΙΣΤΙΕΣ Ε Υ Χ Α Ρ Ι Σ Τ Ι Ε Σ Η ανάπτυξη της παρούσας εργασίας έγινε σε συνεργασία με την ερευνητική ομάδα ISKP (Intelligent Systems and Knowledge Processing) του εργαστηρίου Γλωσσών Προγραμματισμού και Τεχνολογίας Λογισμικού του Τμήματος Πληροφορικής, της Σχολής Θετικών Επιστημών του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης. Πριν την παρουσίαση των αποτελεσμάτων της ερευνητικής αυτής προσπάθειας, αισθάνομαι την υποχρέωση να ευχαριστήσω ορισμένους από τους ανθρώπους που γνώρισα, συνεργάστηκα μαζί τους και έπαιξαν πολύ σημαντικό ρόλο στην πραγματοποίησή της. Αρχικά θα ήθελα να ευχαριστήσω τον Αναπληρωτή Καθηγητή του Τμήματος Πληροφορικής του Α.Π.Θ, κ. Νικόλαο Βασιλειάδη για την εμπιστοσύνη που μου έδειξε στην ανάθεση της Διπλωματικής Εργασίας, για την αμέριστη υποστήριξη που μου παρείχε, για την καθοδήγηση και τη βιβλιογραφία που μου διέθεσε. Επίσης, θα ήθελα να ευχαριστήσω την υποψήφια διδάκτωρ του Τμήματος Πληροφορικής του Α.Π.Θ, Κράβαρη Καλλιόπη για τη διαρκή βοήθεια και τις συμβουλές που μου πρόσφερε. Τέλος, ευχαριστώ θερμά τη γυναίκα μου Θεανώ για την ηθική υποστήριξη και τους γονείς μου Αχιλλέα και Ευαγγελή για την σημαντική υλική και ψυχική στήριξη που μου παρείχαν σε όλη τη διάρκεια εκπόνησης των μεταπτυχιακών σπουδών μου. Ιούλιος 2012 Παπαβασιλείου Χρήστος ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML V

6

7 ΠΕΡΙΕΧΟΜΕΝΑ Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α ΠΕΡΙΛΗΨΗ... III ABSTRACT...IV ΕΥΧΑΡΙΣΤΙΕΣ...V ΠΕΡΙΕΧΟΜΕΝΑ...VII ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ... XI ΛΙΣΤΑ ΠΙΝΑΚΩΝ... XIII ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ ΓΕΝΙΚΑ ΔΟΜΗ ΕΡΓΑΣΙΑΣ ΚΕΦΑΛΑΙΟ 2: ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ & ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ Ο ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ (SEMANTIC WEB) ΤΑ ΜΟΝΤΕΛΑ ΔΕΔΟΜΕΝΩΝ ΤΟΥ ΣΗΜΑΣΙΟΛΟΓΙΚΟΥ ΙΣΤΟΥ Η γλώσσα XML Το μοντέλο δεδομένων RDF ΟΝΤΟΛΟΓΙΕΣ ΛΟΓΙΚΗ ΚΑΝΟΝΕΣ ΚΑΙ ΓΛΩΣΣΕΣ ΚΑΝΟΝΩΝ ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΟΡΙΣΜΟΣ ΕΥΦΥΩΝ ΠΡΑΚΤΟΡΩΝ ΠΡΑΚΤΟΡΕΣ ΒΑΣΙΣΜΕΝΟΙ ΣΕ ΚΑΝΟΝΕΣ ΔΙΑΠΡΑΓΜΑΤΕΥΣΗ ΗΛΕΚΤΡΟΝΙΚΩΝ ΣΥΜΒΟΛΑΙΩΝ ΚΕΦΑΛΑΙΟ 3: ΠΡΟΔΙΑΓΡΑΦΕΣ ΤΗΣ FIPA ΓΙΑ ΤΟΥΣ ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ ΟΡΓΑΝΙΣΜΟΣ FIPA ΔΟΜΗ ΜΗΝΥΜΑΤΟΣ ΤΗΣ FIPA ACL ΤΥΠΟΣ ΤΗΣ ΠΡΑΞΗΣ ΕΠΙΚΟΙΝΩΝΙΑΣ Η παράμετρος Performative ΣΥΜΜΕΤΕΧΟΝΤΕΣ ΣΤΟ ΔΙΑΛΟΓΟ Sender (Αποστολέας) Receiver (Παραλήπτης) Reply To ΠΕΡΙΕΧΟΜΕΝΟ ΜΗΝΥΜΑΤΟΣ Content ΠΕΡΙΓΡΑΦΗ ΤΟΥ ΠΕΡΙΕΧΟΜΕΝΟΥ ΕΝΟΣ ΜΗΝΥΜΑΤΟΣ Η παράμετρος Language Η παράμετρος Encoding Η παράμετρος Ontology ΈΛΕΓΧΟΣ ΤΟΥ ΔΙΑΛΟΓΟΥ Η παράμετρος Protocol Η παράμετρος Conversation Identifier Η παράμετρος Reply With Η παράμετρος In Reply To ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML VII

8 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Η παράμετρος Reply By FIPA ΕΠΙΚΟΙΝΩΝΙΑ ΠΡΑΚΤΟΡΩΝ ACCEPT PROPOSAL (ΑΠΟΔΟΧΗ ΠΡΟΤΑΣΗΣ) CALL FOR PROPOSAL (CFP) FAILURE INFORM PROPOSE REFUSE REJECT PROPOSAL ΚΕΦΑΛΑΙΟ 4: Η ΓΛΩΣΣΑ ΚΑΝΟΝΩΝ: REACTION RULEML ΣΚΟΠΟΣ ΤΗΣ REACTION RULEML ΚΑΝΟΝΕΣ ΕΞΑΓΩΓΗΣ ΣΥΜΠΕΡΑΣΜΑΤΩΝ ΚΑΝΟΝΕΣ ΠΑΡΑΓΩΓΗΣ ΑΝΤΙΔΡΑΣΤΙΚΟΙ ΚΑΝΟΝΕΣ Η ΔΟΜΗ ΕΝΟΣ ΕΓΓΡΑΦΟΥ REACTION RULEML ΥΠΟΧΡΕΩΤΙΚΑ ΣΤΟΙΧΕΙΑ Παράδειγμα ΔΟΜΗ ΚΑΝΟΝΑ ΣΤΗ REACTION RULEML Τα Attributes ενός Κανόνα της Reaction RuleML Προαιρετικές Ετικέτες Μετά-Δεδομένων ενός Κανόνα της Reaction RuleML Σύνταξη Κανόνων στη Reaction RuleML ΜΗΝΥΜΑΤΑ ΣΤΗ REACTION RULEML Οι Ιδιότητες Μηνύματος της Reaction RuleML Τα δομικά στοιχεία Μηνύματος της Reaction RuleML Σύνταξη Μηνύματος της Reaction RuleML ΤΟ ΜΕΤΑ-ΜΟΝΤΕΛΟ ΤΗΣ REACTION RULEML ΤΟ ΕΠΙΠΕΔΟ ΕΞΑΓΩΓΗΣ ΣΥΜΠΕΡΑΣΜΑΤΩΝ ΤΗΣ REACTION RULEML ΒΑΣΙΚΕΣ ΚΑΤΑΣΚΕΥΕΣ ΤΟΥ ΕΠΙΠΕΔΟΥ ΕΞΑΓΩΓΗΣ ΣΥΜΠΕΡΑΣΜΑΤΩΝ (DERIVATION RULEML LAYER) ΣΥΝΘΕΤΟΙ ΌΡΟΙ/ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΙ ΛΙΣΤΕΣ ΤΟΥ ΕΠΙΠΕΔΟΥ ΕΞΑΓΩΓΗΣ ΣΥΜΠΕΡΑΣΜΑΤΩΝ Συναρτήσεις Λίστες ΙΣΟΤΗΤΑ Η ΙΣΟΔΥΝΑΜΙΑ (EQUALITY) ΤΟΥ ΕΠΙΠΕΔΟΥ ΕΞΑΓΩΓΗΣ ΣΥΜΠΕΡΑΣΜΑΤΩΝ ΆΡΝΗΣΗ: ΑΠΛΗ ΚΑΙ ΑΠΟΛΥΤΗ ΤΟ ΕΠΙΠΕΔΟ ΠΑΡΑΓΩΓΗΣ ΚΑΝΟΝΩΝ ΤΗΣ REACTION RULEML (PR RULEML LAYER) ΚΑΝΟΝΕΣ ΠΑΡΑΓΩΓΗΣ ΚΑΙ ΑΡΧΙΚΟΠΟΙΗΜΕΝΟΙ ΚΑΝΟΝΕΣ ΠΑΡΑΓΩΓΗΣ ΜΕ ΆΡΝΗΣΗ ΚΕΦΑΛΑΙΟ 5: ΣΥΝΔΕΣΗ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ΤΗΣ FIPA ΜΕ ΤΗΝ REACTION-RULEML ΕΙΣΑΓΩΓΗ ΤΟ ΠΡΩΤΟΚΟΛΛΟ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΕΠΕΞΗΓΗΣΗ ΤΗΣ ΡΟΗΣ ΤΟΥ ΠΡΩΤΟΚΟΛΛΟΥ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΥΣΤΗΜΑΤΟΣ ΜΗΝΥΜΑΤΑ ΚΑΝΟΝΕΣ ΚΑΝΟΝΕΣ INITIATOR Initiator Κανόνες που αφορούν το πρωτόκολλο Initiator Κανόνες που αφορούν τη στρατηγική strategy_facts_assertion define_cheaper_participant VIIIΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

9 ΠΕΡΙΕΧΟΜΕΝΑ PARTICIPANT ΚΑΝΟΝΕΣ Participant Κανόνες Που αφορούν το πρωτόκολλο Participant Κανόνες Που αφορούν τη στρατηγική ΣΕΝΑΡΙΟ ΥΛΟΠΟΙΗΣΗΣ (CASE STUDY) ΠΑΡΑΔΟΧΕΣ ΑΛΛΗΛΟΥΧΙΑ ΕΚΤΕΛΕΣΗΣ ΚΑΝΟΝΩΝ ΓΕΓΟΝΟΤΑ ΓΕΓΟΝΟΤΑ INITIATOR Ενδιάμεσα γεγονότα ΓΕΓΟΝΟΤΑ PARTICIPANT Γεγονότα τα οποία εισάγονται στη μνήμη εργασίας στην αρχή Ενδιάμεσα γεγονότα ΑΛΛΗΛΕΠΙΔΡΑΣΗ ΤΩΝ ΠΡΑΚΤΟΡΩΝ ΚΕΦΑΛΑΙΟ 6: ΜΕΤΑΤΡΟΠΗ ΤΩΝ ΚΑΝΟΝΩΝ ΑΠΟ REACTION-RULEML ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ JESS ΕΙΣΑΓΩΓΗ Η ΔΟΜΗ ΤΟΥ XSLT ΕΓΓΡΑΦΟΥ TEMPLATE: RULEML TEMPLATE: ASSERT TEMPLATE: RULE TEMPLATE: ON TEMPLATE: ATOM TEMPLATE: OID/VAR TEMPLATE: MESSAGE TEMPLATE: IF TEMPLATE: AND TEMPLATE: NAF TEMPLATE: EXPR TEMPLATE: FUN TEMPLATE: DO TEMPLATE: SUCCESSION TEMPLATE: EQUAL TEMPLATE: UPDATE ΠΑΡΑΔΕΙΓΜΑΤΑ ΚΑΝΟΝΩΝ ΣΕ R-RULEML ΚΑΙ XSL ΜΕΤΑΣΧΗΜΑΤΙΣΜΩΝ ΤΟΥΣ ΣΕ ΚΑΝΟΝΕΣ JESS ΕΙΣΑΓΩΓΗ ΠΑΡΑΔΕΙΓΜΑ ΠΡΩΤΟ ΠΑΡΑΔΕΙΓΜΑ ΔΕΥΤΕΡΟ ΚΕΦΑΛΑΙΟ 7: ΥΛΟΠΟΙΗΣΗ ΤΟΥ ΣΕΝΑΡΙΟΥ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ Η ΜΗΧΑΝΗ ΚΑΝΟΝΩΝ JESS ΠΛΑΤΦΟΡΜΑ JADE - EMERALD ΠΑΡΟΥΣΙΑΣΗ ΤΟΥ ΣΕΝΑΡΙΟΥ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΣΤΗΝ ΠΛΑΤΦΟΡΜΑ EMERALD ΚΕΦΑΛΑΙΟ 8: ΣΥΜΠΕΡΑΣΜΑΤΑ ΣΥΝΟΨΗ - ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΗ ΈΡΕΥΝΑ ΠΑΡΑΡΤΗΜΑ I: ΠΛΗΡΗΣ ΜΟΡΦΗ ΤΩΝ ΑΡΧΕΙΩΝ INITIATOR ΚΑΙ PARTICIPANT ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ REACTION-RULEML ΠΑΡΑΡΤΗΜΑ II: ΤΟ XSLT ΈΓΓΡΑΦΟ ΜΕΤΑΤΡΟΠΗΣ ΤΙΤΛΟΣ IX

10 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ ΠΑΡΑΡΤΗΜΑ III: INITIATOR ΚΑΙ PARTICIPANT ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ JESS (ΑΠΟΤΕΛΕΣΜΑ ΤΗΣ XSL ΜΕΤΑΤΡΟΠΗΣ) 161 ΠΑΡΑΡΤΗΜΑ IV: ΣΥΝΤΑΚΤΙΚΟ ΤΗΣ REACTION-RULEML ΠΑΡΑΡΤΗΜΑ V: ΑΝΑΦΟΡΕΣ XΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

11 ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ Λ Ι Σ ΤΑ Σ Χ Η Μ ΑΤ Ω Ν ΕΙΚΟΝΑ 1. Ο ΑΡΧΙΚΟΣ ΠΥΡΓΟΣ ΤΟΥ ΣΗΜΑΣΙΟΛΟΓΙΚΟΥ ΙΣΤΟΥ ΕΙΚΟΝΑ 2: ΑΝΑΠΑΡΑΣΤΑΣΗ ΕΝΟΣ ΠΟΡΟΥ ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ ΚΑΙ Η RDF ΠΕΡΙΓΡΑΦΗ ΤΟΥ ΕΙΚΟΝΑ 3: Η ΙΕΡΑΡΧΙΑ ΤΗΣ RULEML ΕΙΚΟΝΑ 4: Η ΝΟΗΤΙΚΗ ΚΑΤΑΣΤΑΣΗ ΕΝΟΣ ΠΡΑΚΤΟΡΑ ΕΙΚΟΝΑ 5: ΤΑ ΕΠΙΠΕΔΑ ΤΗΣ REACTION RULEML ΕΙΚΟΝΑ 6: ΚΑΝΟΝΑΣ REACTION RULEML ΕΙΚΟΝΑ 7: REACTION RULEML ATOM ΕΙΚΟΝΑ 8: DERIVATION RULEML: ΤΟ ΣΥΝΤΑΚΤΙΚΟ ΚΑΙ ΤΑ SEMANTICS ΓΙΑ DERIVATION RULES ΕΙΚΟΝΑ 9: ΤΟ ΜΕΤΑ-ΜΟΝΤΕΛΟ ΕΝΟΣ ΚΑΝΟΝΑ ΕΞΑΓΩΓΗΣ ΣΥΜΠΕΡΑΣΜΑΤΩΝ ΕΙΚΟΝΑ 10: PR RULEML: ΤΟ ΣΥΝΤΑΚΤΙΚΟ ΚΑΙ ΤΑ SEMANTICS ΓΙΑ PRODUCTION RULES ΕΙΚΟΝΑ 11: ΤΟ ΜΕΤΑ-ΜΟΝΤΕΛΟ ΕΝΟΣ ΚΑΝΟΝΑ ΠΑΡΑΓΩΓΗΣ ΤΗΣ REACTION RULEML ΕΙΚΟΝΑ 12 : ΤΟ CONTRACT NET INTERACTION PROTOCOL ΑΠΟ ΤΗ FIPA ΕΙΚΟΝΑ 13: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΕΙΚΟΝΑ 14: Η FIPA ΕΚΔΟΧΗ ΤΗΣ ΔΟΜΗΣ ΜΗΝΥΜΑΤΟΣ ΤΟ ΟΠΟΙΟ ΑΝΤΑΛΛΑΣΟΥΝ ΠΡΑΚΤΟΡΕΣ ΕΙΚΟΝΑ 15: Η ΔΟΜΗ ΜΗΝΥΜΑΤΟΣ ΣΤΗ REACTION-RULEML ΕΙΚΟΝΑ 16: Ο ΟΡΙΣΜΟΣ ΤΟΥ TEMPLATE ACL ΜΗΝΥΜΑΤΟΣ ΣΤΟΝ ΠΡΑΚΤΟΡΑ JESSAGENTRR ΕΙΚΟΝΑ 17: ΡΟΗ ΕΚΤΕΛΕΣΗΣ ΓΙΑ ΤΟ FIPA CONTRACT NET INTERACTION PROTOCOL ΕΙΚΟΝΑ 18: Η ΣΕΙΡΑ ΜΕ ΤΗΝ ΟΠΟΙΑ ΕΝΕΡΓΟΠΟΙΟΥΝΤΑΙ ΟΙ ΚΑΝΟΝΕΣ ΣΤΟΝ INITIATOR ΚΑΙ ΤΟΝ PARTICIPANT ΚΑΙ ΤΟ ΠΕΡΑΣΜΑ ΑΠΟ ΤΗ ΣΤΡΑΤΗΓΙΚΗ ΣΤΟ ΠΡΩΤΟΚΟΛΛΟ ΚΑΙ ΑΝΤΙΣΤΡΟΦΑ ΕΙΚΟΝΑ 19: ΒΑΣΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ ΤΗΣ XSL ΜΕΤΑΤΡΟΠΗΣ ΕΙΚΟΝΑ 20: ΜΕΤΑΤΡΟΠΗ ΕΙΣΑΓΩΓΗΣ ΓΕΓΟΝΟΤΟΣ (ATOM) ΤΗΣ R-RULEML ΣΕ ΕΙΣΑΓΩΓΗ ΓΕΓΟΝΟΤΟΣ (FACT) ΚΑΝΟΝΩΝ ΤΟΥ JESS ΕΙΚΟΝΑ 21: ΜΕΤΑΤΡΟΠΗ ΑΝΑΘΕΣΗΣ ΤΙΜΗΣ ΤΟΥ FACT-INDEX ΕΝΟΣ ΓΕΓΟΝΟΤΟΣ ΣΕ ΜΙΑ ΜΕΤΑΒΛΗΤΗ, ΑΠΟ ΤΗ R-RULEML ΣΤΟ JESS ΕΙΚΟΝΑ 22: ΠΑΡΑΔΕΙΓΜΑ ΜΕΤΑΤΡΟΠΗΣ ΑΔΥΝΑΜΗΣ ΑΡΝΗΣΗΣ ΑΠΟ R-RULEML ΣΕ JESS ΕΙΚΟΝΑ 23: ΧΡΗΣΗ ΤΗΣ ΔΟΜΗΣ <EQUAL> ΤΗΣ R-RULEML ΚΑΙ ΜΕΤΑΤΡΟΠΗ ΤΗΣ ΜΕΣΩ ΤΟΥ XSL ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ ΣΕ ΔΟΜΗ ΑΝΑΘΕΣΗΣ ΤΙΜΗΣ ΣΕ ΜΕΤΑΒΛΗΤΗ (BIND) ΣΤΟ JESS ΕΙΚΟΝΑ 24: ΜΕΤΑΤΡΟΠΗ ΤΗΣ ΔΟΜΗΣ <UPDATE> <ATOM> ΤΗΣ R-RULEML ΣΤΗ ΔΟΜΗ MODIFY ΤΟΥ JESS ΜΕΣΩ ΤΟΥ XSL ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ ΕΙΚΟΝΑ 25: ΈΝΑΣ ΠΡΑΚΤΟΡΑΣ ΚΑΙ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΟΥ ΕΙΚΟΝΑ 26: Η ΠΛΑΤΦΟΡΜΑ JADE ΕΙΚΟΝΑ 27: ΣΤΙΓΜΙΟΤΥΠΟ ΔΗΜΙΟΥΡΓΙΑΣ ΠΡΑΚΤΟΡΑ ΕΙΚΟΝΑ 28: ΣΤΙΓΜΙΟΤΥΠΟ ΤΗΣ ΠΛΑΤΦΟΡΜΑΣ ΜΕ ΟΛΟΥΣ ΤΟΥΣ ΠΡΑΚΤΟΡΕΣ ΠΟΥ ΣΥΜΜΕΤΕΧΟΥΝ ΕΙΚΟΝΑ 29: Η ΑΝΤΑΛΛΑΓΗ ΜΗΝΥΜΑΤΩΝ ΜΕΤΑΞΥ ΤΩΝ ΠΡΑΚΤΟΡΩΝ ΕΙΚΟΝΑ 30: ΠΥΡΟΔΟΤΗΣΗ ΤΩΝ ΚΑΝΟΝΩΝ ΑΡΧΙΚΟΠΟΙΗΣΗΣ ΤΟΥ INITIATOR ΕΙΚΟΝΑ 31 : ΠΥΡΟΔΟΤΗΣΗ ΚΑΝΟΝΩΝ ΑΡΧΙΚΟΠΟΙΗΣΗΣ PARTICIPANT: P ΕΙΚΟΝΑ 32: ΠΡΟΕΤΟΙΜΑΣΙΑ ΚΑΙ ΑΠΟΣΤΟΛΗ CFP ΕΙΚΟΝΑ 33: ΛΗΨΗ CFP ΑΠΟ PARTICIPANT ΚΑΙ ΑΠΟΘΗΚΕΥΣΗ ΣΕ FACT ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML XI

12

13 ΛΙΣΤΑ ΠΙΝΑΚΩΝ Λ Ι Σ ΤΑ Π Ι Ν Α Κ Ω Ν ΠΙΝΑΚΑΣ 1 : ΟΙ ΠΑΡΑΜΕΤΡΟΙ ΕΝΟΣ ΜΗΝΥΜΑΤΟΣ FIPA ACL ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML XIII

14

15 Κ Ε Φ Α Λ Α Ι Ο 1 : Ε Ι Σ Α Γ Ω Γ Η ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ

16

17 ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ ΕΙΣΑΓΩΓΗ 1.1 ΓΕΝΙΚΑ Δεδομένης της ραγδαίας αύξησης της χρήσης του διαδικτύου για παροχή υπηρεσιών και για απόκτηση αγαθών, τα τελευταία χρόνια έχει εντατικοποιηθεί η ερευνητική προσπάθεια με στόχο την οργάνωση του μεγάλου όγκου πληροφορίας που δημιουργείται και της αυτοματοποίησης πολλών από των διεργασιών που εκτελούνται. Μια κυρίαρχη τάση πάνω σε αυτό το ζήτημα, είναι η ιδέα ενός Παγκόσμιου Ιστού (ΠΙ), στον οποίο η πληροφορία που διακινείται αποκτά σημασιολογία και νόημα όχι μόνο για τους χρήστες αλλά κυρίως για τις μηχανές που απαρτίζουν το διαδίκτυο. Η τάση αυτή εκφράστηκε με την ιδέα του Σημασιολογικού Ιστού (ΣΙ) από τον Tim Burners Lee, ο οποίος πρότεινε ένα σύστημα οργάνωσης και διαχείρισης αυτής της πληροφορίας. Στα πλαίσια λοιπόν της ερευνητικής προσπάθειας οργάνωσης της σημασιολογίας της πληροφορίας, δημιουργήθηκαν διάφορες διαδικτυακές γλώσσες, όπως για παράδειγμα η xml, διάφορα πρότυπα αναπαράστασης γνώσης, όπως το μοντέλο RDF και θεμελιώθηκαν έννοιες όπως αυτή της Οντολογίας (Ontology), και των Κανόνων. Οι Κανόνες, δεν αποτελούν ένα νέο επιστημονικό αντικείμενο για την κοινότητα των ερευνητών του ΠΙ, μιας και η χρήση τους είναι διαδεδομένη σε άλλα πεδία της επιστήμης των υπολογιστών. Αυτό που αποτέλεσε πρόκληση, ήταν η προσαρμογή της θεωρίας των κανόνων, σε πρακτικούς τρόπους με τους οποίους θα υποστήριζαν την αυτοματοποίηση στην επικοινωνία προγραμμάτων λογισμικού στο διαδίκτυο, με στόχο την εξυπηρέτηση των χρηστών. Για να αντιμετωπιστεί αυτή η πρόκληση, δημιουργήθηκαν και προτάθηκαν διάφορα πρότυπα (standards). Ένα από αυτά είναι η γλώσσα κανόνων RuleML η οποία θα μπορούσε να χαρακτηριστεί XML/RDF-based και της οποίας οι συντακτικές δομές υποστηρίζουν τη δημιουργία συνόλων κανόνων. Στόχος των δημιουργών της γλώσσας, η ανταλλαγή κανόνων μεταξύ προγραμμάτων πρακτόρων του ΠΙ και η κοινή κατανόηση της σημασιολογίας της πληροφορίας που ανταλλάσσεται, ανεξαρτήτως του πλαισίου (context) στο οποίο δρα ο κάθε πράκτορας. Έτσι λοιπόν, εμφανίστηκαν προσπάθειες για τη θεμελίωση των βασικών αρχών οι οποίες πρέπει να διέπουν τους πράκτορες του διαδικτύου τόσο στο επίπεδο της αυτονομίας τους, όσο και στο επίπεδο της συναλλαγής τους σε διάφορες αυτοματοποιημένες διαδικασίες. Για την ενίσχυση αυτών των προσπαθειών, η FIPA (Foundation for Intelligent Physical Agents) δημιούργησε και καθιέρωσε πρότυπα τα οποία θέτουν με τρόπο τεκμηριωμένο τις γενικές βάσεις πάνω στις οποίες θεμελιώνεται η αλληλεπίδραση προγραμμάτων πρακτόρων κυρίως μέσω της ανταλλαγής μηνυμάτων μεταξύ τους. Επιπλέον προτείνονται πρότυπα αλληλεπίδρασης πρακτόρων στα πλαίσια κάποιων πρωτοκόλλων, μεταξύ των οποίων και το πρωτόκολλο Contract-Net-Interaction-Protocol. Λαμβάνοντας υπόψη όλα τα παραπάνω, θα μπορούσε κανείς να θέσει το ερώτημα: «Με ποιο τρόπο θα μπορούσε ένα πρωτόκολλο διαπραγμάτευσης μεταξύ πρακτόρων να εκφραστεί με ορθό τρόπο από τη γλώσσα RuleML η οποία δεν υποστηρίζει δομές μηνυμάτων;». Την αρχή της επίλυσης του παραπάνω προβλήματος, έρχεται να δώσει η δημιουργία της γλώσσας κανόνων Reaction-RuleML από τους θεμελιωτές της ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 17

18 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ RuleML. Στην ουσία η δεύτερη αποτελεί επέκταση της πρώτης, με βασικό χαρακτηριστικό γνώρισμα τη δυνατότητα δημιουργίας Αντιδραστικών κανόνων, οι οποίοι μπορούν -εκτός των άλλων- να ενσωματώνουν και μηνύματα (με καθορισμένο συντακτικό). Επιπλέον υπάρχουν και κάποιες άλλες σημαντικές αλλαγές που έχουν να κάνουν με δυνατότητες για πιο ακριβή έκφραση κανόνων, για βελτιωμένη διαχείριση γεγονότων και για πραγματοποίηση σύνθετων αλγεβρικών υπολογισμών. Στόχος της παρούσης εργασίας λοιπόν, είναι κατ αρχήν η μελέτη της γλώσσας Reaction-RuleML και ορισμένων πρωτοκόλλων αλληλεπίδρασης πρακτόρων που έχουν «προτυποποιηθεί» από την FIPA. Στη συνέχεια επιχειρείται η μετατροπή του πρωτοκόλλου FIPA-Contract-Net-Interaction-Protocol σε σύνολα (προγράμματα) κανόνων της γλώσσας Reaction-RuleML. Βασικό κριτήριο της δόμησης των κανόνων θα αποτελέσει ο διαχωρισμός του πρωτοκόλλου από την ατομική στρατηγική του κάθε πράκτορα με γνώμονα την εξασφάλιση της ιδιωτικότητας της στρατηγικής, αφού το πρώτο αποτελεί κοινό και δημόσιο αγαθό ενώ η δεύτερη είναι ιδιωτική και αφορά τον πράκτορα και μόνο. Δημοσιοποίηση της στρατηγικής θα μπορούσε να επιφέρει ανυπολόγιστη ζημία στον πράκτορα και κατ επέκταση στον χρήστη του. Επιπλέον, για να είναι δυνατό να αλληλεπιδράσει έναν αριθμός πρακτόρων θα πρέπει να ακολουθούν όλοι το ίδιο πρωτόκολλο αλληλεπίδρασης. Σημειώνεται ακόμη ότι ο διαχωρισμός αποφασίστηκε και για λόγους λειτουργικότητας και πιο εύκολης επεκτασιμότητας της όλης υλοποίησης, μιας και κρίθηκε απαραίτητο, αφού ολοκληρωθεί η κατασκεύη των μηχανισμών του πρωτοκόλλου, να μπορεί κάποιος να διαχειριστεί τη στρατηγική του πράκτορα μεταβάλλοντας κάποιες παραμέτρους ή και κανόνες ενός μόνο αρχείου κάθε φορά (του αρχείου στρατηγικής), χωρίς να υπάρχει κίνδυνος να μεταβληθούν οι κανόνες που αφορούν την υλοποίηση του πρωτοκόλλου. Έτσι λοιπόν, για κάθε πράκτορα δημιουργούνται δύο ομάδες κανόνων, μια που αφορά τη στρατηγική του πράκτορα και μια που αφορά το πρωτόκολλο. Οι κανόνες πρωτοκόλλου ρυθμίζουν το ζήτημα της αποστολής και λήψης μηνυμάτων μεταξύ των πρακτόρων ενώ οι κανόνες στρατηγικής περιέχουν κανόνες διαχείρισης εκείνων τα δεδομένων (γνώση του πράκτορα) πάνω στα οποία στηρίζεται για να αποφασίσει ποια θα είναι η επόμενη κίνησή του. Στη συνέχεια ακολουθεί η μετατροπή των παραπάνω κανόνων, στη μορφή κανόνων Jess με τη χρήση XSL μετασχηματισμού. Στόχος, η υλοποίηση ενός σεναρίου διαπραγμάτευσης στην πλατφόρμα Jade, ώστε να διαπιστωθεί η λειτουργικότητα των κανόνων σε συνθήκες προσομοίωσης και να εξαχθούν με μεγαλύτερη ασφάλεια τα συμπεράσματα για την όλη διαδικασία. Για να γίνει καλύτερα κατανοητή η δομή της εργασίας στον αναγνώστη, παρατίθεται μια πιο αναλυτική περιγραφή στην ενότητα που ακολουθεί. 1.2 ΔΟΜΗ ΕΡΓΑΣΙΑΣ Η εργασία δομείται σε κεφάλαια ως εξής: Στο Κεφάλαιο 2 πραγματοποιείται μια παρουσίαση του ζητήματος του Παγκόσμιου Ιστού και της θέσης των Πρακτόρων μέσα σε αυτό το πολυσύνθετο περιβάλλον. Συγκεκριμένα γίνεται αναφορά στο Σημασιολογικό Ιστό και στο σύνολο των δομών που στηρίζουν την υπόστασή του, δηλαδή στις γλώσσες, τις δομές και τις έννοιες που δημιουργήθηκαν, εξελίσσονται και χρησιμοποιούνται για την αναπαράσταση της πληροφορίας και της σημασιολογίας της. Το κεφάλαιο 18 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

19 ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ ολοκληρώνεται με την επιλεκτική εστίαση σε ζητήματα της θεωρίας πρακτόρων και πιο ειδικά σε ζητήματα που αφορούν τη μεταξύ τους επικοινωνία με την εμπλοκή των κανόνων στο σύνολο της διαδικασίας. Στο Κεφάλαιο 3, παρουσιάζεται ο οργανισμός FIPA και το έργο του. Πιο συγκεκριμένα, λαμβάνει χώρα μια σύντομη αναφορά στο σκοπό του, και ακολουθεί μια πιο λεπτομερής ανάλυση της προτυποποίησης που έχει αναπτύξει σχετικά με την επικοινωνία πρακτόρων στον Παγκόσμιο Ιστό. Έτσι λοιπόν παρατίθενται πληροφορίες σχετικά με τα είδη μηνυμάτων μεταξύ πρακτόρων καθώς και με την ανάλυση των πρωτοκόλλων αλληλεπίδρασης μεταξύ τους, όπως για παράδειγμα του Contract Net Interaction Protocol. Στο Κεφάλαιο 4 γίνεται η παρουσίαση της γλώσσας κανόνων Reaction-RuleML έτσι όπως αυτή θεμελιώνεται από τους εμπνευστές της. Αναλύονται τα βασικά δομικά χαρακτηριστικά της, τα επίπεδά της, τα είδη κανόνων που μπορεί να εκφράσει. Τέλος σημειώνεται ότι σε όλη την έκταση αυτού του κεφαλάιου παρατίθενται αρκετά παραδείγματα ορθής χρήσης κανόνων και σύνθετων παραστάσεων συνιστώντας μια σύντομη πρακτική επίδειξη του συντακτικού της γλώσσας. Στο Κεφάλαιο 5 πραγματοποιείται, αρχικά, η σύνδεση μεταξύ της προτυποποίησης της FIPA και των δομών της Reaction-RuleML στη βάση επίλυσης συγκεκριμένων ζητημάτων. Στη συνέχεια παρουσιάζεται το πρωτόκολλο επικοινωνίας πρακτόρων: FIPA Contract Net Interaction Protocol. Τέλος παρατίθενται βασικά σημεία της υλοποίησης που πραγματοποιήθηκε και η οποία βασίζεται σε ένα συγκεκριμένο σενάριο αλληλεπίδρασης μεταξύ πρακτόρων. Στο Κεφάλαιο 6 αναλύεται η μετατροπή των κανόνων της υλοποίησης, από Reaction-RuleML σε σύνολα κανόνων JESS. Αναλύονται τα δομικά χαρακτηριστικά του XSLT εγγράφου που δημιουργήθηκε για το σκοπό αυτό και γίνεται στοχευόμενη εστίαση στα σημαντικότερα πεδία του. Ακολουθούν ενδεικτικά παραδείγματα κανόνων στην πλήρη μορφή τους και η μετατροπή τους, μαζί με μια μικρή ανάλυση για τις αρχές που τους διέπουν. Στο κεφάλαιο 7, αφού γίνει μια σύντομη αναφορά στη μηχανή κανόνων JESS και στις πλατφόρμες JADE και EMERALD, παρουσιάζεται με τη βοήθεια εικόνων, η υλοποίηση του σεναρίου αλληλεπίδρασης που περιγράφηκε στο κεφάλαιο 5, με πράκτορες που δημιουργούνται για το σκοπό αυτό στην πλατφόρμα JADE και EMERALD. Στο Παράρτημα I παρουσιάζονται τα πλήρη σύνολα κανόνων σε μορφή Reaction- RuleML. Στο Παράρτημα IΙ παρουσιάζεται το αρχείο XSLT στην πλήρη μορφή του. Στο Παράρτημα IIΙ παρουσιάζονται στην πλήρη μορφή τους οι κανόνες JESS που προκύπτουν από την XSL μετατροπή και οι οποίοι χρησιμοποιούνται για την πειραματική εκτέλεση του σεναρίου αλληλεπίδρασης. Στο Παράρτημα IV παρουσιάζεται το συντακτικό της Reaction-RuleML. Τέλος, στο παράρτημα V παρουσιάζεται η βιβλιογραφία των πηγών που αναφέρονται στην εργασία. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 19

20

21 ΚΕΦΑΛΑΙΟ 2: ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ & ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ Κ Ε Φ Α Λ Α Ι Ο 2 : Σ Η Μ Α Σ Ι Ο Λ Ο Γ Ι Κ Ο Σ Ι Σ Τ Ο Σ & Ε ΥΦ Υ Ε Ι Σ Π Ρ Α Κ Τ Ο Ρ Ε Σ

22

23 ΚΕΦΑΛΑΙΟ 2: ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ & ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ & ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ 2.1 Ο ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ (SEMANTIC WEB) Τα τελευταία χρόνια έχει παρατηρηθεί μια ευρύτατη αύξηση στη χρήση διαδικτυακών εφαρμογών από τους χρήστες του διαδικτύου τόσο για την παροχή υπηρεσιών όσο και για την απόκτηση αγαθών. Το γεγονός αυτό οδήγησε ερευνητές και επιστήμονες της πληροφορικής να αναζητήσουν τρόπους αυτοματοποίησης των λειτουργιών του Παγκόσμιου Ιστού (ΠΙ) με γνώμονα τη βελτίωση των παρεχόμενων υπηρεσιών και ταυτόχρονη ελαχιστοποίηση της προσπάθειας των χρηστών. Μια από τις πιο ενδιαφέρουσες προσπάθειες ξεκίνησε από τον ίδιο τον εμπνευστή του ΠΙ, τον Tim Burners Lee με τη διατύπωση του ορισμού του Σημασιολογικού Ιστού (ΣΙ) (Semantic Web) [1] και σήμερα υλοποιείται από τον οργανισμό W3C (World Wide Web Consortium) τον οποίο και διευθύνει. Η βασική ιδέα αυτής της προσπάθειας προέκυψε από την παρατήρηση ότι ο ΠΙ έχει σχεδιαστεί περισσότερο για να μπορούν οι άνθρωποι να «αντλούν» την πληροφορία με τη μορφή κειμένων, εικόνων, βίντεο, παρά να είναι σε θέση υπολογιστές να επεξεργαστούν τη σημασιολογία αυτής της πληροφορίας. Συνεπώς, εάν η οργάνωση των δεδομένων ακολουθούσε σε όλες τις ιστοσελίδες, μια κοινή προτυποποίηση η οποία εξασφάλιζε την κατανόηση της σημασιολογίας τους, από τους συνδεδεμένους στο διαδίκτυο υπολογιστές, τότε τμήματα λογισμικού τα οποία ονομάστηκαν Intelligent Agents (Ευφυείς Πράκτορες) θα μπορούσαν να εκτελούν μια πληθώρα εργασιών για λογαριασμό του χρήστη, μειώνοντας την εμπλοκή του στο ελάχιστο δυνατό. Ένας ΠΙ με τα παραπάνω βασικά χαρακτηριστικά, θα μπορούσε κατά τον Burners Lee, να ονομαστεί: «Σημασιολογικός Ιστός». Κατά συνέπεια, ο ΣΙ, δεν αποτελεί την προσπάθεια δημιουργίας ενός ξεχωριστού ιστού αλλά μια επέκταση του ήδη υπάρχοντος, στην οποία δίδεται ιδιαίτερη βαρύτητα στη δόμηση της πληροφορίας με έναν «καλώς-ορισμένο» τρόπο, με «μηχανοκεντρικό» προσανατολισμό. Με λίγα λόγια πέρα από τη μορφή της παρουσίασης των ιστοσελίδων στους χρήστες, η πραγματική δομή της πληροφορίας στο επίπεδο το οποίο δεν αντιλαμβάνεται ο χρήστης πρέπει να είναι κατανοητή τόσο από τις μηχανές στις οποίες είναι αποθηκευμένη όσο και από τις υπόλοιπες συνδεδεμένες μηχανές σε ένα Παγκόσμιο πλέον Σημασιολογικό Ιστό. Για την επίτευξη του σκοπού αυτού απαιτείται η «αναδόμηση» του ΠΙ έτσι ώστε να περιλαμβάνει μετατροπή της υπάρχουσας πληροφορίας σε δεδομένα, η οργάνωση των οποίων ακολουθεί συγκεκριμένη προτυποποίηση. Η δομή της προτυποποίησης αυτής εκφράστηκε από τον Burners Lee σχηματικά, με τον «Πύργο του Σημασιολογικού Ιστού», ένα σχέδιο σχετικά απλό, το οποίο παρουσιάζει τα επίπεδα τα οποία απαιτούνται για την όσο το δυνατόν πιο ορθή λειτουργία του ΣΙ. Το συγκεκριμένο σχήμα, δεν παρουσιάζει τίποτε άλλο παρά την ιδέα για ένα σύνολο νέων γλωσσών οργανωμένων σε μια αρχιτεκτονική επιπέδων, η οποία θα επιτρέπει στους χρήστες και στις εφαρμογές τους να διαμοιράζονται πληροφορίες. Η μορφή του Πύργου του Σημασιολογικού Ιστού δεν είναι στατική, μεταβάλλεται καθώς τα επίπεδα «χτίζονται» και προστίθενται νέα επίπεδα καθώς οι διαδικτυακές τεχνολογίες εξελίσσονται στην πορεία των ετών. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 23

24 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Εικόνα 1. Ο Αρχικός Πύργος του Σημασιολογικού Ιστού Τα πιο βασικότερα επίπεδα του Πύργου του ΣΙ είναι τα παρακάτω: URI/IRI και Unicode: Διασφαλίζουν ότι για την αναγνώριση αντικειμένων του ΣΙ, θα χρησιμοποιούνται διεθνή σύνολα χαρακτήρων. XML: Επιτρέπει στους χρήστες να προσδίδουν δομή στα έγγραφά τους. RDF: Ένας τρόπος αναπαράστασης της σημασιολογίας της πληροφορίας, για κάποιους πόρους οι οποίοι βρίσκονται στο WWW. Ontology επίπεδο: αναπαριστά την επίσημη κοινή «συμφωνία» για το νόημα των δεδομένων. Digital signature επίπεδο: το επίπεδο αυτό στοχεύει στην ανίχνευση των αλλαγών των εγγράφων. Rules/Query, Logic, proof και trust επίπεδα: αποτελούν τα ανώτερα επίπεδα της αρχιτεκτονικής. Το επίπεδο λογικής επιτρέπει το γράψιμο των κανόνων, ενώ το επίπεδο απόδειξης εκτελεί τους κανόνες και αξιολογεί μαζί με το μηχανισμό του επιπέδου εμπιστοσύνης αν θα εμπιστευθεί τη δεδομένη απόδειξη ή όχι. Όπως έχει ήδη αναφερθεί, την προσπάθεια αυτή έχει αναλάβει ο οργανισμός W3C (World Wide Web Consortium), το ερευνητικό τμήμα του οποίου δημιουργεί και προωθεί τη χρήση κοινών προτύπων δόμησης δεδομένων στον ΠΙ 1 μέσα από την ανάπτυξη πρωτοκόλλων και την οριοθέτηση πρακτικών. Οι ερευνητές του W3C είναι αυτοί οι οποίοι προτυποποιούν τα επίπεδα που παρουσιάζονται στον Πύργο και διαμορφώνουν τη δομή του. Τέλος, αξίζει να αναφερθεί πως σύμφωνα με τη διακήρυξη του οργανισμού 2, η επιστημονική αυτή προσπάθεια η οποία έχει στόχο να διασφαλίσει την εξέλιξη του διαδικτύου, διέπεται από κάποιες αρχές όπως: Την κοινωνική αξία του ΠΙ μέσω της προώθησης της ανθρώπινης επικοινωνίας, ανεξαρτήτως του υλικού, λογισμικού, είδους δικτύωσης στα οποία μπορεί κανείς να έχει πρόσβαση και ανεξαρτήτως γλώσσας, κουλτούρας, γεωγραφικής θέσης, φυσικής ή πνευματικής ικανότητας των ατόμων ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

25 ΚΕΦΑΛΑΙΟ 2: ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ & ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ Τη δυνατότητα ίδιας εκμετάλλευσης του όγκου της πληροφορίας από όλα τα είδη συσκευών και συστημάτων επικοινωνίας τα οποία σήμερα έχουν πρόσβαση στον ΠΙ. Την εξέλιξη της ενεργής συμμετοχής των ανθρώπων στη διαμόρφωση της πληροφορίας μέσω της εδραίωσης ισχυρών προτύπων σχεδίασης και αρχιτεκτονικής τα οποία ακολουθήθηκαν από πολλά εργαλεία κοινωνικής δικτύωσης. Την θεμελίωση της λογικής ότι το διαδίκτυο μπορεί να ιδωθεί και να χρησιμοποιηθεί είτε σαν ένα τεράστιο απόθεμα συνδεδεμένων δεδομένων (linked data) είτε ως ένα τεράστιο σύνολο υπηρεσιών που ανταλλάσουν μηνύματα μεταξύ τους. Οι δύο αυτές οπτικές είναι μεταξύ τους συμπληρωματικές. Τη στήριξη της δημιουργίας ενός «Παγκόσμιου Ιστού της Εμπιστοσύνης» (Web of Trust), μέσα από το σωστό σχεδιασμό της διαδικτυακής τεχνολογίας ώστε να υποστηρίζει σύνθετες αλληλεπιδράσεις μεταξύ χρηστών και μηχανών δίνοντας ταυτόχρονα το αίσθημα της ασφάλειας Τα μοντέλα δεδομένων του Σημασιολογικού Ιστού Η μεγάλη πρόκληση του ΣΙ είναι να παρέχει γλώσσες οι οποίες εκφράζουν τόσο τα δεδομένα, όσο και τη σημασιολογία που αυτά περικλείουν. Οι πιο βασικές τεχνολογίες που χρησιμοποιούνται σήμερα για την ανάπτυξη του ΠΙ είναι η γλώσσα XML (extensible Markup Language) και το RDF (Resource Description Framework) των οποίων την προτυποποίηση θεμελίωσε και υποστηρίζει ο οργανισμός W3C Η γλώσσα XML Η XML είναι μια γλώσσα η οποία επιτρέπει στο χρήστη να ορίσει τις δικές του ετικέτες (tags) για την οργάνωση της πληροφορίας μέσα σε μια ιστοσελίδα και για τη δημιουργία της έχουν χρησιμοποιηθεί αρκετές συντομεύσεις και πολλά στοιχεία της HTML. Οι δύο «γλώσσες» παρουσιάζουν αρκετές ομοιότητες αλλά και βασικές, διαφορές στη φιλοσοφία τους. Σύμφωνα με τους [2], η βασική διαφορά τους εντοπίζεται στον τρόπο με τον οποίο οι μηχανές αντιλαμβάνονται τη δόμηση της πληροφορίας μέσα σε ένα έγγραφο. Για παράδειγμα στα HTML έγγραφα μπορεί να υπάρχουν ετικέτες οι οποίες δε χρειάζεται να κλείσουν. Επιπλέον ο δημιουργός ενός τέτοιου εγγράφου, δεν υποχρεούται να ακολουθήσει κάποιον κανόνα σε σχέση με την εμφώλευση των ετικετών και την πληροφορία που πρέπει να περιέχει κάθε εμφωλευμένη δομή. Αυτό έχει σαν αποτέλεσμα για παράδειγμα να υπάρχουν έγγραφα τα οποία ο χρήστης μπορεί να διαβάσει και να κατανοήσει έτσι όπως παρουσιάζονται στο περιηγητή (browser) του, αλλά ένας υπολογιστής ή ένα πρόγραμμα-πράκτορας, να μην είναι σε θέση να «αντιληφθεί» τι αντιπροσωπεύουν τα δεδομένα που βρίσκονται ανάμεσα στις ετικέτες. Σε αντιδιαστολή, η XML ορίστηκε με τέτοιο τρόπο ώστε η δομή ορίζεται από πριν σε ένα πρότυπο έγγραφο από το χρήστη. Τέτοια έγγραφα μπορούν να είναι είτε αρχεία DTD είτε αρχεία XSD (XML Schema). Ο στόχος της χρήσης τους είναι ο διαχωρισμός της παρουσίασης ενός εγγράφου από την ικανότητα ενός υπολογιστή να διαχειριστεί την πληροφορία που αυτό περιέχει. Τι ακριβώς ορίζεται; Οι ετικέτες που θα χρησιμοποιηθούν, τα ονόματα, ο αριθμός και το είδος των ετικετών που θα χρησιμοποιηθούν εμφωλευμένα, το τι αντιπροσωπεύει η κάθε ετικέτα, ακόμη και οι επιτρεπτοί τύποι δεδομένων. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 25

26 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Για παράδειγμα το παρακάτω τμήμα XML : <lecturer> <name>david Billington</name> <phone> </phone> </lecturer> Έχει δομή η οποία ορίστηκε στο παρακάτω τμήμα ενός DTD αρχείου: <!ELEMENT lecturer (name,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT phone (#PCDATA)> Κατά συνέπεια η XML επιτρέπει στους χρήστες να προσδίδουν δομή στα έγγραφά τους. Τι γίνεται όμως με τη δομή αυτή; Για να αντιλαμβάνονται οι υπολογιστές το νόημα και τη σημασιολογία της, δημιουργήθηκε το μοντέλο δεδομένων: RDF Το μοντέλο δεδομένων RDF Το RDF (Resource Description Framework) μοντέλο δεδομένων, είναι ένας τρόπος αναπαράστασης της πληροφορίας, για κάποιους πόρους οι οποίοι βρίσκονται στο διαδίκτυο. Κυρίως χρησιμοποιείται για την αναπαράσταση μετά-δεδομένων που αφορούν πόρους του διαδικτύου, όπως για παράδειγμα ο τίτλος, ο συγγραφέας ή η ημερομηνία τροποποίησης μιας ιστοσελίδας και πολλά άλλα. Με τη γενίκευση όμως του όρου «Πόρος του Διαδικτύου», το RDF χρησιμοποιείται για την αναπαράσταση πληροφοριών για αντικείμενα τα οποία μπορούν να αναγνωριστούν στο διαδίκτυο, ακόμη κι αν αυτά δε μπορούν να ανακτηθούν άμεσα από το διαδίκτυο. Παραδείγματα είναι π.χ. πληροφορίες από δραστηριότητες διαδικτυακών αγοραπωλησιών (on-line shopping), ή προτιμήσεις χρηστών για τρόπους μετάδοσης πληροφοριών. Το RDF γενικά εφαρμόζεται σε περιπτώσεις όπου η προσπέλαση της πληροφορίας πρέπει να γίνει από μηχανές και όχι απαραίτητα από ανθρώπους, για το λόγο αυτό η πληροφορία δομείται με τέτοιο τρόπο ώστε να μπορεί να ανταλλάσσεται μεταξύ μηχανών χωρίς απώλειες στο νόημα. [3] Για παράδειγμα, μια ομάδα δηλώσεων του τύπου: «Υπάρχει ένα πρόσωπο, του οποίου το αναγνωριστικό είναι : με όνομα Eric Miller, και em@w3.org, και το οποίου ο τίτλος είναι: Dr» μπορεί να αναπαρασταθεί με τον γράφο της εικόνας που ακολουθεί: Εικόνα 2: Αναπαράσταση ενός πόρου του διαδικτύου και η RDF περιγραφή του. 26 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

27 ΚΕΦΑΛΑΙΟ 2: ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ & ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ Από την εικόνα γίνεται αντιληπτό ότι η RDF χρησιμοποιεί τα URIs για να αναγνωρίζει/ορίζει: Άτομα: π.χ. ο Eric Miller αναγνωρίζεται από το Είδη αντικειμένων/πραγμάτων: π.χ. το Person ορίζεται από το Ιδιότητες αυτών των αντικειμένων: π.χ. το mailbox ορίζεται από το URI: Τιμές αυτών των ιδιοτήτων: π.χ. το αναγνωρίζεται σαν τιμή της ιδιότητας mailbox. Το RDF παρέχει επίσης ένα XML-based συντακτικό (το RDF/XML) για την καταγραφή και την ανταλλαγή τέτοιων γράφων. Στην ουσία θα μπορούσε να ισχυριστεί κανείς ότι το νόημα της δομής ενός XML εγγράφου, εκφράζεται από την RDF με την οποία η κωδικοποίηση γίνεται σε τριπλέτες (sets of triples) οι οποίες γράφονται με τη χρήση XML ετικετών. Κάθε τριάδα περιέχει το υποκείμενο, το ρήμα και το αντικείμενο μιας στοιχειώδους πρότασης, των οποίων βασικό αναγνωριστικό αποτελεί το URI (Uniform Resource Identifier). Με τον τρόπο αυτό, είναι δυνατός ο ορισμός νέων τριπλετών ή των χαρακτηριστικών τους, αρκεί κάποιος να τους αναθέσει ένα URI κάπου στον ιστό. Οι RDF τριπλέτες ουσιαστικά διαμορφώνουν Ιστούς πληροφοριών για έννοιες που σχετίζονται μεταξύ τους. Επειδή η RDF χρησιμοποιεί τα URIs για την κωδικοποίηση της πληροφορίας σε ένα έγγραφο, τα URIs εξασφαλίζουν ότι οι ενότητες αυτές δεν είναι απλά λέξεις μέσα σε ένα έγγραφο, αλλά ότι έχουν ένα μοναδικό ορισμό κάπου στο διαδίκτυο Οντολογίες Επειδή όμως υπάρχει η πιθανότητα στον ΠΙ να χρησιμοποιούνται από διαφορετικούς κατασκευαστές διαφορετικά URIs για την ίδια έννοια, προκύπτει το πρόβλημα της αναγνώρισης αυτής της ομοιότητας από τους συνδεμένους υπολογιστές. Για να λυθεί αυτό το πρόβλημα επινοήθηκε και χρησιμοποιείται στον ΣΙ η έννοια της Οντολογίας (Ontology). Ποιος θα μπορούσε όμως να είναι ένας ορισμός της έννοιας της οντολογίας; Κατά τον Burners Lee [1] μια οντολογία είναι ένα έγγραφο ή αρχείο στο οποίο ορίζεται με επίσημο τρόπο η σχέση μεταξύ όρων. Ο συνήθης τύπος οντολογίας στο διαδίκτυο χαρακτηρίζεται από ταξονομία και ένα πλήθος κανόνων συσχέτισης. Η ταξονομία ορίζει κλάσεις αντικειμένων και σχέσεις μεταξύ τους. Για παράδειγμα μια διεύθυνση θα μπορούσε να οριστεί σαν τύπου: «τοποθεσία» και «κωδικοί πόλεως» ή θα μπορούσε να οριστεί απλώς σαν τύπος «τοποθεσία» κοκ. Κλάσεις, υποκλάσεις και σχέσεις μεταξύ οντοτήτων στις οντολογίες αποτελούν πολύ ισχυρά εργαλεία στον Παγκόσμιο Σημασιολογικό Ιστό. Ένας τεράστιος αριθμός από σχέσεις μεταξύ οντοτήτων μπορούν να εκφραστούν με την ανάθεση ιδιοτήτων σε κλάσεις και με το να επιτραπεί στις υποκλάσεις να κληρονομήσουν αυτές τις ιδιότητες. Ας πάρουμε το παράδειγμα των πόλεων. Αν οι κωδικοί πόλεων είναι τύπου πόλη και οι πόλεις γενικά διαθέτουν ιστοσελίδες τότε μια ιστοσελίδα θα μπορούσε να συσχετιστεί με ένα κωδικό πόλης (αυτής στην οποία ανήκει), ακόμη και αν δεν υπάρχουν σε κάποια βάση δεδομένων σύνδεσμοι που να συνδέουν τoν κωδικό πόλης με την ιστοσελίδα. Τέλος σημαντικό είναι να αναφέρουμε ότι ο υπολογιστής δεν καταλαβαίνει στ ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 27

28 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ αλήθεια κάποια από αυτές τις πληροφορίες, όμως μπορεί να χειριστεί τους όρους πολύ πιο αποδοτικά ώστε να έχουν χρησιμότητα και νόημα για το χρήστη. Η γρήγορη εξάπλωση της ιδέας του ΣΙ αποδεικνύει ότι η χρήση επίσημων προτύπων αναπαράστασης γνώσης με τη μορφή των οντολογιών, οδηγεί στην ικανότητα των μηχανών να προσπελάσουν, να επεξεργαστούν αλλά κυρίως να συσχετίσουν την πληροφορία. Με λίγα λόγια, η υιοθέτηση της ιδέας οντολογιών με κοινό λεξικό και διαμοιραζόμενη γνώση οδηγεί σε μια ενισχυμένη σημασιολογική διαλειτουργικότητα [4] Λογική Η λογική είναι ένα επιστημονικό πεδίο που μελετά τις αρχές της συλλογιστικής (reasoning). Στην επιστήμη των υπολογιστών έχει χρησιμοποιηθεί κυρίως στην Τεχνητή Νοημοσύνη, με τη μορφή προγραμμάτων αυτοματοποιημένης συλλογιστικής. Από πολύ νωρίς έγινε αντιληπτό ότι η λογική θα μπορούσε να χρησιμοποιηθεί για να εξάγεται η γνώση την οποία περικλείουν οι οντολογίες και για το λόγο αυτό αποτέλεσε βασικό αντικείμενο μελέτης από τους θεμελιωτές του ΣΙ. Η μελέτη αυτή περιλαμβάνει την αντιμετώπιση σημαντικών ζητημάτων μαθηματικής και σχεδιαστικής φύσης, μιας και η λογική που θα χρησιμοποιηθεί πρέπει μεν να είναι αρκετά ισχυρή ώστε να περιγράφει σύνθετες ιδιότητες αντικειμένων αλλά όχι τόσο περίπλοκη επειδή το μεγαλύτερο μέρος της γνώσης που σχετίζεται με το ΣΙ φαίνεται να έχει την περιορισμένη μορφή κανόνων: «Αν ισχύουν οι συνθήκες Α, τότε προκύπτει το συμπέρασμα Β» [2]. Το υποσύνολο αυτό της λογικής ονομάζεται λογική Horn, από τον μαθηματικό Alfred Horn ο οποίος πρώτος το 1951 ανέδειξε τη σημασία τέτοιων προτάσεων στην εργασία του με τίτλο "On sentences which are true of direct unions of algebras". Επειδή η λογική Horn έχει το πλεονέκτημα ότι επιτρέπει τη δημιουργία κανόνων για συλλογιστική (reasoning) πάνω στα συμπεράσματα, έχει επικρατήσει τελευταία η δημιουργία γλωσσών κανόνων οι οποίες ενσωματώνουν αυτή τη λογική και οι οποίες χρησιμοποιούνται στη θεμελίωση των λειτουργιών πρακτόρων σε σύγχρονα πολυπρακτορικά περιβάλλοντα Κανόνες και Γλώσσες Κανόνων Για την καλύτερη εξυπηρέτηση των χρηστών του διαδικτύου τόσο σε επίπεδο πρόσβασης σε μεγάλη ποσότητα πληροφορίας, όσο και στην σωστή, ασφαλή και γρήγορη παροχή υπηρεσιών, προέκυψε και η ανάγκη των επιχειρήσεων να φέρουν σε πέρας τις εργασίες τους μέσω του διαδικτύου με ανάλογα πρότυπα (standards). Έτσι εμφανίστηκε η ανάγκη ενσωμάτωσης στο ΣΙ ενός συστήματος κανόνων, οι οποίοι θα εξασφάλιζαν την εξαγωγή συμπερασμάτων, την επιλογή τρόπων δράσης, την απάντηση ερωτήσεων και κατά συνέπεια την ορθή διαλειτουργικότητα των διαφόρων προγραμμάτων πρακτόρων. Οι κανόνες, παραδοσιακά έχουν χρησιμοποιηθεί στη θεωρητική επιστήμη των υπολογιστών, στις τεχνολογίες μεταγλώτισσης (compiling), στο λογικό προγραμματισμό και στην τεχνητή νοημοσύνη. Στο ΣΙ οι κανόνες έχουν αναγνωριστεί ως ζήτημα μείζονος σημασίας, από τη στιγμή που αναγνωρίστηκε η αξία τους στο σχεδιασμό της δομής του. 28 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

29 ΚΕΦΑΛΑΙΟ 2: ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ & ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ Όμως οι κανόνες έχουν μελετηθεί μέχρι σήμερα, λιγότερο συστηματικά σε σχέση με θέματα σημασιολογίας, όπως για παράδειγμα η ταξονομία των οντολογιών. Για το λόγο αυτό, το Rule Markup Initiative 3 προσπαθεί να γεφυρώσει το χάσμα επικεντρώνοντας τις έρευνές του σε συστήματα κανόνων κατάλληλα για εφαρμογή στο διαδίκτυο, όπως για παράδειγμα εφαρμογές της λογικής Horn μαζί με το XML και RDF συντακτικό τους και τη σημασιολογία τους. Τέτοιες εφαρμογές είναι τόσο οι κανόνες εξαγωγής συμπερασμάτων όσο και οι αντιδραστικοί κανόνες. Έτσι, το Rule Markup Initiative αναπτύσσει μια XML/RDF-based γλώσσα κανόνων η οποία ονομάζεται RuleML και η οποία έχει στόχο τη θεμελίωση της ανταλλαγής κανόνων μεταξύ διαφόρων συστημάτων όπως κατανεμημένα προγράμματα του διαδικτύου, ή ετερογενή συστήματα πελάτη- εξυπηρετητή (client-server) μεγάλων εταιριών[5]. Η RuleML προσφέρει δυνατότητες για τον καθορισμό διαφόρων τύπων κανόνων, από κανόνες παραγωγής μέχρι κανόνες μετατροπής ή αντιδραστικούς κανόνες με ιεραρχικό τρόπο. Κάθε τμήμα κανόνα είναι μια έκφραση η οποία αναθέτει συγκεκριμένες λειτουργίες στον κανόνα. Η ιεραρχία της γλώσσας πρωτίστως διακλαδώνεται σε δύο κατηγορίες: Αντιδραστικούς κανόνες και κανόνες Μετασχηματισμού 4. Οι τελευταίοι στη συνέχεια, διαχωρίζονται σε κανόνες εξαγωγής συμπερασμάτων οι οποίοι με τη σειρά τους υποδιαιρούνται σε γεγονότα και ερωτήματα. Τελικά, τα ερωτήματα μπορεί να περιέχουν περιορισμούς ακεραιότητας. Εικόνα 3: Η ιεραρχία της RuleML Η RuleML επιτρέπει την ανάπτυξη, εκτέλεση και ανταλλαγή κανόνων μεταξύ διαφορετικών συστημάτων και εργαλείων. Τέλος, παρέχει τη δυνατότητα για διατύπωση ερωτημάτων και αναφορών σε διαδικτυακές οντολογίες, για αντιστοίχιση οντολογιών, για δυναμικές διαδικτυακές συμπεριφορές διαγραμμάτων ροής, για υπηρεσίες και για πράκτορες. Στο κεφάλαιο 4 του παρόντος επιχειρείται μια πιο εκτενής αναφορά στη RuleML όμως ιδιαίτερη έμφαση θα δοθεί στην προέκτασή της, με την ονομασία Reaction RuleML, η οποία προσφέρει τη δυνατότητα δημιουργίας αντιδραστικών κανόνων του τύπου ECA με άμεση εφαρμογή σε πολυπρακτορικά περιβάλλοντα. 3 RuleML. The Rule Markup Initiative, 26th February RuleML. The Rule Markup Design. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 29

30 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ 2.2 ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ Η μεγάλη διείσδυση των βασικών αρχών του ΣΙ στην «καλή» οργάνωση της πληροφορίας και των υπηρεσιών έχει οδηγήσει στην καλύτερη κατανόηση του περιεχομένου του διαδικτύου τόσο από τους ανθρώπους, όσο και από τους υπολογιστές και μεταμόρφωσε τον τρόπο με τον οποίο ικανοποιούνται τα αιτήματά τους. Γίνεται λοιπόν αντιληπτό, ότι οι τεχνολογίες που χρησιμοποιούνται στον ΣΙ αυξάνουν τη διαλειτουργικότητα και ευνοούν την ανάπτυξη αυτόνομων τμημάτων λογισμικού που ονομάζονται ευφυείς πράκτορες (Intelligent Agents). Οι πράκτορες, μεταξύ άλλων, συλλέγουν πληροφορίες από διάφορες πηγές του διαδικτύου, τις επεξεργάζονται και ανταλλάσουν τα αποτελέσματα με άλλους πράκτορες για την εξυπηρέτηση των στόχων για τους οποίους έχουν προγραμματιστεί [6]. Κατά συνέπεια, η αποδοτικότητα τέτοιων προγραμμάτων, θα αυξάνεται εκθετικά όσο αυξάνει η διάθεση περιεχομένου με σημασιολογία, ενώ από την άλλη, η ανάπτυξη πολυπρακτορικών συστημάτων στη βάση ενός ΣΙ, επηρεάζει τον τρόπο χρήσης και λειτουργικότητας του διαδικτύου. Ένα ενεργό κομμάτι της ερευνητικής δραστηριότητας πάνω σε αυτό το ζήτημα τα τελευταία χρόνια, μελετά τη δράση των πρακτόρων στο επίπεδο κανόνων του ΣΙ. Δηλαδή αφού μελετηθούν η σημασιολογία και η ταξονομία των οντολογιών μιας επικοινωνιακής πράξης πρακτόρων, να μπορέσουν οι κανόνες της πράξης αυτής να εκφραστούν σε κανόνες μιας ανάλογης γλώσσας όπως η RuleML ή σε αντιδραστικούς κανόνες της Reaction RuleML για την οποία πραγματοποιείται εκτενής αναφορά σε κεφάλαιο που ακολουθεί Ορισμός Ευφυών Πρακτόρων Ποιος όμως θα μπορούσε να είναι ένας ορισμός για τους πράκτορες; Τα αυτόνομα τμήματα λογισμικού που έχουν αναπτυχθεί από τους επιστήμονες της πληροφορικής και τους προγραμματιστές και ονομάζονται προγράμματα, είναι τόσα πολλά σε αριθμό και τόσο διαφορετικά και πολυσύνθετα σε λειτουργίες ώστε θα ήταν πολύ χρήσιμος ένας διακριτός ορισμός των πρακτόρων με βάση τις ιδιαίτερες λειτουργίες που επιτελούν. Σύμφωνα με τους [7] : «Ένας αυτόνομος πράκτορας είναι ένα σύστημα το οποίο είναι ενσωματωμένο σ ένα περιβάλλον, αποτελεί τμήμα αυτού του περιβάλλοντος, διαθέτει αισθητήρες για να το αντιλαμβάνεται και δρα σε αυτό μέσα στο χρόνο, επιδιώκοντας την επίτευξη των στόχων του στο παρόν αλλά και σε μελλοντικές καταστάσεις». Ενώ, λίγα χρόνια αργότερα, σε μια προσπάθεια σύνδεσης των πρακτόρων με τις γλώσσες κανόνων και οντολογιών του ΣΙ, οι [8] έρχονται να δώσουν έναν ορισμό σύμφωνα με τον οποίο: «πράκτορας καλείται ένα βιολογικό ή τεχνητό σύστημα το οποίο αλληλεπιδρά με το φυσικό ή τεχνητό περιβάλλον του με βάση τη Νοητική Κατάστασή του (Mental State) και ταυτόχρονα επιδεικνύει ένα βαθμό αυτονομίας». Τα πιο βασικά στοιχεία της Νοητικής Κατάστασης (Mental State) ενός πράκτορα είναι η αντίληψη που έχει για τα γεγονότα (perception of events) με τη μορφή εισερχόμενων μηνυμάτων καθώς και οι πεποιθήσεις του (beliefs) ή η γνώση του. Επιπλέον σημαντικά δομικά στοιχεία ενός πράκτορα είναι: Η Μνήμη του (memory) σχετικά με παρελθοντικά γεγονότα και πράξεις 30 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

31 ΚΕΦΑΛΑΙΟ 2: ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ & ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ Οι Δεσμεύσεις του (commitments) απέναντι σε άλλους πράκτορες σχετικά με την εκτέλεση συγκεκριμένων πράξεων Αξιώσεις (claims) απέναντι σε άλλους πράκτορες Οι Στόχοι (goals) με τη μορφή συνθηκών που πρέπει να ικανοποιηθούν για την επίτευξη μελλοντικών σχεδίων Προθέσεις (intentions) δηλαδή σχέδια για δράσεις τα οποία πράκτορας επέλεξε να εκτελέσει. Με βάση τα παραπάνω, θα μπορούσε κανείς να ισχυριστεί ότι η βασική δομή ενός πράκτορα αποτελείται από πέντε δομικά στοιχεία [9] των οποίων η λειτουργία καθώς και ο τρόπος αναπαράστασης στοσι περιγράφονται στις παραγράφους που ακολουθούν: Η Νοητική Κατάσταση (Mental State) ενός πράκτορα Αποτελείται από ένα σύνολο γεγονότων τα οποία πιστεύει ότι είναι αληθή. Στην ουσία πρόκειται για το σύνολο των πεποιθήσεών του. Για την αναπαράστασή τους έχει επικρατήσει στις κοινότητες του ΣΙ η χρήση απλών κατευθυνόμενων γράφων με σήμανση. Στην ουσία τα αντικείμενα ή οι πόροι αναπαρίστανται από τους κόμβους των γράφων οι οποίοι συνδέονται μεταξύ τους με σχέσεις με ετικέτα. Το RDF μοντέλο δεδομένων, είναι αυτό που χρησιμοποιείται για τη δόμηση αυτών των γράφων. Εικόνα 4: Η νοητική κατάσταση ενός πράκτορα Αναπαράσταση του «σχήματος» της Νοητικής Κατάστασης ενός πράκτορα: προτείνεται η γλώσσα αναπαράστασης οντολογιών RDF Schema. Μάλιστα, η χρήση των διαμοιραζόμενων οντολογιών έχει επικρατήσει ως η τεχνολογίακλειδί για την διαλειτουργικότητα των πρακτόρων. Πιο συγκεκριμένα, προαπαιτούμενο για την ορθή ανταλλαγή και κατανόηση μηνυμάτων μεταξύ πρακτόρων, είναι η συμφωνία για τη χρήση μιας κοινής οντολογίας. Διαφορετικά δεν είναι εγγυημένο ότι τα δεδομένα θα μεταφραστούν σωστά. Περιορισμοί ακεραιότητας για τον αποκλεισμό μη-επιτρεπτών Νοητικών καταστάσεων για ένα πράκτορα, μπορούν να τεθούν σε ισχύ με τη χρήση κανόνων της γλώσσας RuleML. Ένα σύνολο κανόνων παραγωγής (Derivation Rules) της γλώσσας RuleML, τύπου εάν τότε (IF condition THEN conclusion) μπορούν να χρησιμοποιηθούν για τον προσδιορισμό διατύπωση της γνώσης ενός πράκτορα. Επιπροσθέτως τέτοιοι κανόνες χρησιμοποιούνται στην εξαγωγή νέας πληροφορίας από τη συλλογή γεγονότων τα οποία είναι γνωστά στον πράκτορα. Αντιδραστικοί κανόνες της γλώσσας RuleML καθορίζουν τη συμπεριφορά του πράκτορα απέναντι σε γεγονότα ή μηνύματα. Τέτοιοι κανόνες συχνά αναφέρονται ως κανόνες Γεγονός Συνθήκη Δράση (ECA Event Condition ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 31

32 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ 32 Action) και έχουν την ακόλουθη γενική μορφή: UPON message RECEIVED: IF condition THEN action. Ενώ οι κανόνες παραγωγής βοηθάνε στην εξαγωγή συμπερασμάτων από τον πράκτορα, οι αντιδραστικοί κανόνες έχουν την ιδιότητα να ενεργοποιούν πράξεις όπως: αποστολή , εκτυπώσεις μηνυμάτων, ή αποστολή μηνυμάτων σε άλλους πράκτορες Πράκτορες Βασισμένοι σε Κανόνες Ένας πράκτορας αποκαλείται βασισμένος σε κανόνες (rule-based) εάν η συμπεριφορά του η/και η γνώση του εκφράζονται μέσω κανόνων[10]. Ο Shoham στη μελέτη του [11] παρουσιάζει τον ορισμό του agent-oriented προγραμματισμού (AOP) ο οποίος στηρίζεται σε τρία «πνευματικά» χαρακτηριστικά: τα πιστεύω (beliefs) του πράκτορα, τις ικανότητες και τις δεσμεύσεις του. Ας σημειωθεί ότι και στις δύο λίστες των βασικών αυτών χαρακτηριστικών, απουσιάζουν δύο πολύ βασικά: Οι αντιλήψεις (perceptions) για παράδειγμα, με τη μορφή εισερχόμενων μηνυμάτων, ή με τη μορφή σημάτων που αναπαριστούν επικοινωνιακά συμβάντα και η Μνήμη από παρελθοντικά συμβάντα και δραστηριότητες του πράκτορα. Στην πραγματικότητα, αν και οι αντιλήψεις δεν είναι τόσο σταθερές όσο τα πιστεύω, διαμορφώνουν τη βάση της αντιδραστικής συμπεριφοράς, κατά συνέπεια είναι πολύ πιο θεμελιώδεις από κάθε άλλο πνευματικό χαρακτηριστικό π.χ. επιθυμίες (desires) και προθέσεις (intentions). Οι απλοί πράκτορες οι οποίοι είναι εντελώς αντιδραστικοί, δεν παράγουν ούτε εκτελούν σχέδια για να πετυχαίνουν σαφείς στόχους που μπορεί να τους έχουν ανατεθεί, απλώς αντιδρούν στα γεγονότα ανάλογα με τον τρόπο που έχει οριστείπροτυποποιηθεί η αντιδραστική συμπεριφορά τους. Θα μπορούσε να διατυπωθεί τότε, η άποψη ότι τέτοιοι πράκτορες, είναι βασισμένοι στη γνώση και την αντίληψη (Knowledge and Perception based KP based). Οι αντιδραστικοί κανόνες στην ουσία κωδικοποιούν τα πρότυπα αντιδραστικότητας ενός KP πράκτορα. Καθορίζουν ποιες πράξεις πρέπει να εκτελέσει ο πράκτορας, ώστε να ανταποκρίνονται στα γεγονότα που δημιουργούνται από τα συστήματα αντίληψής του, καθώς και σε εκείνα τα γεγονότα που αποτελούν επικοινωνιακές πράξεις με άλλους πράκτορες. Αποτελούν μια επέκταση των ECA κανόνων οι οποίοι είναι γνωστοί από τις «δυναμικές» βάσεις δεδομένων. Συνεπώς, θα μπορούσε να γίνει ένας διαχωρισμός μεταξύ διανοητικών, φυσικών και επικοινωνιακών αντιδραστικών κανόνων. Οι αντιδραστικοί κανόνες ενεργοποιούνται από τα γεγονότα. Ο διερμηνευτής του πράκτορα, συνεχώς ελέγχει την «ουρά» γεγονότων του πράκτορα. Αν υπάρχει ένα νέο μήνυμα για κάποιο γεγονός, γίνεται «ταίριασμα» με την κατάσταση των γεγονότων όλων των αντιδραστικών κανόνων και τότε εκτιμώνται οι συνθήκες αυτών των κανόνων που ταιριάζουν. Αν ικανοποιούνται (οι συνθήκες) με βάση την τρέχουσα γνωσιακή βάση, όλες οι ελεύθερες μεταβλητές των κανόνων αρχικοποιούνται και έχουν σαν αποτέλεσμα την ενεργοποίηση κάποιων πράξεων οι οποίες έχουν και τα αντίστοιχα αποτελέσματα. Στη συνέχεια όλες αυτές οι πράξεις εκτελούνται οδηγώντας συχνά και στην αποστολή μηνυμάτων στους άλλους πράκτορες και τα αποτελέσματά τους αφομοιώνονται από την τρέχουσα γνωσιακή βάση. Η σημασιολογία εκτέλεσης των KP πρακτόρων θα μπορούσε να αποτελείται από τα παρακάτω βήματα: ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

33 ΚΕΦΑΛΑΙΟ 2: ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ & ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ Προσκόμιση μηνύματος/γεγονότος από την ουρά γεγονότων (Event queue EQ) Επιλογή των αντιδραστικών κανόνων που πυροδοτούνται από αυτό το μήνυμα/γεγονός Πραγματοποιείται μια διαλογή από αυτούς τους κανόνες των οποίων οι συνθήκες ικανοποιούνται με βάση την τρέχουσα κατάσταση της γνωσιακής βάσης. Τελικά οι πράξεις που ορίζονται από αυτούς τους αντιδραστικούς κανόνες εκτελούνται (γίνεται αποστολή μηνυμάτων ή/και εκτέλεση άλλων πράξεων από τον πράκτορα και η γνωσιακή βάση αφομοιώνει όλα τα αποτελέσματα ή τις μετά-συνθήκες που διαμορφώνονται από τους κανόνες κατά τη διάρκεια αυτών των πράξεων Διαπραγμάτευση Ηλεκτρονικών Συμβολαίων Σε ένα πολυπρακτορικό λοιπόν ιστό, ομάδες πρακτόρων που επικοινωνούν μεταξύ τους θα έχουν την ικανότητα να «διασχίζουν» τον κυβερνοχώρο και να εκτελούν σύνθετες εργασίες με σκοπό την εξυπηρέτηση των στόχων των χρηστών τους. Μια από τις εφαρμογές των πρακτόρων είναι η διαπραγμάτευση ηλεκτρονικών συμβολαίων (e-contracts), η οποία μπορεί να κάνει τις συναλλαγές ευκολότερες, μέσω της αποτελεσματικής προτυποποίησης και στη συνέχεια διαχείρισης των διαδικασιών που εμπλέκονται [12]. Στην πραγματική ζωή, ένα συμβόλαιο είναι μια συμφωνία η οποία δημιουργεί και τροποποιεί «νόμιμες» σχέσεις (υποχρεώσεις, άδειες, απαγορεύσεις) μεταξύ δύο ή περισσότερων εμπλεκομένων μερών και περιλαμβάνει διάφορα στάδια, όπως για παράδειγμα ανταλλαγή πληροφοριών και διαπραγμάτευση. Ένα ηλεκτρονικό συμβόλαιο από την άλλη είναι ένα συμβόλαιο το οποίο μοντελοποιείται, καθορίζεται, εκτελείται και θεσπίζεται από ένα σύστημα λογισμικού, έναν πράκτορα. Και εδώ, ορίζονται σύνολα προτάσεων οι οποίες πρέπει να ικανοποιηθούν από τα εμπλεκόμενα μέρη όμως η βασική διαφορά είναι ότι τα ηλεκτρονικά συμβόλαια έρχονται εις πέρας αυτοματοποιημένα, υπερκεράζοντας τις καθυστερήσεις και τα μειονεκτήματα της «χειρονακτικής» διαδικασίας. Συνεπώς, η μελέτη και προτυποποίησή τους γίνονται πιο επιτακτικές σήμερα, διότι οι εταιρίες θα έχουν άμεσο χρηματικό όφελος, ενώ οι χρήστες του διαδικτύου θα μπορούν να απολαμβάνουν ταχύτερες και πιο αξιόπιστες υπηρεσίες. Σύμφωνα με τους [13] για την αυτοματοποίηση της διαδικασίας διαπραγμάτευσης, πρέπει να οριστούν, να αναπτυχθούν και να παρασχεθούν οι παρακάτω μηχανισμοί: Μια γλώσσα επικοινωνίας για την ανταλλαγή μηνυμάτων διαπραγμάτευσης Ένα πρωτόκολλο επικοινωνίας το οποίο θα καθορίζει τα πιθανά στάδια της διαδικασίας διαπραγμάτευσης Για κάθε εμπλεκόμενο συμμετέχοντα, μια στρατηγική διαπραγμάτευσης για τη διασφάλιση ότι η πράξη της διαπραγμάτευσης θα γίνει μέσα στο δοθέν (προκαθορισμένο) χρόνο. Τέλος πρέπει να υπάρχει ένας μηχανισμός ο οποίος θα συνδυάσει αυτά τα μέρη μεταξύ τους, και θα τα ενσωματώσει σε μια ενιαία οντότητα η οποία θα παρέχει μια ομοιόμορφη εξωτερική διεπαφή την οποία και απαιτούν οι άλλοι εμπλεκόμενοι. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 33

34 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Ο πιο φυσικός και ευέλικτος τρόπος για την επίτευξη αυτής της αυτοματοποίησης, φαίνεται να είναι η τεχνολογία των πρακτόρων. Όμως για την ορθή λειτουργικότητα ενός τέτοιου εγχειρήματος, είναι απαραίτητο να θεμελιωθούν και στη συνέχεια να εφαρμοστούν οι βασικές αρχές που θα διέπουν τους πράκτορες έτσι ώστε να χρησιμοποιούνται κατά κάποιο τρόπο κοινά συμφραζόμενα και να αποφεύγονται οι διαφορές σε συμβατότητες. Η ικανότητα τόσο για συνεργασία των πρακτόρων μεταξύ τους όσο και για αιτιολόγηση των πράξεών τους, θα μπορούσε σε πολλές περιπτώσεις να προαχθεί εάν υπήρχε τρόπος, αφενός να είναι ικανοί να διαχειρίζονται τη σημασιολογία του περιεχομένου του διαδικτύου και αφετέρου να μπορούν να το μεταφράσουν σε κανόνες που οι ίδιοι αντιλαμβάνονται. Αυτό σύμφωνα με τους [14] μπορεί να επιτευχθεί αν και οι δύο πράκτορες που επικοινωνούν χρησιμοποιούν τον ίδιο φορμαλισμό για τους κανόνες ή αν υπάρχει η δυνατότητα σημασιολογικής μετάφρασης του φορμαλισμού από ένα είδος σε ένα άλλο. Έτσι διατυπώθηκε η ιδέα ότι οι λογικοί συσχετισμοί οι οποίοι καθορίζονται από τη χρήση των οντολογιών στον ΣΙ, θα μπορούσαν να γραφούν ως «αποδείξεις» σε κάποια γλώσσα λογικής με τη χρήση κανόνων, με στόχο την υποστήριξη τέτοιων λειτουργιών από πράκτορες. 34 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

35 ΚΕΦΑΛΑΙΟ 3: ΠΡΟΔΙΑΓΡΑΦΕΣ ΤΗΣ FIPA ΓΙΑ ΤΟΥΣ ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ Κ Ε Φ Α Λ Α Ι Ο 3 : Π Ρ Ο Δ Ι Α Γ Ρ Α Φ Ε Σ Τ Η Σ F I PA Γ Ι Α Τ Ο Υ Σ Ε ΥΦ Υ Ε Ι Σ Π Ρ Α Κ Τ Ο Ρ Ε Σ

36

37 ΚΕΦΑΛΑΙΟ 3: ΠΡΟΔΙΑΓΡΑΦΕΣ ΤΗΣ FIPA ΓΙΑ ΤΟΥΣ ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ ΠΡΟΔΙΑΓΡΑΦΕΣ ΤΗΣ FIPA 3.1 ΟΡΓΑΝΙΣΜΟΣ FIPA Ο Οργανισμός FIPA (Foundation for Intelligent Physical Agents) δημιουργήθηκε το 1996 με στόχο την παραγωγή προτύπων (standards) λογισμικού για την αλληλεπίδραση ετερογενών πρακτόρων και πολυπρακτορικών συστημάτων. Το 2005, ο οργανισμός FIPA έγινε επίσημα μέλος της IEEE και έκτοτε αποτελεί την ενδέκατη επιτροπή προτυποποίησής της. 5 Βασική αποστολή της FIPA είναι η θεμελίωση της διαλειτουργικότητας μεταξύ πρακτόρων και πολυπρακτορικών συστημάτων σε διάφορες/διαφορετικές και πολλαπλές πλατφόρμες, κάτι το οποίο αντικατοπτρίζεται πιο επίσημα στην επίσημη διακήρυξη του οργανισμού: «Η προώθηση των τεχνολογιών και οι ορισμοί της διαλειτουργικότητας τα οποία διευκολύνουν τη συνεργασία πρακτόρων σε συστήματα ευφυών πρακτόρων τα οποία λειτουργούν μέσα σε μοντέρνα εμπορικά και βιομηχανικά δεδομένα». Μπορεί κανείς να παρατηρήσει ότι στη διακήρυξη έχει δοθεί έμφαση σε πρακτικές εμπορικές και βιομηχανικές χρήσεις των πρακτορικών συστημάτων. Η FIPA όμως εστιάζει εξ ίσου την προσοχή της σε ευφυείς ή γνωστικούς πράκτορες, δηλαδή συστήματα λογισμικού τα οποία έχουν τη δυνατότητα να «λογοδοτήσουν» (reasoning) για τον «εαυτό τους» ή για άλλα συστήματα με τα οποία αλληλεπιδρούν. Το βασικό μήνυμα της FIPA είναι ότι μέσα από ένα συνδυασμό ενεργειών λόγου, λογικής κατηγορημάτων και κοινόχρηστων οντολογιών, μπορεί να προσφέρει προτυποποιημένες μεθόδους «διερμηνείας» της επικοινωνίας μεταξύ πρακτόρων, με τρόπο που να μην αλλοιώνεται το επιδιωκόμενο νόημα της επικοινωνίας. Δηλαδή ο στόχος της FIPA είναι πολύ πιο φιλόδοξος π.χ. από το στόχο της XML με την οποία προτυποποιείται μόνο η συντακτική δομή των εγγράφων. Για να υποστηρίξει την αποστολή της η FIPA υιοθέτησε/δημιούργησε και εργάζεται σε προδιαγραφές (specifications) η εμβέλεια των οποίων ποικίλει από Αρχιτεκτονικές για την υποστήριξη της επικοινωνίας μεταξύ των πρακτόρων, Γλώσσες Επικοινωνίας και Περιεχομένου για την έκφραση αυτής της αλληλεπίδρασης και Πρωτόκολλα αλληλεπίδρασης τα οποία προάγουν τα απλά μηνύματα (που ανταλλάσουν οι πράκτορες) σε πλήρεις συναλλαγές. Τα πιο γνωστά και ευρέως διαδεδομένα πρότυπα της FIPA είναι αυτά που αφορούν την επικοινωνία μεταξύ πρακτόρων και θεμελιώθηκαν από μια σειρά προδιαγραφών με τη γενικότερη ονομασία «Γλώσσα Επικοινωνίας Πρακτόρων» (Agent Communication Language ή FIPA-ACL). Αυτά θα αναλυθούν στη συνέχεια του παρόντος κεφαλαίου μιας και ο στόχος είναι να γίνει η αναγωγή τους σε κανόνες της γλώσσας Reaction RuleML. 5

38 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ 3.2 ΔΟΜΗ ΜΗΝΥΜΑΤΟΣ ΤΗΣ FIPA ACL Ένα μήνυμα της FIPA ACL (Agent Communication Language) περιέχει ένα αριθμό από παραμέτρους[15]. Ο αριθμός και το είδος των παραμέτρων αυτών ποικίλει ανάλογα με την περίσταση. Η μόνη παράμετρος που είναι θεμελιώδης σε ένα ACL μήνυμα είναι ο τύπος του (performative), παρόλο που τα περισσότερα μηνύματα πρέπει να περιέχουν την παράμετρο αποστολέας (sender), παραλήπτης (receiver) και επίσης παραμέτρους περιεχομένου (content). Αν ένας πράκτορας δεν αναγνωρίζει κάποια από τις παραμέτρους ή τις τιμές τους, δύναται να απαντήσει με μήνυμα τύπου: not-understood. Συγκεκριμένες υλοποιήσεις επιτρέπεται να χρησιμοποιούν παραμέτρους μηνυμάτων ορισμένες από το χρήστη πλέον αυτών που ορίζονται στο παρόν από τη FIPA. Στην περίπτωση αυτή το αλφαριθμητικό x- πρέπει να χρησιμοποιείται για τις ονομασίες αυτών των non-fipa standard προσθέτων παραμέτρων. Κάποιες παράμετροι του μηνύματος μπορεί να παραλειφθούν όταν η τιμή τους μπορεί να εξαχθεί από τα συμφραζόμενα του «διαλόγου». Παρόλα αυτά τέτοιου είδους υλοποιήσεις που παραλείπουν κάποιες παραμέτρους του συστήματος, δεν είναι εγγυημένο ότι θα εξασφαλίζουν και τη διαλειτουργικότητα μεταξύ τους. Το πλήρες σύνολο των FIPA ACL παραμέτρων ενός μηνύματος φαίνονται στον παρακάτω πίνακα. Δεν αναλύονται περεταίρω λεπτομέρειες σχετικά με την εξειδικευμένη κωδικοποίησή τους η οποία μπορεί να ποικίλει ανάλογα με την υλοποίηση. Πίνακας 1 : Οι παράμετροι ενός μηνύματος FIPA ACL Παράμετρος performative sender receiver reply-to content language encoding ontology protocol conversation-id reply-with in-reply-to reply-by Κατηγορία παραμέτρων Ο τύπος που καθορίζει το περιεχόμενο του μηνύματος Μέλος της συζήτησης Αποστολέας Μέλος της συζήτησης Παραλήπτης Μέλος της συζήτησης Για ποιόν προορίζεται η απάντηση Περιεχόμενο του μηνύματος Η γλώσσα του περιεχομένου Περιγραφή του περιεχομένου Περιγραφή του περιεχομένου Ρύθμιση/έλεγχος του διαλόγου Ρύθμιση/έλεγχος του διαλόγου Μοναδικό αναγνωριστικό. Ρύθμιση/έλεγχος του διαλόγου μήνυμα απάντησης Ρύθμιση/έλεγχος του διαλόγου Ορισμός του μηνύματος στο οποίο αφορά η απάντηση Ρύθμιση/έλεγχος του διαλόγου Στις παραγράφους που ακολουθούν επιχειρείται μια πιο αναλυτική παρουσίαση των παραμέτρων μηνύματος οι οποίες παρουσιάστηκαν στον παραπάνω πίνακα. Η 38 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

39 ΚΕΦΑΛΑΙΟ 3: ΠΡΟΔΙΑΓΡΑΦΕΣ ΤΗΣ FIPA ΓΙΑ ΤΟΥΣ ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ ανάλυσή τους, γίνεται με βάση το ρόλο που παίζουν σε ένα μήνυμα για το λόγο αυτό και έχουν ομαδοποιηθεί Τύπος της Πράξης Επικοινωνίας Η παράμετρος Performative Παράμετρος performative Περιγραφή Ορίζει τον τύπο της επικοινωνιακής πράξης του ACL μηνύματος Η παράμετρος performative είναι απαραίτητη σε όλα τα ACL μηνύματα και ουσιαστικά ορίζει τον τύπο του μηνύματος. Η FIPA έχει δημιουργήσει πρότυπα για διάφορα και διαφορετικά μηνύματα τα οποία μπορεί να ανταλλάξουν πράκτορες κατά τη διάρκεια της επικοινωνίας τους[16]. Τέτοια μηνύματα είναι για παράδειγμα: Accept Proposal, Agree, Cancel, Call for Proposal, Confirm, Disconfirm κλπ. Επιπλέον έχει ορίσει και performatives για κάθε ένα από αυτά. Π.χ. το performative για το μήνυμα Accept proposal είναι accept-proposal κ.ο.κ. Στην επόμενη παράγραφο (3.3) πραγματοποιείται μια πιο αναλυτική παρουσίαση των performatives των μηνυμάτων, με βάση την προτυποποίηση της FIPA. Σημειώνεται πως οι προγραμματιστές προτρέπονται να χρησιμοποιούν τα πρότυπα FIPA performatives όσες φορές είναι αυτό δυνατό και όπου κρίνουν ότι είναι απαραίτητο Συμμετέχοντες στο διάλογο Sender (Αποστολέας) Παράμετρος sender Περιγραφή Η ταυτότητα του πράκτορα που στέλνει το μήνυμα κατά την επικοινωνία. Σημείωση: Η παράμετρος sender μπορεί να παραλειφθεί μόνο στις περιπτώσεις που ο πράκτορας-αποστολέας ενός μηνύματος επιθυμεί την ανωνυμία Receiver (Παραλήπτης) Παράμετρος receiver Περιγραφή Η ταυτότητα των επιθυμητών παραληπτών ενός μηνύματος Σημείωση: Κανονικά η παράμετρος receiver θα υπάρχει σε κάθε ACL μήνυμα. Επιτρέπεται η παράλειψή της μόνο στις περιπτώσεις όπου ο παραλήπτης εννοείται με αξιοπιστία- από τα συμφραζόμενα. Η παράμετρος receiver μπορεί να είναι απλώς ένα όνομα πράκτορα ή εναλλακτικά ένα non-empty σύνολο ονομάτων πρακτόρων (σε περιπτώσεις multicast). Στην πράξη, η σημασιολογία ενός Multicast είναι ότι ο αποστολέας έχει στόχο να κάνει κάθε ένα από τους παραλήπτες να φτάσουν στο στάδιο να «πιστέψουν» το περιεχόμενο του μηνύματος αυτού. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 39

40 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Reply To Παράμετρος reply-to Περιγραφή Σε ποιον απευθύνεται η απάντηση Η παράμετρος αυτή υποδεικνύει ότι τα μεταγενέστερα μηνύματα σε ένα «διάλογο» θα πρέπει να οδηγηθούν προς τον πράκτορα της reply-to παραμέτρου και όχι σ αυτόν της sender παραμέτρου Περιεχόμενο Μηνύματος Content Παράμετρος content Περιγραφή Ορίζει το περιεχόμενο του μηνύματος. Ισοδύναμα ορίζει το αντικείμενο της πράξης (object of the action). Η παράμετρος content είναι ο κορμός ενός ACL μηνύματος. Εδώ περιγράφονται οι «προθέσεις» του πράκτορα σχετικά με την εκτέλεση κάποιας πράξης και την πρόταση που απευθύνει σε άλλους πράκτορες σχετικά με την πράξη αυτή. Για την εδραίωση της επικοινωνίας ενός πράκτορα με έναν ή περισσότερους άλλους πράκτορες, στην παράμετρο content ορίζεται από τη FIPA ότι πρέπει να υπάρχει μια έκφραση (expression) η οποία και περιέχει τις παραμέτρους (συνθήκες μεταξύ μεταβλητών, τιμές μεταβλητών) για τις οποίες οι άλλοι πράκτορες θα διαπραγματευτούν με τον πράκτορα-αποστολέα του μηνύματος. Συνεπώς η παράμετρος content έχει το νόημα να διερμηνευτεί από τον παραλήπτη του μηνύματος ο οποίος θα απαντήσει με ένα άλλο μήνυμα το οποίο θα περιλαμβάνει επίσης μια παράμετρο content στην οποία θα έχει τις συνθήκες μεταξύ των μεταβλητών και τις τιμές που αυτός αποδέχεται ή προτείνει Περιγραφή του περιεχομένου ενός μηνύματος Η παράμετρος Language Παράμετρος language Περιγραφή Εδώ καθορίζεται η γλώσσα στην οποία εκφράζεται το περιεχόμενο του μηνύματος. Στην ουσία η γλώσσα είναι ο τρόπος με τον οποίο ορίζεται το περιεχόμενο του μηνύματος στην παράμετρο content που αναλύθηκε στην παρ Η γλώσσα αφορά τον προγραμματιστή και ουσιαστικά είναι δικό του θέμα να τη χρησιμοποιήσει, ρισκάροντας να βρεθούν πράκτορες οι οποίοι θα κάνουν χρήση της ίδιας γλώσσας Η παράμετρος Encoding Παράμετρος encoding Περιγραφή Ορίζει την κωδικοποίηση των εκφράσεων της γλώσσας που χρησιμοποιείται στην παράμετρο content του μηνύματος. 40 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

41 ΚΕΦΑΛΑΙΟ 3: ΠΡΟΔΙΑΓΡΑΦΕΣ ΤΗΣ FIPA ΓΙΑ ΤΟΥΣ ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ Η χρήση αυτής της παραμέτρου είναι προαιρετική. Σε περίπτωση που παραλειφθεί, η κωδικοποίηση ορίζεται στον φάκελο του μηνύματος Η παράμετρος Ontology Παράμετρος ontology Περιγραφή Ορίζει την οντολογία ή τις οντολογίες που χρησιμοποιούνται για την απόδοση νοήματος στα σύμβολα της έκφρασης ή των εκφράσεων που χρησιμοποιούνται στην παράμετρο content του μηνύματος. Η παράμετρος ontology χρησιμοποιείται σε συνδυασμό με την παράμετρο language για να υποστηρίξει τη διερμηνεία της έκφρασης της παραμέτρου content από τον πράκτορα παραλήπτη του μηνύματος. Σε πολλές περιπτώσεις παραλείπεται, μιας και είναι ευρύτερα αντιληπτή από την κοινότητα των πρακτόρων που συμμετέχουν σε μια πράξη επικοινωνίας Έλεγχος του διαλόγου Η παράμετρος Protocol Παράμετρος protocol Περιγραφή Ορίζει το πρωτόκολλο αλληλεπίδρασης στο οποίο ο πράκτορας αποστολέας του μηνύματος, επιθυμεί να εμπλέξει τους παραλήπτες. Η συγκεκριμένη παράμετρος είναι προαιρετική, όμως ο προγραμματιστής οφείλει να τη χρησιμοποιεί για να αποφύγει λανθασμένες ερμηνείες των μηνυμάτων που θα ανταλλαχθούν κατά τη διάρκεια της επικοινωνίας. Επιπλέον, εξασφαλίζει ότι όλα τα μηνύματα με την ίδια παράμετρο protocol εντάσσονται σε ένα συγκεκριμένο διάλογο και επιπροσθέτως με τη χρήση των παραμέτρων conversation-id και reply-by που παρουσιάζονται παρακάτω, ενισχύει την ορθότητα της επικοινωνίας μεταξύ των πρακτόρων. Για παράδειγμα, κάθε μήνυμα το οποίο περιέχει μια τιμή στην παράμετρο protocol θεωρείται ότι συμμετέχει σε ένα συγκεκριμένο διάλογο και ακολουθεί τους παρακάτω κανόνες: Ο initiator της παραμέτρου protocol είναι υποχρεωμένος να αποδώσει μια τιμή στην παράμετρο conversation-id Όλες οι απαντήσεις στο μήνυμα, για το ίδιο πρωτόκολλο αλληλεπίδρασης, πρέπει να έχουν την ίδια τιμή στην παράμετρο conversation-id. Η τιμή της παραμέτρου reply-by πρέπει να ορίζει το μέγιστο χρονικό διάστημα μέσα στο οποίο ο πράκτορας-αποστολέας του μηνύματος επιθυμεί να λάβει το επόμενο μήνυμα (από τους πράκτορες παραλήπτες) μέσα στη ροή του πρωτοκόλλου Η παράμετρος Conversation Identifier Παράμετρος Περιγραφή conversation-id Μία έκφραση (ένα αναγνωριστικό διαλόγου) η οποία ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 41

42 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ χρησιμοποιείται για να χαρακτηρίζει όλες εκείνες τις πράξεις επικοινωνίας οι οποίες ενωμένες σχηματίζουν ένα διάλογο. Ουσιαστικά, ένας πράκτορας χρησιμοποιεί την παράμετρο conversation-id για να μπορεί να διαχειριστεί τις στρατηγικές επικοινωνίας του. Τυπικά, αυτό θα επιτρέψει στον πράκτορα να μπορεί να πραγματοποιεί διαφορετικούς διαλόγους με διαφορετικούς συνομιλητές, όπως επίσης και να διατηρεί ένα αρχείο «παρελθόντων» διαλόγων στους οποίους θα είναι σε θέση να ανατρέξει ανά πάσα στιγμή. Με βάση τα παραπάνω, γίνεται αντιληπτό ότι η τιμή της παραμέτρου conversation-id πρέπει να είναι κάθε φορά μοναδική και καθολικά ορισμένη ώστε να είναι οι συμμετέχοντες ικανοί να διακρίνουν τους διαφορετικούς διαλόγους στους οποίους συμμετέχουν Η παράμετρος Reply With Παράμετρος reply-with Περιγραφή Μια τυποποιημένη έκφραση την οποία θα χρησιμοποιήσει ο παραλήπτης ως αναγνωριστικό αυτού του μηνύματος. Η συγκεκριμένη παράμετρος σχεδιάστηκε ουσιαστικά για να λειτουργεί σα συνοδευτικό σε ένα «νήμα» κάποιου διαλόγου, σε περιπτώσεις όπου πολλαπλοί διάλογοι προκύπτουν στιγμιαία. Για παράδειγμα αν ο πράκτορας i στείλει στον j ένα μήνυμα το οποίο περιέχει: reply-with <expr> Τότε ο πράκτορας j θα απαντήσει με ένα μήνυμα το οποίο περιέχει: in-reply-to <expr> Η παράμετρος In Reply To Παράμετρος in-reply-to Περιγραφή Μία έκφραση η οποία αναφέρεται σε μια προηγούμενη πράξη, στην οποία το μήνυμα αυτό είναι απάντηση Βλέπε παράγραφο Η παράμετρος Reply By Παράμετρος reply-by Περιγραφή Μία έκφραση χρόνου ή ημερομηνίας η οποία ουσιαστικά ορίζει το χρονικό περιθώριο μέσα στο οποίο ο αποστολέας του μηνύματος επιθυμεί να λάβει απάντηση. Ο χρόνος εκφράζεται με βάση τον τρόπο που τον αντιλαμβάνεται ο αποστολέας (π.χ με βάση τη γλώσσα ή γενικότερα την πλατφόρμα που χρησιμοποιείται). 3.3 FIPA ΕΠΙΚΟΙΝΩΝΙΑ ΠΡΑΚΤΟΡΩΝ Στην προηγούμενη παράγραφο, έγινε η παρουσίαση των συστατικών στοιχείων προαιρετικών και υποχρεωτικών που χρησιμοποιούνται στη δομή των μηνυμάτων τα οποία ανταλλάσσουν πράκτορες κατά τη διάρκεια της επικοινωνίας τους σύμφωνα 42 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

43 ΚΕΦΑΛΑΙΟ 3: ΠΡΟΔΙΑΓΡΑΦΕΣ ΤΗΣ FIPA ΓΙΑ ΤΟΥΣ ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ με την προτυποποίηση της FIPA. Όπως αναφέρθηκε, το είδος του μηνύματος καθορίζεται από τη βασική παράμετρο performative ενώ οι υπόλοιπες παράμετροι χρησιμοποιούνται για την εδραίωση και υποστήριξη της επικοινωνίας. Στην παρούσα παράγραφο λοιπόν, θα γίνει μια απόπειρα παρουσίασης των βασικών τύπων μηνυμάτων με βάση το performative τους έτσι όπως έχουν διαχωριστεί από τη FIPA. Αυτοί οι τύποι μηνυμάτων ονομάζονται «πράξεις επικοινωνίας» (Communicative Acts) ενώ το σύνολό τους εντάσσεται στη «Βιβλιοθήκη Πράξεων Επικοινωνίας» της FIPA (FIPA Communicative Acts Library FIPA CAL) [16] και παρατίθενται με αλφαβητική σειρά και όχι απαραίτητα με τη σειρά που θα χρησιμοποιηθούν από πράκτορες κατά τη διάρκεια της μεταξύ τους επικοινωνίας Accept Proposal (Αποδοχή Πρότασης) Πρόκειται για την αποδοχή από ένα πράκτορα κάποιας πρότασης που έχει (ήδη λίγο πριν) αποσταλεί από άλλο πράκτορα και αφορά την εκτέλεση μιας δραστηριότητας. Περιεχόμενο μηνύματος Το βασικό συστατικό του περιεχομένου ενός μηνύματος αυτής της μορφής είναι μια έκφραση η οποία ικανοποιεί ή όχι τη συνθήκη σχετικά με την πρόταση που είχε γίνει λίγο πιο πριν τον άλλο πράκτορα. Επιπλέον περιέχει και μια πρόταση (proposition) στην οποία παρουσιάζονται οι συνθήκες της συμφωνίας. Περιγραφή Η παράμετρος που χρησιμοποιείται ως performative είναι η accept-proposal η οποία φανερώνει την αποδοχή κάποιας πρότασης η οποία έχει ήδη αποσταλεί (με κάποια πράξη τύπου propose). Ο πράκτορας που στέλνει την αποδοχή, ουσιαστικά ενημερώνει τον παραλήπτη ότι: Επιθυμεί σε κάποια στιγμή στο μέλλον ο πράκτορας που λαμβάνει αυτό το μήνυμα, να εκτελέσει την πράξη όταν και αν η προϋπόθεση που έχει θέσει, επαληθεύεται. Η πρόταση που παρατίθεται ως μέρος της αποδοχής ουσιαστικά δεικτοδοτεί τις προϋποθέσεις που ο πράκτορας «επισυνάπτει» στους όρους της συμφωνίας. Για παράδειγμα μια τυπική χρήση αυτού είναι η ολοκλήρωση των λεπτομερειών μιας συμφωνίας σε κάποιο πρωτόκολλο. Παρόλα αυτά, ένας πράκτορας μπορεί να επιθυμεί την εκτέλεση κάποιας πράξης, χωρίς απαραίτητα να θέτει προϋποθέσεις. Επίσημο Μοντέλο Call For Proposal (cfp) Πρόκειται για την πράξη με την οποία ένας πράκτορας ζητάει προσφορές για την εκτέλεση μιας συγκεκριμένης πράξης. Περιεχόμενο Μηνύματος ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 43

44 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Μια πλειάδα η οποία περιέχει μια έκφραση που περιγράφει την πράξη που πρέπει να εκτελεστεί, και επιπλέον τις προαπαιτούμενες τιμές κάποιας παραμέτρου για τις οποίες είναι επιθυμητή η εκτέλεση της πράξης αυτής. Περιγραφή Το cfp είναι μια πράξη γενικού σκοπού. Χρησιμοποιείται για την αρχικοποίηση μιας διαδικασίας διαπραγμάτευσης, μέσω μιας κλήσης για προσφορές/προτάσεις, σχετικές με την εκτέλεση μιας συγκεκριμένης πράξης (action). Το μήνυμα φέρει επίσης μια παράμετρο protocol στην οποία ορίζεται το πρωτόκολλο με το οποίο θεμελιώνεται η διαδικασία της επικοινωνίας. Στην πιο συνηθισμένη περίπτωση, ένας πράκτορας που απαντά σε μία πράξη cfp, πρέπει να απαντήσει με μία αντιπρόταση (proposition) στην οποία θα φαίνεται η τιμή της παραμέτρου (της αρχικής cfp πρότασης) για την οποία μπορεί να εκτελέσει την πράξη. Επίσης, το cfp μπορεί να χρησιμοποιηθεί και για μια απλή ανίχνευση της διαθεσιμότητας ενός πράκτορα να εκτελέσει μια πράξη. Επίσης, ο συγκεκριμένος ορισμός του cfp αφορά την απλή περίπτωση προτάσεων οι οποίες χαρακτηρίζονται από μια και μόνο παράμετρο (x) στην πρότασή τους. Άλλα σενάρια, θα μπορούσαν να χρησιμοποιούν περισσότερες παραμέτρους στην πρόταση cfp. Επίσημο Μοντέλο Failure Πρόκειται για την πράξη με την οποία ένας πράκτορας πληροφορεί έναν άλλο ότι επιχειρήθηκε μια πράξη και η απόπειρα απέτυχε. Περιεχόμενο Μηνύματος Μια πλειάδα η οποία αποτελείται από μια έκφραση πράξης και από μια πρόταση στην οποία δίδεται ο λόγος της αποτυχίας. Περιγραφή Το μήνυμα failure είναι ένας σύντομος τρόπος για να εκφραστεί το γεγονός ότι μια πράξη ενώ θεωρούνταν εφικτή από τον αποστολέα, τελικά δεν πραγματοποιήθηκε για κάποιο λόγο. Ο πράκτορας που λαμβάνει ένα μήνυμα failure καλείται να πιστέψει ότι: Η πράξη δεν έχει γίνει Η πράξη είναι (ή τουλάχιστον την ώρα που έγινε η απόπειρα ήταν) εφικτή Η αιτιολόγηση της αποτυχίας αναπαρίσταται από την πρόταση, το δεύτερο δηλαδή στοιχείο του περιεχομένου του μηνύματος. Μπορεί να είναι η σταθερά true. Συχνά συμβαίνει να ισχύει η περίπτωση που ο πράκτορας μπορεί να κάνει πολύ λίγα πράγματα για να ενισχύσει τις προσπάθειες νε πραγματοποιήσει την πράξη. 44 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

45 ΚΕΦΑΛΑΙΟ 3: ΠΡΟΔΙΑΓΡΑΦΕΣ ΤΗΣ FIPA ΓΙΑ ΤΟΥΣ ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ Επίσημο Μοντέλο Inform Ο αποστολέας πληροφορεί τον παραλήπτη ότι μια δοθείσα πρόταση είναι αληθής. Περιεχόμενο Μηνύματος Μια πρόταση Περιγραφή Το μήνυμα inform υποδεικνύει ότι ο πράκτορας αποστολέας του μηνύματος: Πιστεύει πως κάποια πρόταση είναι αληθής Έχει την πρόθεση να κάνει τον πράκτορα-παραλήπτη να φτάσει στην κατάσταση να πιστέψει ότι η πρόταση είναι αληθής και Δεν πιστεύει ήδη ότι ο παραλήπτης έχει οποιαδήποτε γνώση για την αλήθεια της πρότασης. Οι πρώτες δύο από τις ιδιότητες που ορίστηκαν παραπάνω υποδηλώνουν ότι ο πράκτορας αποστολέας του μηνύματος είναι ειλικρινής και ότι έχει δημιουργήσειαποκτήσει την πρόθεση ότι ο παραλήπτης πρέπει να ξέρει την πρόταση. Η τρίτη ιδιότητα μπορεί να ερμηνευθεί ως εξής: Αν ο πράκτορας γνωρίζει ήδη ότι ισχύει κάποια κατάσταση του περιβάλλοντος, τότε δε γίνεται με ορθολογικό τρόπο να υιοθετήσει την πρόθεση να εκφράσει αυτή την κατάσταση του κόσμου, δηλαδή να πληροφορήσει τον παραλήπτη με την πράξη inform. Σημειώνεται ότι η ιδιότητα αυτή δεν είναι τόσο ισχυρή όσο φαίνεται. Δεν υπάρχει η απαίτηση για τον αποστολέα να αποδείξει αν ο παραλήπτης γνωρίζει την πρόταση p. Συνεπώς, μόνο στην περίπτωση που ο αποστολέας για κάποιο λόγο είναι ενήμερος για την κατάσταση των «πιστεύω» (beliefs) του παραλήπτη και μόνο τότε δεν θα αποκτήσει την πρόθεση να ενημερώσει τον παραλήπτη για κάτι το οποίο εκείνος ήδη γνωρίζει. Από τη σκοπιά του παραλήπτη, η παραλαβή ενός μηνύματος inform τον εξουσιοδοτεί να πιστέψει ότι: Ο αποστολέας πιστεύει στην πρόταση που αποτελεί το περιεχόμενο του μηνύματος Ο αποστολέας θα ήθελε και ο παραλήπτης να πιστέψει σε αυτή την πρόταση επίσης. Τελικά το αν ο παραλήπτης πιστέψει ή όχι την πρόταση, αποτελεί συνάρτηση της εμπιστοσύνης του παραλήπτη σχετικά με την ειλικρίνεια και την αξιοπιστία του αποστολέα. Επίσημο Μοντέλο ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 45

46 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Propose Πρόκειται για την πράξη της αποστολής μιας πρότασης για την εκτέλεση συγκεκριμένης πράξης, δοθέντων συγκεκριμένων προδιαγραφών (preconditions). Περιεχόμενο Μηνύματος Μια πλειάδα που περιέχει την περιγραφή μιας πράξης που ο αποστολέας του μηνύματος προτίθεται να εκτελέσει, καθώς και μια πρόταση με τους όρους υπό τους οποίους θα εκτελέσει την πράξη αυτή. Περιγραφή Πρόκειται για μια πράξη γενικού σκοπού με την οποία πραγματοποιείται μια πρόταση ή μια απάντηση σε μια πρόταση που έχει ήδη γίνει κατά τη διάρκεια μιας διαδικασίας διαπραγμάτευσης. Το πρωτόκολλο της διαπραγμάτευσης είναι γνωστό είτε από συμφωνία που έχει προηγηθεί, είτε δηλώνεται ρητά στην παράμετρο protocol του μηνύματος. Ο αποστολέας ενός μηνύματος propose πληροφορεί τον παραλήπτη ότι αποδέχεται την πρόθεση (του παραλήπτη) να πραγματοποιήσει την πράξη με τον όρο να ικανοποιηθεί η προϋπόθεση που θέτει. Μια τυπική χρήση της προϋπόθεσης που περιέχεται στο περιεχόμενο του propose μηνύματος, είναι ο καθορισμός της τιμής (στοιχήματος) σε πρωτόκολλα π.χ δημοπρασίας ή διαπραγμάτευσης. Επίσημο Μοντέλο Refuse Πρόκειται για την πράξη της άρνησης να εκτελεστεί μια συγκεκριμένη πράξη, δίνοντας μια εξήγηση για το λόγο της άρνησης. Περιεχόμενο Μηνύματος Μια πλειάδα, αποτελούμενη από μια έκφραση άρνησης μιας πράξης, καθώς και από μία πρόταση στην οποία δίδεται ο λόγος της άρνησης. Περιγραφή Η πράξη refuse λαμβάνει χώρα όταν ο πράκτορας δε μπορεί να φέρει εις πέρας όλες τις προαπαιτούμενες συνθήκες άμεσες ή έμμεσες - για την εκτέλεση κάποιας πράξης. Για παράδειγμα ο πράκτορας μπορεί να μην αντιλαμβάνεται τι είναι αυτό για το οποίο ερωτάται ή να του έχει ζητηθεί να εκτελέσει μια πράξη για την οποία έχει ανεπαρκή δικαιώματα. Ο πράκτορας που λαμβάνει ένα μήνυμα refuse επιβάλλεται να πιστέψει ότι: Η πράξη δεν έχει γίνει Η πράξη δεν είναι εφικτό να γίνει (από την πλευρά αυτού που έστειλε το refuse) Ο λόγος για την άρνηση φαίνεται σε μια πρόταση η οποία αποτελεί το δεύτερο τμήμα του content του refuse μηνύματος (π.χ θα μπορούσε να είναι μια σταθερά: true). Δεν υπάρχει καμία εγγύηση ότι ο λόγος άρνησης πρέπει να αναπαρασταθεί με τρόπο που να γίνει κατανοητός από τον παραλήπτη του 46 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

47 ΚΕΦΑΛΑΙΟ 3: ΠΡΟΔΙΑΓΡΑΦΕΣ ΤΗΣ FIPA ΓΙΑ ΤΟΥΣ ΕΥΦΥΕΙΣ ΠΡΑΚΤΟΡΕΣ μηνύματος. Μολαταύτα, ένας συνεργατικός (cooperative) πράκτορας θα προσπαθήσει να εξηγήσει την άρνηση με δομημένο τρόπο. Επίσημο Μοντέλο Reject Proposal Πρόκειται για την πράξη με την οποία απορρίπτεται μια πρόταση για την εκτέλεση κάποιας πράξης κατά τη διάρκεια μιας διαπραγμάτευσης. Περιεχόμενο Μηνύματος Μια πλειάδα αποτελούμενη από μια περιγραφή πράξης και από μια πρόταση στην οποία με κάποιο τρόπο φαίνεται η αρχική πρόταση η οποία απορρίπτεται. Επιπλέον υπάρχει και μία ακόμη πρόταση η οποία δηλώνει το λόγο της απόρριψης. Περιγραφή Το reject-proposal αποτελεί μια γενικού σκοπού απόρριψη σε μια πρόταση (propose) που έχει σταλεί προηγουμένως. Ο πράκτορας που στέλνει το μήνυμα της απόρριψης, πληροφορεί τον παραλήπτη ότι δεν έχει την πρόθεση αυτός (ο παραλήπτης) να εκτελέσει τη συγκεκριμένη πράξη υπό τις προϋποθέσεις που έχει ορίσει (ο παραλήπτης στην προηγούμενη φάση είχε αποστείλει ένα μήνυμα propose στο οποίο περιέκλειε κάποιες προϋποθέσεις). Η επιπλέον πρόταση δηλώνει το λόγο της απόρριψης. Επειδή σε γενικές γραμμές είναι δύσκολο να συσχετιστούν το αίτιο με το αποτέλεσμα, το επίσημο μοντέλο που ακολουθεί, στην ουσία επισημαίνει ότι απλώς την πρόταση με το λόγο της απόρριψης απλώς ο αποστολέας τη θεωρεί αληθή τη στιγμή του μηνύματος reject-proposal. Συντακτικά, αν και δεν ορίζεται από την επίσημη σημασιολογία, ο λόγος της απόρριψης θεωρείται σαν εξήγηση της αιτιολόγησης. Επίσημο Μοντέλο ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 47

48

49 ΚΕΦΑΛΑΙΟ 4: Η ΓΛΩΣΣΑ ΚΑΝΟΝΩΝ: REACTION RULEML Κ Ε Φ Α Λ Α Ι Ο 4 : Η ΓΛ Ω Σ Σ Α Κ Α Ν Ο Ν Ω Ν : R E A C T I O N R U L E ML

50

51 Η ΓΛΩΣΣΑ ΚΑΝΟΝΩΝ: REACTION RULEML Η REACTION RULEML είναι μια γενική, πρακτική, συμπαγής και φιλική προς το χρήστη XML-serialized γλώσσα κανόνων. Επιπλέον παρέχει τη βάση για την ανταλλαγή αντιδραστικών κανόνων. Στην ουσία εμπλέκει/χρησιμοποιεί διαφορετικά είδη κανόνων, όπως κανόνες δράσης, αντίδρασης, ειδοποιήσεις σύνθετων γεγονότων, μηνύματα. Στην πράξη η προσέγγιση καλύπτει/ενσωματώνει διαφορετικά είδη αντιδραστικών κανόνων από διαφορετικά πεδία. Για παράδειγμα υπάρχουν δυναμικοί (active) κανόνες, συστήματα μηνυμάτων (messaging), ή κανόνες τύπου reasoning. 4.1 ΣΚΟΠΟΣ ΤΗΣ REACTION RULEML Η REACTION RULEML ακολουθεί τις βασικές αρχές σχεδίασης της RuleML και καθορίζει νέες δομές ενσωματωμένες σε ξεχωριστά modules τα οποία ουσιαστικά έχουν προστεθεί στην οικογένεια της RuleML σαν επιπρόσθετα επίπεδα του επιπέδου hornlog της RuleML. Η έκδοση 2.0 με την οποία θα ασχοληθούμε στο παρόν, αποτελεί μια γενίκευση της σύνταξης των κανόνων σε μορφοποίηση κανόνων πυρήνα η οποία μπορεί να εξειδικευθεί σε διαφορετικές οικογένειες γλωσσών σε διαφορετικά είδη κανόνων: Κανόνες εξαγωγής συμπερασμάτων (derivation rules) Κανόνες παραγωγής (production rules) Αντιδραστικούς κανόνες (reaction rules) Μεικτά formats: o Σειριακοί κανόνες παραγωγής (serial derivation rules) οι οποίοι με τη σειρά τους περιέχουν τοπικά εμφωλευμένους αντιδραστικούς κανόνες και κατασκευές event/action). Εικόνα 5: Τα επίπεδα της Reaction RuleML Τα επίπεδα δεν έχουν σχεδιαστεί με γνώμονα την πολυπλοκότητα, απλώς προσδίδουν διαφορετική εκφραστικότητα στον πυρήνα της Reaction RuleML για την αναπαράσταση της «συμπεριφορικής» δράσης-αντίδρασης και της KR Event/Action λογικής.

52 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Η γλώσσα πληροί τα τυπικά κριτήρια ενός καλού σχεδιασμού ήτοι: Μινιμαλισμός. Με το μινιμαλισμό εννοούμε ότι η Reaction RuleML παρέχει μόνο ένα μικρό αριθμό από απαραίτητες γλωσσικές κατασκευές που προστίθενται στις ήδη υπάρχουσες δομές της RuleML, για παράδειγμα το ίδιο νόημα δε μπορεί να εκφραστεί από διαφορετικές γλωσσικές κατασκευές. Συμμετρία. Η συμμετρία εκπληρώνεται από την ιδέα ότι οι ίδιες γλωσσικές κατασκευές πάντα εκφράζουν κοινή σημασιολογία ανεξάρτητα από τα συμφραζόμενα εντός των οποίων εμπλέκονται. Ορθογωνιότητα. Η ορθογωνιότητα επιτρέπει οποιονδήποτε συνδυασμό γλωσσικών κατασκευών έχει νόημα, να είναι εφαρμόσιμος. Επιπροσθέτως η ReactionRuleML ικανοποιεί τυπικά κριτήρια επαρκούς αναπαράστασης όπως για παράδειγμα της επιστημολογικής επάρκειας Κανόνες Εξαγωγής Συμπερασμάτων Σύμφωνα με τους [17]: Οι κανόνες εξαγωγής συμπερασμάτων είναι ειδικής μορφής αντιδραστικοί κανόνες, των οποίων ο ρόλος είναι να εξάγουν κάποιο συμπέρασμα όταν πληρούνται κάποιες προϋποθέσεις. Συμβιβάζουν μία ή περισσότερες συνθήκες αλλά εξάγουν μόνο ένα συμπέρασμα. Είναι δηλαδή δηλώσεις γνώσης, η οποία προκύπτει από άλλη γνώση μέσω ενός συμπερασμού ή ενός μαθηματικού υπολογισμού. Επιτρέπουν με λίγα λόγια την εξαγωγή γνώσης από ήδη αποθηκευμένη γνώση κατ απαίτηση (on demand). Μπορούν να εφαρμόζονται με κατεύθυνση προς τα εμπρός (forward) ή προς τα πίσω (backward) και τελικά σύμφωνα με τους [8] η απόδειξη ενός στόχου, ανάγεται στην απόδειξη των επιμέρους στόχων στους οποίους αυτός μπορεί να επιμεριστεί. Ένα παράδειγμα κανόνα εξαγωγής συμπερασμάτων είναι ο ακόλουθος ορισμός μιας «κατηγορίας πελάτη» σε μια ασφαλιστική εταιρία: «Οι καλύτεροι πελάτες μας είναι αυτοί που έχουν πάνω από μια ασφάλειες και ξοδεύουν πάνω από 1000$ το χρόνο σε πληρωμές» Κανόνες Παραγωγής. Ένας κανόνας παραγωγής ορίζει τη λογική εκτέλεσης μιας ή περισσότερων ενεργειών όταν οι συνθήκες του κανόνα αυτού ικανοποιούνται. Το σύστημα παραγωγής των κανόνων ορίζει ότι η λειτουργική σημασιολογία τους έχει φορά προς τα εμπρός (forward-directed). Επιπροσθέτως, όταν στη μνήμη εργασίας (Working Memory) λαμβάνουν χώρα ενέργειες ανανέωσης (Update Actions) δηλαδή <Assert> ή <Retract> θεωρείται ότι αυτές οι ενέργειες, εμμέσως, οδηγούν σε περαιτέρω ενέργειες ανανέωσης και τελικά είναι ικανές να «πυροδοτήσουν» μια ακολουθία νέων κανόνων παραγωγής τύπου: if Condition do Action. Οι κανόνες παραγωγής έγιναν ιδιαίτερα δημοφιλείς τη δεκαετία του 80 σε διαφορετικούς τομείς, όπως για παράδειγμα στην αντιμετώπιση προβλημάτων στα δίκτυα τηλεπικοινωνιών ή σε συστήματα ρύθμισης υπολογιστών. Ακόμη υπάρχουν αρκετές υλοποιήσεις στο χώρο των επαγωγικών βάσεων δεδομένων (deductive 6 «Μία αναπαράσταση καλείται επιστημολογικά επαρκής για έναν άνθρωπο ή μια μηχανή όταν μπορεί να χρησιμοποιηθεί πρακτικά για να εκφράσει την αντίληψη που ο άνθρωπος ή η μηχανή έχει για τον κόσμο». [31] 52 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

53 ΚΕΦΑΛΑΙΟ 4: Η ΓΛΩΣΣΑ ΚΑΝΟΝΩΝ: REACTION RULEML databases) ενώ χρησιμοποιούνται σε πολύ γνωστές μηχανές reasoning όπως το jrules system ή σε λύσεις ανοιχτού κώδικα όπως τα OPS5, JESS και JESS Αντιδραστικοί κανόνες. Σε μια προσπάθεια εμβάθυνσης στην ανάγκη ύπαρξης γλωσσών κανόνων στα σημερινά κατανεμημένα συστήματα και στα δυναμικά διαδικτυακά περιβάλλοντα, γίνεται αντιληπτό πως σημαντικό ρόλο παίζουν οι αντιδραστικές λειτουργίες που οδηγούνται από τα γεγονότα (event-driven reactive functionalities). Μια από τις προσεγγίσεις που υιοθετήθηκαν για τον καθορισμό και τον προγραμματισμό τέτοιων συστημάτων, είναι η χρήση αντιδραστικών κανόνων οι οποίοι δίνουν τη δυνατότητα αιτιολόγησης γεγονότων, πράξεων και των αποτελεσμάτων τους. Επίσης επιτρέπουν την ανίχνευση γεγονότων και την αυτόματη ανταπόκριση σε αυτά. Εφαρμογές οδηγούμενες από τα γεγονότα (event-driven) βασισμένες σε αντιδραστικούς κανόνες και κυρίως κανόνες ECA μελετώνται από τη δεκαετία του Προερχόμενοι από τις πρώτες μέρες των γλωσσών προγραμματισμού όπου γεγονότα συστήματος χρησιμοποιούνταν για διακοπές και για χειρισμό εξαιρέσεων, κανόνες οδηγούμενοι από γεγονότα χρησιμοποιήθηκαν σε σημαντικές περιοχές της επιστήμης της πληροφορικής, όπως σε δυναμικές βάσεις δεδομένων, σε εφαρμογές πραγματικού χρόνου, σε εργαλεία διαχείρισης συστημάτων και δικτύων. Προσφάτως, η κοινότητα του διαδικτύου έχει προβάλει μια ισχυρή απαίτηση για αντιδραστικές λειτουργικότητες, όπου πηγές δεδομένων εμπλουτίζονται με αντιδραστικό περιεχόμενο για να γίνουν δυναμικές και να επιτρέπουν δυναμικές συμπεριφορές (σε αντίθεση με το συμβατικό, παθητικό ιστό όπου όλα εξαρτώνται από την ερώτηση του χρήστη query driven). Σύμφωνα με τους [18], ένας αντιδραστικός κανόνας θα μπορούσε να οριστεί ως εξής: «Ένας αντιδραστικός κανόνας αποτελείται από τμήματα για επεξεργασία γεγονότων/καταστάσεων (ανίχνευση, υπολογισμός), για επιβεβαίωση καταστάσεων, για επίκληση δράσεων, και για επιβεβαίωση μετά-συνθηκών ιδίως όπου τα τμήματα της συνθήκης ή της μετά συνθήκης είναι προαιρετικά. Το τμήμα γεγονότων/καταστάσεων μπορεί επίσης να εξειδικεύεται στην ανίχνευση μεταβαλλόμενων συνθηκών, όπως σε ένα κανόνα παραγωγής». Ο αντιδραστικός κανόνας εφαρμόζεται με στόχο να παρατηρεί/ελέγχει γεγονότα/συνθήκες και να εκτελεί μια πράξη εάν και όταν όλα τα γεγονότα/συνθήκες έχουν γίνει αντιληπτά/εκπληρωθεί. Συνεπώς ενεργοποιείται όταν ανιχνεύεται ή υπολογίζεται ένα σύνθετο γεγονός (π.χ. ένας χρονοδιακόπτης ο οποίος ενεργοποιεί τον κανόνα) και όταν μεταβάλλεται μια κατάσταση (όπως π.χ. σε κανόνες παραγωγής όπου στη μνήμη προστίθεται μια νέα συνθήκη γεγονός το οποίο οδηγεί σε μια νέα κατάσταση η οποία ενεργοποιεί τον κανόνα) και εκτελείται όταν όλες οι συνθήκες του κανόνα μπορούν να επιβεβαιωθούν ενώ ανακαλείται αν κάποια μετάσυνθήκη (μετά την εκτέλεση της πράξης) δε μπορεί να επιβεβαιωθεί. Τυπικά ένας αντιδραστικός κανόνας μπορεί να έχει ένα τμήμα δράσης, όμως είναι πιθανή και η ύπαρξη ειδικών μορφών του κανόνα όπως αντιδραστικοί κανόνες για μηνύματα οι οποίοι λαμβάνουν μηνύματα γεγονότων. Γίνεται λοιπόν αντιληπτό ότι ένας αντιδραστικός κανόνας ορίζει τις συνθήκες υπό τις οποίες πρέπει να εκτελεστεί μια πράξη. Στην ουσία καθορίζει τη συμπεριφορά ενός συστήματος (ή πράκτορα) ως απόκριση στα ερεθίσματα που δέχεται από το περιβάλλον του τα οποία μπορεί να είναι απλά γεγονότα ή και σύνθετα γεγονότα επικοινωνίας δημιουργημένα από πράξεις επικοινωνίας άλλων πρακτόρων ή ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 53

54 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ συστημάτων. Ένα παράδειγμα αντιδραστικού κανόνα σε μια εταιρία ενοικίασης αυτοκινήτων είναι: «όταν ένας πελάτης ζητά ένα αυτοκίνητο, το γραφείο ελέγχει και πιστοποιεί ότι ο πελάτης δε βρίσκεται σε μαύρη λίστα». Σε γενικές γραμμές οι αντιδραστικοί κανόνες είναι της μορφής Event Condition Action (ECA) ενώ σύμφωνα με την ανάλυση που ακολουθεί παρακάτω, αντιδραστικοί κανόνες της γλώσσας Reaction RuleML μπορεί να έχουν διάφορες μορφές ανάλογα με την προσθήκη ή απουσία κάποιων όρων. Επιπλέον, η εξειδίκευση της Reaction RuleML σε αντιδραστικούς κανόνες παρέχει πρόσφορο έδαφος για την ιδέα της χρήσης τέτοιων κανόνων από πράκτορες του ΣΙ οι οποίοι διαπραγματεύονται πάνω σε πρότυπα συμβολαίων συναλλαγής ορισμένα από τον οργανισμό FIPA. 4.2 Η ΔΟΜΗ ΕΝΟΣ ΕΓΓΡΑΦΟΥ REACTION RULEML Υποχρεωτικά Στοιχεία Το βασικό στοιχείο ενός εγγράφου Reaction RuleML είναι η δομή: <RuleML>. Ένα στιγμιότυπο φαίνεται παρακάτω: <RuleML xmlns=" xmlns:xsi=" xsi:schemalocation=" <Assert> Προσθήκη μιας βάσης κανόνων (rule base) στη βάση γνώσης (knowledge base) </Assert> <Query> Ερώτημα στη βάση γνώσης </Query> <Retract> Αφαίρεση μιας βάσης κανόνων (rule base) από τη βάση γνώσης (knowledge base)</retract> <Assert> Προσθήκη βάσης κανόνων (rule base) </Assert> </RuleML> Η τοποθεσία του XML Schema καθορίζει το ποιό επίπεδο της RuleML ή Reaction RuleML χρησιμοποιείται. Στο παραπάνω παράδειγμα γίνεται χρήση του xsd αρχείου που ορίζει το επίπεδο των κανόνων εξαγωγής συμπερασμάτων (Derivation Rules Layer) το οποίο βρίσκεται στη θέση: Τα sequential performatives δείχνουν τις ενέργειες που μπορούν να πραγματοποιηθούν στα περιεχόμενα που περικλείουν, με τη χρήση της Reaction RuleML. Για παράδειγμα μπορεί κανείς να πραγματοποιήσει στα περιεχόμενα: Προσθήκη <Assert> Διαγραφή <Retract> Ερώτημα <Query> Τα περιεχόμενα στα οποία πραγματοποιούνται οι παραπάνω ενέργειες, θεωρείται ότι δημιουργούν μια Βάση κανόνων (Rule Base) η οποία αποτελείται από ένα σετ κανόνων (<Rule>) και γεγονότων (). 54 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

55 ΚΕΦΑΛΑΙΟ 4: Η ΓΛΩΣΣΑ ΚΑΝΟΝΩΝ: REACTION RULEML Παράδειγμα Το παρακάτω παράδειγμα προσθέτει (<Assert>) ένα γεγονός () σχετικά με το πρόσωπο (person) Andrian Paschke κρατώντας το κλειδί key123 σε κάποια Βάση Δεδομένων (Knowledge Base) και στη συνέχεια απευθύνει ερώτημα στη Βάση αυτή για όλα τα πρόσωπα τα οποία κρατάνε το κλειδί key123. <RuleML xmlns=" xmlns:xsi=" xmlns:dc=" xsi:schemalocation=" <label> <Plex> <Expr><Fun uri="dc:title"><ind>reaction RuleML Example1</Ind></Expr> <Expr><Fun uri="dc:author"><ind>adrian Paschke</Ind></Expr> <Expr><Fun uri="dc:date"><ind> </ind></expr> </Plex> </label> </oid></ind>example1</ind></oid> <Assert> <Rulebase> <Rel>keep</Rel> <Expr> <Fun>person</Fun> <Ind>Adrian</Ind> <Ind>Paschke</Ind> </Expr> <Ind>key123</Ind> </Rulebase> </Assert> <Query> <Rel>keep</Rel> <Var>Person</Var> <Ind>key123</Ind> </Query> Δομή Κανόνα στη Reaction RuleML 0.2 Ένας κανόνας στην Reaction RuleML 0.2 δημιουργείται με τη δομή: <Rule>. Η δομή αυτή δημιουργεί μια γενική μορφή κανόνα η οποία ανάλογα με την επιθυμία του developer μπορεί να εξειδικευθεί σε διαφορετικούς τύπους κανόνων όπως: Derivation rules (κανόνες εξαγωγής συμπερασμάτων) Production rules (κανόνες παραγωγής) Reaction rules (αντιδραστικοί κανόνες) Messaging rules (κανόνες μηνυμάτων). Κάθε κανόνας μπορεί να χαρακτηρίζεται από δύο προαιρετικά attributes, ενώ μπορεί να διαθέτει μια σειρά από προαιρετικές ετικέτες. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 55

56 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Τα Attributes ενός Κανόνα της Reaction : Τρία διαφορετικά στυλ εκτέλεσης του κανόνα, που ορίζονται από το προαιρετικό αυτό attribute. Η εξ ορισμού τιμή είναι reasoning : Active: Δυναμικά (actively) καταγράφει/εντοπίζει συμβάντα τύπου ECA(τα οποία πιθανώς να «χρονίζονται» από μια συνάρτηση χρόνου) ή μεταβολές στις συνθήκες (conditions) των κανόνων παραγωγής. Messaging: περιμένει για εισερχόμενα μηνύματα σύνθετων γεγονότων (inbound) και στέλνει μηνύματα (outbound) σαν actions. Reasoning: Λογική αιτιολόγηση όπως π.χ. derivation rules στον λογικό προγραμματισμό καθώς και KR φορμαλισμούς όπως event/action/transition : Εκτίμηση της σημασιολογίας ενός κανόνα, weak ή strong : χρησιμοποιείται για να χειριστεί τον «κύκλο ζωής αιτιολόγησης» (justification life cycle) των εσωτερικών εμφωλευμένων κανόνων κατά τη διαδικασία παραγωγής/εκτέλεσης (derivation/execution) των εξωτερικών κανόνων: Weak (αδύναμη) εκτίμηση της σημασιολογίας: Η διαδικασία εκτέλεσης ενός εξωτερικού κανόνα (outer rule) συνεχίζεται σε περίπτωση αποτυχίας ενός εσωτερικού κανόνα. Strong (ισχυρή) εκτίμηση: Στην περίπτωση που ένας εσωτερικός κανόνας αποτύχει, τότε η διαδικασία εκτέλεσης του εξωτερικού κανόνα αποτυγχάνει και πιθανώς να οδηγήσει σε backtracking. Δηλαδή ένας κανόνας μπορεί να εφαρμοστεί καθολικά αλλά και τοπικά, εμφωλευμένος μέσα σε άλλους κανόνες Προαιρετικές Ετικέτες Μετά-Δεδομένων ενός Κανόνα της Reaction RuleML 0.2 <label> : Η ετικέτα μετα-δεδομένων label μπορεί να χρησιμοποιηθεί για να ορίσει επιπρόσθετα μετα-δεδομένα σχετικά με τον κανόνα, π.χ ένα όνομα για τον κανόνα ορισμένο από το χρήστη ή Dublin Core annotations όπως για παράδειγμα το dc_data ή το dc_author. <scope> : Η ετικέτα scope ορίζει τον τρόπο με τον οποίο μπορεί να γίνει θέαση της βάσης των κανόνων (rule base). Για παράδειγμα μπορεί να δημιουργήσει ένα τρόπο θέασης χρησιμοποιώντας εκφράσεις από ερωτήματα σε κάποιο ιδιαίτερα «κλειστό» (και πιθανώς κατανεμημένο) τμήμα μιας modularized KB. <qualification> : Η ετικέτα qualification ορίζει ένα προαιρετικό σύνολο από αξιολογήσεις κανόνων, όπως τιμές εγκυρότητας, ασάφειας ή προτεραιότητας. Επιπροσθέτως πιο συγκεκριμένες αξιολογήσεις κανόνων είναι πιο ισχυρές από τις γενικές αξιολογήσεις που εξ ορισμού φέρουν οι κανόνες. <oid> : Η ετικέτα object identifier (oid) δηλώνει την οντότητα (ταυτότητα / αναγνωριστικό) ενός αντικειμένου. Το oid μπορεί να χρησιμοποιηθεί για να δημιουργηθούν σύνδεσμοι ή δεικτοδοτήσεις (link/point) προς το αντικείμενο στα πλαίσια της αναπαράστασης της γνώσης. 56 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

57 ΚΕΦΑΛΑΙΟ 4: Η ΓΛΩΣΣΑ ΚΑΝΟΝΩΝ: REACTION RULEML Σύνταξη Κανόνων στη Reaction RuleML 0.2 Το πλήρες συντακτικό ενός κανόνα στη Reaction RuleML 0.2 έχει την παρακάτω μορφή. <Rule style="active" evaluation="strong"> <label> <!-- optional meta data --> </label> <scope> <!-- optional general scope of rule --> </scope> <qualification> <!-- optinal qualifications --> </qualification> <oid> <!-- optinal object identifier --> </oid> <on> <!-- event --> </on> <if> <!-- condition --> </if> <then> <!-- conclusion --> </then> <do> <!-- action --> </do> <after> <!-- postcondition --> </after> <else> <!-- else conclusion --> </else> <elsedo> <!-- else/alternative action --> </elsedo> <elseafter> <!-- else postcondition --> </elseafter> </Rule> Ανάλογα με το ποια από τα παραπάνω μέρη θα χρησιμοποιηθούν, ένας κανόνας μπορεί να είναι : Κανόνας Εξαγωγής Συμπερασμάτων: derivation rule (if-then or if-then-else; reasoning style), trigger rule (on-do; active style), Κανόνας Παραγωγής: production rule (if-do; active style), Κανόνας Γεγονός Συνθήκη Δράση: ECA (Event-Condition-Action) rule (on-if-do; active style) Υπάρχουν και πιο ειδικές περιπτώσεις όπως: Κανόνας Γεγονός Συνθήκη Δράση με μια Μετα-Συνθήκη: ECA rule with a Post condition (on-if-do-after; active style) Μεικτοί τύποι κανόνων όπως: Κανόνες Εξαγωγής Συμπερασμάτων (derivation rules) με εναλλακτικά actions (if-then-else Do; reasoning style), για παράδειγμα για την ενεργοποίηση μιας update action (add/remove from KB) ή την αποστολή ενός event message (e.g. σε κάποιο log system) στην περίπτωση που ένα ερώτημα στον if-then Κανόνα Εξαγωγής Συμπερασμάτων, αποτυγχάνει. Επιπλέον κρίνεται σκόπιμο να σημειωθεί ότι επιτρέπεται η εφαρμογή σύνθετων αλγεβρικών δομών μέσα στα μέρη των κανόνων για τον ορισμό σύνθετων γεγονότων και ενεργειών. Τέτοιες αλγεβρικές δομές μπορεί να είναι οι: <Sequence>, <Disjunction>, <Conjunction>, <Xor>, <Concurrent>, <Not>, <Any>, <Aperiodic>, <Periodic>, <Succession>, <Choice>, <Flow>, <Loop>. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 57

58 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Μηνύματα στη Reaction RuleML 0.2 Η Reaction RuleML 0.2 υποστηρίζει την ανταλλαγή πληροφοριών (για παράδειγμα ερωτήσεις και απαντήσεις) μέσω μηνυμάτων. Για το σκοπό αυτό χρησιμοποιείται το δομικό στοιχείο <Message> το οποίο σύμφωνα με τους [19] έχει την παρακάτω δομή: <Message mode="outbound" directive="acl:inform"> <oid> <!-- conversation ID--> </oid> <protocol> <!-- transport protocol --> </protocol> <sender> <!-- sender agent/service --> </sender> <content> <!-- message payload --> </content> </Message> Ακολουθεί ανάλυση των δομικών χαρακτηριστικών του μηνύματος Οι Ιδιότητες Μηνύματος της Reaction RuleML Τα attributes που υποστηρίζει το <Message> tag είναι τα = inbound outbound: καθορίζει το είδος του μηνύματος εισερχόμενο ή καθορίζει τα συμφραζόμενα του μηνύματος. Αν για παράδειγμα το μήνυμα αποτελεί μια call for proposals (cfp) ενέργεια της FIPA τότε θα έχει τιμή ACL:cpf Τα δομικά στοιχεία Μηνύματος της Reaction RuleML 0.2 Τα δομικά στοιχεία ενός μηνύματος είναι: < oid > object identifier : Η ετικέτα χρησιμοποιείται για να χαρακτηρίζει μοναδικά τους διαλόγους. Αυτό επιτρέπει για παράδειγμα τη συσχέτιση μηνυμάτων με προηγούμενους διαλόγους κατά την υλοποίηση πολύπλοκων πρωτοκόλλων επικοινωνίας. < protocol >: Χρησιμοποιείται για να ορίζεται το πρωτόκολλο μεταφοράς των μηνυμάτων. Παραδείγματα θα μπορούσαν να είναι τα: HTTP, JMS, SOAP, JADE, Enterprise Service Bus (ESB) κλπ. < sender >< receiver >: Ο αποστολέας/παραλήπτης πράκτορας ή υπηρεσία του εκάστοτε μηνύματος. < content >: Το βασικό περιεχόμενο του μηνύματος το οποίο φέρει κάποιο δομικό στοιχείο της RuleML / Reaction RuleML: Ένα κανόνα, ένα ερώτημα μια απάντηση, ένα σύνολο κανόνων κλπ. Το περιεχόμενο του μηνύματος, σύμφωνα με τους [20], μπορεί να ακολουθεί είτε κάποιο απλό πρότυπο επικοινωνίας τύπου: ερώτημα-απάντηση, είτε σύνθετα πρωτόκολλα διαπραγμάτευσης όπου ανταλλάσσονται πλήρη σετ κανόνων, σύνθετα γεγονότα ή βάσεις γεγονότων (όλα δομημένα σε RuleML/Reaction RuleML) Σύνταξη Μηνύματος της Reaction RuleML 0.2 Το συντακτικό ενός μηνύματος της Reaction RuleML ορίζεται ως εξής: Message Constructs (message_module.xsd) 58 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

59 ΚΕΦΑΛΑΙΟ 4: Η ΓΛΩΣΣΑ ΚΑΝΟΝΩΝ: REACTION RULEML Message: label?, scope?, quantification?, (oid Ind Var Expr), (protocol Ind Var Expr), (sender receiver Ind Var Expr), (content Atom Ind Var Expr Plex Naf Neg Rulebase And Or Entails Exists Equal) protocol: (Ind Var Expr) sender: (Ind Var Expr) receiver: (Ind Var Expr) content: (Atom Ind Var Expr Plex Naf Neg Rulebase And Or Entails Exists Equal) Attributes: possible values: inbound outbound; required attribute possible values: performatives, e.g. ACL:inform; required attribute Το Μετά-μοντέλο της Reaction RuleML 0.2 Εικόνα 6: Κανόνας Reaction RuleML ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 59

60 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Εικόνα 7: Reaction RuleML Atom 4.3 ΤΟ ΕΠΙΠΕΔΟ ΕΞΑΓΩΓΗΣ ΣΥΜΠΕΡΑΣΜΑΤΩΝ ΤΗΣ REACTION RULEML 0.2 Το επίπεδο Derivation RuleML της Reaction RuleML 0.2 ( ), επεκτείνει και γενικεύει το επίπεδο της λογικής Horn ( Ορίζει δε, το συντακτικό και τη σημασιολογία για τους κανόνες εξαγωγής συμπερασμάτων (ifthen-else) το οποίο μπορεί να αναπτυχθεί με προς τα εμπρός ή προς τα πίσω reasoning style. Εικόνα 8: Derivation RuleML: Το συντακτικό και τα semantics για Derivation Rules. Σε γενικές γραμμές μπορεί να διατυπωθεί ότι: Ένας κανόνας εξαγωγής συμπερασμάτων στην Reaction RuleML 0.2 είναι του execution style: reasoning, το οποίο είναι η εξ ορισμού τιμή attribute και γίνεται να παραλειφθεί. Ένας κανόνας εξαγωγής συμπερασμάτων αποτελείται από ένα if-condition, ένα then-conclusion και πιθανώς από ένα επιπρόσθετο else-conclusion (if-thenelse). <Rule> <label> <!-- optional meta data --> </label> <scope> <!-- optional general scope of rule --> </scope> <qualification> <!-- optional qualifications --> </qualification> <oid> <!-- optional object identifier --> </oid> <if> <!-- condition --> </if> <then> <!-- conclusion --> </then> <else> <! optional else conclusion --> </else> </Rule> 60 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

61 ΚΕΦΑΛΑΙΟ 4: Η ΓΛΩΣΣΑ ΚΑΝΟΝΩΝ: REACTION RULEML Εικόνα 9: Το Μετά-μοντέλο ενός κανόνα εξαγωγής συμπερασμάτων Για παράδειγμα ένας κανόνας εξαγωγής συμπερασμάτων : «Αν ένας πελάτης είναι τακτικός πελάτης, τότε θα λαμβάνει 10% έκπτωση» μπορεί να γραφεί ως εξής: <Rule> <if> <Rel>premium</Rel> <Var>Customer</Var> </if> <then> <Rel>discount</Rel> <Var>Customer</Var> <Ind type="math:percentage">10</ind> </then> </Rule> Το παραπάνω παράδειγμα επίσης δείχνει ότι για να οριστεί κάποιος εξειδικευμένος τύπος, χρησιμοποιούνται «εξωτερικά» συστήματα τύπων. Εδώ η ατομική σταθερά «10» είναι του τύπου math:percentage, όπου math είναι το Prefix που έχει οριστεί στην RuleML και το Percentage είναι ο τύπος ο οποίος είναι ένα class/concept ορισμένο στο εξωτερικό σύστημα τύπων. Τέτοια εξωτερικά συστήματα τύπων μπορεί να είναι many-sorted, order-sorted και polymorphic Βασικές Κατασκευές του Επιπέδου Εξαγωγής Συμπερασμάτων (Derivation RuleML Layer) Οι βασικές δομικές κατασκευές του επιπέδου εξαγωγής συμπερασμάτων είναι: Βάσεις κανόνων (Rule Bases) που αναπαρίστανται από το tag <Rulebase> Ερωτήματα που αναπαρίστανται από το tag <Query> Κανόνες που αναπαρίστανται από το tag <Rule> Γεγονότα ή οι στόχοι (facts/goals) που αναπαρίστανται από το tag. Οι όροι που περικλείονται από ένα tag μπορεί να είναι: ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 61

62 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ o Μεταβλητές που αναπαρίστανται με το <Var> tag και παίρνουν τιμές όταν οι κανόνες εφαρμόζονται στην πράξη. o Ατομικές σταθερές που αναπαρίστανται με το <Ind> tag o Τιμές δεδομένων που αναπαρίστανται με το <Data> tag o Σύνθετες εκφράσεις που αναπαρίστανται με το <Expr> tag Οι συζεύξεις αναπαρίστανται από το tag <And> και οι διαζεύξεις από το tag <Or>. <Ind>Peter</Ind> "Peter" <Ind>John Doe</Ind> "John Doe" <Ind>42</Ind> 42 <Var>X</Var> X <Var/> _ Σύνθετοι Όροι/Συναρτήσεις και Λίστες του Επιπέδου Εξαγωγής Συμπερασμάτων Στο Επίπεδο εξαγωγής συμπερασμάτων (Derivation RuleML Layer), υποστηρίζεται η χρήση σύνθετων όρων, οι οποίοι μπορούν να είναι είτε συναρτήσεις, είτε λίστες Συναρτήσεις Σύνθετοι όροι (δομές-structures) οι οποίοι περιγράφουν λογικές συναρτήσεις αναπαρίστανται χρησιμοποιώντας το tag <Expr>. Σε μια έκφραση, το όνομα της συνάρτησης <Fun> προηγείται και στη συνέχεια παρατίθεται μια ακολουθία από κανένα ή περισσότερα arguments <arg>. Επιπλέον είναι επιτρεπτό, πριν ή/και μετά τα arguments να χρησιμοποιούνται προαιρετικά κάποια slots καθορισμένα από το χρήστη. Τέλος επιτρέπεται η χρήση λοιπών μεταβλητών (rest variables), όπως <repo> ή <resl>. <Expr per="plain"> </Expr> <Fun>book</Fun> <Var>Title</Var> <Var>Author</Var> <Var>Content</Var> <Var>Chapters</Var> Στον ορισμό μιας συνάρτησης, μπορούν να χρησιμοποιηθούν και τα παρακάτω attributes: Per= plain : Είναι η εξ ορισμού τιμή και μπορεί να παραλειφθεί. Χρησιμοποιείται όταν η συνάρτηση δεν επιστρέφει τιμή ή όταν η τιμή που επιστρέφει δεν είναι απαραίτητη στη ροή του προγράμματος Per= value : Χρησιμοποιείται όταν η συνάρτηση επιστρέφει τιμή η οποία και είναι απαραίτητη για τη ροή του προγράμματος Λίστες Λίστες (plex) ονομάζονται οι συλλογές από (διατεταγμένα) arguments (τα οποία προαιρετικά περικλείονται από το tag <arg> ή/και (μη διατεταγμένα) slots () ορισμένα από το χρήστη. Να σημειωθεί ότι έχει επικρατήσει η σύμβαση, το πρώτο argument μιας λίστας <Plex> να μπορεί να μεταφραστεί σαν συσχετισμένο με 62 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

63 ΚΕΦΑΛΑΙΟ 4: Η ΓΛΩΣΣΑ ΚΑΝΟΝΩΝ: REACTION RULEML συνάρτηση και κατά συνέπεια, η λίστα [book,title,author,content,chapters] να μπορεί ισοδύναμα να γραφεί σαν book(title,author,content,chapters), δηλαδή σαν <Expr>. <Plex> </Plex> <Ind>book</Ind> <Var>Title</Var> <Var>Author</Var> <Var>Content</Var> <Var>Chapters</Var> Επιπροσθέτως επιτρέπονται λοιπές μεταβλητές όπως <repo> ή <resl>. Για παράδειγμα το [Head Tail] δομείται ως εξής: <Plex> <Var>Head</Var> <repo><var>tail</var></repo> </Plex> Ισότητα ή Ισοδυναμία (Equality) του Επιπέδου Εξαγωγής Συμπερασμάτων Η Ισότητα ή ισοδυναμία που στην Derivation RuleML υποδηλώνεται με την ετικέτα <Equal>, χρησιμοποιείται για τη δήλωση συγκρίσεων ισοδυναμίας και για την ανάθεση τιμών σε ελεύθερες μεταβλητές. <Assert> <Rule> <if> <Equal> <Var>Value</Var> <Data xsi:type="xs:int">1</data> </Equal> </if> <then> <Rel>on</Rel> <Var>Value</Var> </then> </Rule> </Assert> <Query> ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 63

64 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ <Rel>on</Rel> <Var>Value</Var> </Query> <Query> <Rel>on</Rel> <Ind>1</Ind> </Query> Στο πρώτο ερώτημα η μεταβλητή Value είναι μη-δεσμευμένη (unbound) και συνεπώς η δέσμευσή της πραγματοποιείται μέσω της ενοποίησής ισοδυναμίας της (equality unification) με την τιμή 1 του τύπου xs:int στο τμήμα συνθήκης (if) του κανόνα (Rule) στη φόρμουλα ισοδυναμίας. Το ερώτημα επιστρέφει 1 σαν αποτέλεσμα της μεταβλητής. Στο δεύτερο ερώτημα το argument είναι μια σταθερά (constant individual) 1, την οποία δεσμεύει η μεταβλητή Value στο τελευταίο τμήμα του κανόνα. Αυτή η τιμή συγκρίνεται με το δεύτερο argument της συνάρτησης ισοδυναμίας 1=1 της συνθήκης, συνεπώς το ερώτημα είναι επιτυχημένο. Δηλαδή η συνάρτηση ισοδυναμίας δρα σαν τελεστής σύγκρισης και συγκεκριμένα σαν τελεστής σύγκρισης αντικειμένων. Σημείωση: Υπαινίσσεται η υπόθεση ότι οι αριθμητικές σταθερές (numeric individuals) όπως οι 1,2,3, είναι τύπου sort integer έτσι ώστε να υπάρχει ενοποίηση με αντίστοιχους τύπους άλλων συστημάτων π.χ java.lang.integer=xs:int. Με τη φόρμουλα ισοδυναμίας, είναι δυνατή η ανάθεση σε μεταβλητές τυχαίων και σύνθετων αντικειμένων, όπως σύνθετων όρων, λιστών, εξωτερικών αντικειμένων κλπ και επίσης είναι δυνατή η δημιουργία αντιγράφων από μεταβλητές ή τμήματα μεταβλητών που έχουν δεσμευθεί προηγουμένως. <Equal> <Var>List</Var> <Plex> <Ind>discount</Ind> <Plex> <Ind>customer</Ind> <Ind>Jon Doe</Ind> </Plex> <Ind>10</Ind> </Plex> </Equal> Στο παραπάνω παράδειγμα γίνεται ανάθεση της λίστας [discount[costumer, Jon Doe ],10] στη μεταβλητή με όνομα List. Μεταφράζοντας το πρώτο argument μιας λίστας σαν predicate/function name αυτή η λίστα ισοδυναμεί με το σύνθετο όρο discount(customer( Jon Doe ),10) ο οποίος αναπαρίσταται ως εξής: 64 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

65 ΚΕΦΑΛΑΙΟ 4: Η ΓΛΩΣΣΑ ΚΑΝΟΝΩΝ: REACTION RULEML <Equal> <Var>List</Var> <Expr> <Fun per="value">discount</fun> <Expr> <Fun>customer</Fun> <Ind>Jon Doe</Ind> </Expr> <Ind>10</Ind> </Expr> </Equal> Άρνηση: Απλή και απόλυτη Στη φυσική γλώσσα αλλά και σε συστήματα αναπαράστασης πρακτικής γνώσης, υπάρχουν δύο είδη άρνησης: Η «αδύναμη» άρνηση με την οποία εκφράζεται ότι κάτι δεν είναι αληθές (για παράδειγμα η αίσθηση της φράσης: «δε μου αρέσει το χιόνι») και η «δυνατή» άρνηση η οποία εκφράζει ρητή αναλήθεια (π.χ «μισώ το χιόνι») Στη RuleML η αδύναμη άρνηση δηλώνεται από το not ενώ η δυνατή από το neg. Στην περίπτωση ενός πλήρους κατηγορήματος (predicate), όπως για παράδειγμα εάν ένας αριθμός είναι ή όχι περιττός, τα δύο είδη άρνησης «συγκρούονται» καθώς εκφράζουν το ίδιο πράγμα. not odd(x) είναι ισοδύναμο με neg odd(x). Σε περιπτώσεις όμως ενός μη-ολοκληρωμένου κατηγορήματος όπως στην περίπτωση του like το μόνο που μπορεί με σιγουριά να διατυπωθεί είναι ότι η δυνατή άρνηση υποννοεί την αδύναμη. neg like(i, snow) υπονοεί το not like(i,snow) αλλά δεν ισχύει και το αντίθετο. [8] Σε πολλά πεδία της επιστήμης των υπολογιστών, τα κατηγορήματα θεωρείται ότι είναι πλήρη (σύμφωνα με την παραδοχή του «Κλειστού-κόσμου») οπότε το not χρησιμοποιείται πολύ πιο συχνά από το neg. Η δυνατή άρνηση από την άλλη είναι άρνηση τύπου «ανοιχτού κόσμου», μιας και σ ένα ανοιχτό κόσμο όπως το web η μηαλήθεια (ή αποτυχία) μιας δήλωσης, δεν υποδηλώνει απαραίτητα την αναλήθειά της. Συνδυάζοντας λοιπόν δυνατή και αδύναμη άρνηση στη RuleML, είναι όλοι οι κανόνες μπορούν να εκφραστούν με ένα φυσικό τρόπο. Η Reaction RuleML διακρίνει δύο είδη άρνησης, την απλή (αδύναμη) άρνηση η οποία εκφράζει την αποτυχία (Failure) (<Naf>) και την σαφή ή απόλυτη (δυνατή) άρνηση (<Neg>). <Rule> <if> </if> <Rel>reputation</Rel> <Var>Client</Var> <Ind>bad</Ind> ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 65

66 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ <then> <Neg> <Rel>trust</Rel> <Var>Client</Var> </Neg> </then> </Rule> Ο παραπάνω κανόνας δηλώνει ότι δεν υπάρχει εμπιστοσύνη σε κάποιο πελάτη, αν η υπόληψή του είναι κακή. <Rule> <if> </if> <then> </then> </Rule> <Naf> </Naf> <Rel>forbid</Rel> <Var>Person</Var> <Var>Action</Var> <Rel>permit</Rel> <Var>Person</Var> <Var>Action</Var> Ο παραπάνω κανόνας ορίζει ότι σε κάποιον επιτρέπεται να πράξει κάτι, αν δε μπορεί να αποδειχθεί ότι του έχει απαγορευθεί να το πράξει. Κατά συνέπεια, αν δεν υπάρχει πληροφόρηση σχετικά με την απαγόρευση για ένα άτομο, τότε εξ ορισμού αυτό το άτομο αποκτά άδεια. 4.4 ΤΟ ΕΠΙΠΕΔΟ ΠΑΡΑΓΩΓΗΣ ΚΑΝΟΝΩΝ ΤΗΣ REACTION RULEML (PR RULEML LAYER) Το επίπεδο PR RuleML ( ουσιαστικά αποτελεί επέκταση του επιπέδου Derivation RuleML (( της Reaction RuleML 0.2. Ορίζει δε, το συντακτικό και τη σημασιολογία για κανόνες παραγωγής (if-do rules; style=active) και για σειριακούς horn κανόνες (if-then rules with serial actions; style=reasoning) όπως επίσης και μεικτούς τύπους μεταξύ 66 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

67 ΚΕΦΑΛΑΙΟ 4: Η ΓΛΩΣΣΑ ΚΑΝΟΝΩΝ: REACTION RULEML derivation και production κανόνων (e.g. if-then-elsedo rules; style=active). Υποστηρίζονται διαφορετικές κλάσεις προγραμμάτων κανόνων παραγωγής: Κανόνες Παραγωγής και Αρχικοποιημένοι Κανόνες Παραγωγής με Άρνηση. Ένας κανόνας παραγωγής ορίζει τη λογική εκτέλεσης μιας ή περισσότερων ενεργειών όταν οι συνθήκες του κανόνα αυτού ικανοποιούνται. Το σύστημα παραγωγής των κανόνων ορίζει ότι η λειτουργική σημασιολογία τους έχει φορά προς τα εμπρός (forward-directed). Επιπροσθέτως, όταν στη μνήμη εργασίας (Working Memory) λαμβάνουν χώρα ενέργειες ανανέωσης (Update Actions) δηλαδή <Assert> ή <Retract> θεωρείται ότι αυτές οι ενέργειες, εμμέσως, οδηγούν σε περαιτέρω ενέργειες ανανέωσης και τελικά είναι ικανές να «πυροδοτήσουν» μια ακολουθία νέων κανόνων παραγωγής τύπου: if Condition do Action. Ένας κανόνας παραγωγής στη Reaction RuleML 0.2 αποτελείται από το τμήμα της συνθήκης (if), από το τμήμα της ενέργειας (do), από μια προαιρετική μετά-συνθήκη (after) και από ένα εναλλακτικό τμήμα ενέργειας (elsedo) με ένα προαιρετικό επιπλέον τμήμα μετά-συνθήκης (elseafter). Το στυλ εκτέλεσης κανόνα είναι active. Εικόνα 10: PR RuleML: Το συντακτικό και τα semantics για Production Rules Εικόνα 11: Το Μετά-μοντέλο ενός κανόνα παραγωγής της Reaction RuleML 0.2 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 67

68 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Παρακάτω παρουσιάζεται το πλήρες συντακτικό ενός κανόνα παραγωγής της Reaction RuleML 0.2. <Rule style="active"> </Rule> <label> <!-- optional meta data --> </label> <scope> <!-- optional general scope of rule --> </scope> <qualification> <!-- optional qualifications --> </qualification> <oid> <!-- optional object identifier --> </oid> <if> <!-- conditions --> </if> <do> <!-- actions --> </do> <after> <!-- post-conditions --> </after> <elsedo> <! alternative actions --> </else> <elseafter> <!-- post-conditions --> </elseafter> 68 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

69 Κ Ε Φ Α Λ Α Ι Ο 5 : Σ Υ Ν Δ Ε Σ Η Τ Ω Ν Π Ρ Ο Δ Ι Α Γ Ρ Α Φ Ω Ν Τ Η Σ F I PA Μ Ε ΤΗΝ R E A C T I O N - R U L E ML

70

71 ΚΕΦΑΛΑΙΟ 5: XSL ΜΕΤΑΤΡΟΠΗ ΤΩΝ ΚΑΝΟΝΩΝ ΑΠΟ REACTION-RULEML ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ JESS ΣΥΝΔΕΣΗ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ΤΗΣ FIPA ΜΕ ΤΗΝ REACTION-RULEML 5.1 ΕΙΣΑΓΩΓΗ Σύμφωνα με τους [17], το πρώτο βήμα για την επεξεργασία ενός συμβολαίου γραμμένου σε φυσική γλώσσα είναι η λογική αναπαράστασή του. Στο σημείο αυτό, όλες οι προτάσεις του συμβολαίου μετατρέπονται σε γεγονότα/δεδομένα (facts), ορισμούς και πρότυπους κανόνες (normative rules). Η αναπαράσταση αυτή μπορεί να γίνει σε μια γλώσσα η οποία είναι κατάλληλη για υπολογιστές και για ανθρώπους. Στο σημείο αυτό, το συμβόλαιο είναι έτοιμο για επεξεργασία ώστε να εξαχθούν όλες οι συνθήκες που περικλείονται σε αυτό και τελικά να εντοπιστούν τυχόν ασυνέπειες. Για την υλοποίηση της παρούσης εργασίας, όπως έχει ήδη αναφερθεί, το συμβόλαιο που επιλέχθηκε να μελετηθεί είναι το Fipa Contract Net Interaction Protocol. Για τη λογική του αναπαράσταση επιλέχθηκε να χρησιμοποιηθεί η γλώσσα κανόνων Reaction-RuleML με τη βοήθεια της οποίας όλες οι προτάσεις του συμβολαίου μετατρέπονται σε πρότυπους κανόνες και σε γεγονότα/δεδομένα. Ένα σημαντικό ζήτημα που έπρεπε να αντιμετωπιστεί, ήταν η ανταλλαγή μηνυμάτων τα οποία σύμφωνα με το Fipa Contract Net Interaction Protocol πρέπει να ανταλλάσουν οι πράκτορες μεταξύ τους για την πραγματοποίηση της διαπραγμάτευσης. Στο ζήτημα αυτό, τη λύση δίνει η δομή του μηνύματος της Reaction-RuleML η οποία παρουσιάστηκε στην παράγραφο Το ερώτημα όμως που προέκυψε ήταν: «Με ποιο τρόπο θα χρησιμοποιηθεί αυτή η δομή στην επίλυση του συγκεκριμένου προβλήματος;» Στην προσπάθεια απάντησης αυτού του ερωτήματος, αρκετά διαφωτιστική είναι η προσέγγιση των [21] σύμφωνα με τους οποίους, συστήνεται η χρήση αντιδραστικών κανόνων μηνυμάτων σε μορφή Reaction-RuleML, για την αλληλεπίδραση των πρακτόρων με το περιβάλλον τους. Πιο συγκεκριμένα, προτείνεται η χρήση SendMsg και rcvmsg κατηγορημάτων για αποστολή και λήψη μηνυμάτων αντιστοίχως: sendmsg(xid,protocol,agent,performative,payload Context) rcvmsg(xid,protocol,from,performative,paylod Context) Όπου XID είναι το αναγνωριστικό διαλόγου (conversation-id), Protocol ο τύπος του πρωτοκόλλου επικοινωνίας, Performative το είδος του μηνύματος, και Payload το περιεχόμενο αυτού. Χρησιμοποιώντας λοιπόν αυτές τις δομές μηνυμάτων, οι πράκτορες είναι σε θέση να ανταλλάσουν από απλά γεγονότα μέχρι και πλήρη σύνολα κανόνων (Rule Bases). Επιπλέον δίνεται η δυνατότητα να εμπλακούν σε μακροσκελείς και πολλές φορές ασύγχρονους διαλόγους, εκμεταλλευόμενοι το conversation-id για να διαχειρίζονται την κατάσταση σε κάθε διάλογο ξεχωριστά. Καταγράφοντας λοιπόν το συμπέρασμα ότι η δομή του μηνύματος είναι το κλειδί στην αναπαράσταση του Fipa Contract Net Interaction Protocol με τη βοήθεια της Reaction-RuleML, στην παράγραφο που ακολουθεί παρουσιάζεται το συγκεκριμένο

72 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ πρωτόκολλο έτσι όπως έχει στοιχειοθετηθεί από τη FIPA. Στη συνέχεια, στις επόμενες παραγράφους, θα γίνει μια εκτενής παρουσίαση περιγραφή, του τρόπου με τον οποίο οι δομές και οι μηχανισμοί του πρωτοκόλλου, μετατράπηκαν σε πλήρη σύνολα κανόνων, με τη χρήση Reactive Messaging Rules κυρίως αλλά και μερικών Productive κανόνων. 5.2 ΤΟ ΠΡΩΤΟΚΟΛΛΟ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ Το Πρωτόκολλο αλληλεπίδρασης FIPA Contract Net Interaction Protocol [22](εφεξής IP) αποτελεί μια τροποποίηση του πρότυπου Contract Net IP [23] διότι έχουν προστεθεί και πράξεις απόρριψης ή επιβεβαίωσης των πράξεων επικοινωνίας. Στο Contract Net IP, ένας πράκτορας (Initiator) έχει το ρόλο του διευθύνοντα ο οποίος έχει την επιθυμία να επιτευχθεί η εκτέλεση μιας εργασίας από έναν ή περισσότερους άλλους πράκτορες (Participants) και επιπλέον επιθυμεί να βελτιστοποιήσει τη λειτουργία/συνάρτηση (function) η οποία χαρακτηρίζει αυτή την εργασία. Τέτοια χαρακτηριστικά θα μπορούσαν σε γενικές γραμμές να είναι μια τιμή, ο χρόνος ολοκλήρωσης, η δίκαια κατανομή εργασιών κλπ. Για μια συγκεκριμένη εργασία, όσοι από τους συμμετέχοντες επιθυμούν μπορούν να απαντήσουν με μια πρόταση ενώ οι υπόλοιποι πρέπει να αρνηθούν. Οι διαπραγματεύσεις συνεχίζονται μεταξύ του Initiator και εκείνων των Participants οι οποίοι ανταποκρίθηκαν. Η αναπαράσταση του παραπάνω πρωτοκόλλου αλληλεπίδρασης παρουσιάζεται στην εικόνα 12 και στηρίζεται σε επεκτάσεις UML 1.x [24] Το token που αποτελεί αναγνωριστικό του πρωτοκόλλου στην παράμετρο protocol ενός ACL μηνύματος είναι το fipa-contract-net Επεξήγηση της ροής του πρωτοκόλλου Ο Initiator αιτείται/ζητά m προσφορές (proposals) από τους υπόλοιπους πράκτορες εκτελώντας την πράξη που ορίζεται (κατά FIPA) ως call for proposals (cfp), η οποία ορίζει την εργασία καθώς και τις παραμέτρους τις οποίες ο Initiator θέτει ως απαραίτητες στην εκτέλεση της εργασίας. Εκείνοι οι πράκτορες που λαμβάνουν το μήνυμα cfp, οι Participants, θεωρούνται από τον Initiator ως οι πιθανοί «συνεργάτες» του (contractors). Από n από αυτούς (n<=m) θα παραχθούν απαντήσεις τις οποίες θα λάβει ο Initiator και οι οποίες σχετίζονται με την πρόθεσή του για εκπλήρωση της εργασίας. Από αυτές τις n απαντήσεις, j είναι προτάσεις των participants (αντιπροτάσεις) για το πώς επιθυμούν εκείνοι να εκτελέσουν την εργασία και ορίζονται ως propose acts, ενώ i=n-j πράκτορες στέλνουν αρνητική απάντηση refuse. Οι προτάσεις των Participants περιλαμβάνουν τις προϋποθέσεις υπό τις οποίες ο Participant μπορεί ή επιθυμεί να φέρει εις πέρας την εργασία (για παράδειγμα το χρόνο που χρειάζεται ή μια τιμή κλπ.). 72ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

73 ΚΕΦΑΛΑΙΟ 5: ΣΥΝΔΕΣΗ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ΤΗΣ FIPA ΜΕ ΤΗΝ REACTION-RULEML Εικόνα 12 : Το Contract Net Interaction Protocol από τη FIPA Μόλις περάσει το χρονικό περιθώριο που ο Initiator είχε θέσει, τότε αυτός πραγματοποιεί μια εκτίμηση των j προτάσεων που έχει λάβει και είναι η σειρά του να επιλέξει εκείνους τους πράκτορες που τελικά θα εκτελέσουν την εργασία. Μπορεί να επιλεγεί ένας ή περισσότεροι πράκτορες, όπως επίσης και κανένας και στην περίπτωση αυτή να τερματιστεί η διαδικασία. Οι k πράκτορες (k<=j) θα λάβουν ένα μήνυμα reject-proposal ενώ οι l=j-k πράκτορες που τελικά επιλέγονται θα λάβουν ένα μήνυμα accept-proposal. Στο σημείο αυτό είναι απαραίτητο να σημειωθεί ότι από τη στιγμή που ο Initiator αποδέχεται την πρόταση ενός Participant, ο τελευταίος έχει δεσμευθεί (acquires a commitment) να φέρει την εργασία εις πέρας. Τη στιγμή που ο Participant ολοκληρώσει την εργασία, στέλνει ένα μήνυμα «ολοκλήρωσης» στον Initiator με τη μορφή Inform-done ή με την πιο επεξηγηματική μορφή inform-result. Στην περίπτωση που ο Participant αποτύχει, στέλνει μήνυμα αποτυχίας: failure message. Σημειώνεται ότι το συγκεκριμένο πρωτόκολλο αλληλεπίδρασης προϋποθέτει ότι ο Initiator αντιλαμβάνεται πότε έχει λάβει όλες τις απαντήσεις. Σε διαφορετική περίπτωση, αν ένας Participant αποτύχει να απαντήσει (είτε με propose ή με refuse μήνυμα) ο Initiator θα μπορούσε να περιμένει απάντηση επ άπειρον. Για να αποφευχθεί κάτι τέτοιο, το cfp μήνυμα πρέπει να περιλαμβάνει ένα χρονικό όριο (deadline) μέσα στο οποίο ο Initiator δέχεται απαντήσεις από τους Participants. Εκείνες οι προτάσεις (proposals) που λαμβάνονται μετά τη λήξη του χρονικού ορίου πρέπει να απορρίπτονται με την αιτιολόγηση της αργοπορίας. Το χρονικό αυτό όριο καθορίζεται με την παράμετρο reply-by στα ACL μηνύματα. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 73

74 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Επιπλέον, κάθε αλληλεπίδραση στα πλαίσια του Contract Net IP πρέπει να ορίζεται από μια μοναδική και καθολικά ορισμένη (globally unique), μη-μηδενική τιμή/παράμετρο, την conversation-id η οποία ορίζεται από τον Initiator. Οι πράκτορες που θα εμπλακούν στην αλληλεπίδραση οφείλουν να ενσωματώνουν αυτό το αναγνωριστικό σε κάθε ACL μήνυμα που στέλνουν. Με τον τρόπο αυτό οι πράκτορες θα είναι σε θέση να διαχειρίζονται τις στρατηγικές και τις δραστηριότητές τους γενικότερα, για παράδειγμα σε περίπτωση που εμπλέκονται σε περισσότερους από ένα «διαλόγους» ή σε περιπτώσεις που χρειάζεται να γίνει reasoning σε παλαιότερα αρχεία διαλόγων. Στην περίπτωση των 1:Ν πρωτοκόλλων αλληλεπίδρασης, ο Initiator αποφασίζει αν η ίδια παράμετρος conversation-id μπορεί να χρησιμοποιηθεί ή αν πρέπει να χρησιμοποιηθούν νέες τιμές. Επιπροσθέτως στα μηνύματα πρέπει να καθορίζονται και λοιπές πληροφορίες σχετικά με την αλληλεπίδραση, όπως π.χ μια παράμετρος timeout στο reply-by slot η οποία θα ορίζει και το χρονικό περιθώριο μέσα στο οποίο ο πράκτορας (αποστολέας του μηνύματος) επιθυμεί να λάβει το επόμενο μήνυμα στα πλαίσια της ροής του πρωτοκόλλου. 5.3 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΥΣΤΗΜΑΤΟΣ Για την υλοποίηση του πρωτοκόλλου FIPA Contract Net κύριος στόχος ήταν ο διαχωρισμός του πρωτοκόλλου από την ατομική στρατηγική του κάθε πράκτορα. Ο λόγος για αυτό είναι προφανής, καθώς το πρωτόκολλο αποτελεί κοινό και δημόσιο αγαθό ενώ η στρατηγική είναι ιδιωτική και αφορά τον πράκτορα και μόνο. Δημοσιοποίηση της στρατηγικής κάποιου πράκτορα θα μπορούσε να επιφέρει ανυπολόγιστη ζημία στον ίδιο και κατ επέκταση στον χρήστη του. Επιπλέον, για να είναι δυνατό να αλληλεπιδράσει έναν αριθμός πρακτόρων θα πρέπει να ακολουθούν όλοι το ίδιο πρωτόκολλο αλληλεπίδρασης. Ουσιαστικά, λοιπόν, στόχος της παρούσας εργασίας είναι να ορίσει όλες τις απαραίτητες προϋποθέσεις και διαδικασίες έτσι ώστε κάθε πράκτορας που θέλει να συμμετέχει σε μια διαδικασία να προσδιορίζει αφενός το δημόσια διαθέσιμο πρωτόκολλο που απαιτείται και αφετέρου την προσωπική του στρατηγική χωρίς να χρειάζεται να καταβάλλεται επιπλέον προγραμματιστική δουλειά από τον χρήστη για την ενσωμάτωση της στρατηγικής στο πρωτόκολλο και ούτε να κινδυνεύει φυσικά και η προσωπική γνώση του πράκτορα. Επομένως, προσδιορίζονται δύο ομάδες κανόνων, μια που αφορά τη στρατηγική του πράκτορα και μια που αφορά το πρωτόκολλο. Οι κανόνες που δημιουργήθηκαν στο τμήμα της στρατηγικής, αφορούν μια συγκεκριμένη περίπτωση (case study) και υλοποιούν ένα συγκεκριμένο τρόπο λειτουργίας της διαπραγμάτευσης. Οι κανόνες που δημιουργήθηκαν στο τμήμα του Πρωτοκόλλου, ρυθμίζουν κυρίως τεχνικά ζητήματα που αφορούν την ανταλλαγή μηνυμάτων και την επικοινωνία μεταξύ των πρακτόρων και είναι ανεξάρτητοι της στρατηγικής του πράκτορα. Να σημειωθεί ότι στην υλοποίηση για κάθε κατηγορία, το σύνολο των κανόνων ορίζεται σε ξεχωριστό αρχείο, ένα για το πρωτόκολλο και ένα για την στρατηγική. Ο διαχωρισμός, επομένως, αποφασίστηκε για λόγους λειτουργικότητας και πιο εύκολης επεκτασιμότητας της όλης υλοποίησης, μιας και κρίθηκε απαραίτητο, αφού ολοκληρωθεί η υλοποίηση των μηχανισμών του πρωτοκόλλου, να μπορεί κάποιος να διαχειριστεί τη στρατηγική του πράκτορα μεταβάλλοντας κάποιες παραμέτρους ή και κανόνες ενός μόνο αρχείου κάθε φορά (του αρχείου στρατηγικής), χωρίς να υπάρχει κίνδυνος να μεταβληθούν οι κανόνες που αφορούν την υλοποίηση του 74ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

75 ΚΕΦΑΛΑΙΟ 5: ΣΥΝΔΕΣΗ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ΤΗΣ FIPA ΜΕ ΤΗΝ REACTION-RULEML πρωτοκόλλου. Στη βάση της λογικής που περιγράφηκε παραπάνω, τα αρχεία είναι τα εξής: Ομάδα αρχείων για Initiator o Initiator_protocol_rules.xml o Initiator_strategy_rules.xml Ομάδα αρχείων για κάθε Participant o Για τον πρώτο participant: Participant_protocol_rules.xml Participant1_strategy_rules.xml o Για τον δεύτερο participant: Participant_protocol_rules.xml Participant2_strategy_rules.xml o Για τον τρίτο participant: Participant_protocol_rules.xml Participant3_strategy_rules.xml Όπως μπορεί να παρατηρήσει κανείς, όλοι οι Participants μοιράζονται το ίδιο αρχείο για τους κανόνες πρωτοκόλλου. Αυτό σύμφωνα με όσα ειπώθηκαν παραπάνω, είναι φυσιολογικό μιας και μόνο η στρατηγική του κάθε πράκτορα μεταβάλλεται. Ωστόσο, σε επιπέδο υλοποίησης, κάθε πράκτορας θα πρέπει να είναι σε θέση να συνδυάζει την στρατηγική του με το πρωτόκολλο. Έτσι, δημιουργήθηκε ένα XSLT αρχείο το οποίο έχει το ρόλο του compiler και με την εφαρμογή του στα αρχεία των κανόνων, παράγονται έξοδοι (outputs) οι οποίες ουσιαστικά αποτελούν τη «μετάφραση» των κανόνων R-RuleML σε κανόνες JESS. Το συγκεκριμένο αρχείο είναι το: Compiler.xsl. Ο λόγος για την επιλογής της γλώσσας JESS είναι ότι τόσο η ίδια αποτελεί γλώσσα κανόνων όσο και ότι είναι αποδεκτή και χρησιμοποιείται ήδη στην κοινότητα των πρακτόρων. Μια πιο αναλυτική παρουσίασή της δομής και λειτουργίας του μετασχηματισμού, λαμβάνει χώρα στο Κεφ.6 της παρούσης εργασίας, όπου στην εικόνα 19 ο αναγνώστης μπορεί να έχει μια σχηματική αναπαράσταση των μετατροπών που λαμβάνουν χώρα και της επίδρασής τους σε έναν πράκτορα που συμμετέχει στην αλληλεπίδραση. Για την ώρα, σημειώνεται ότι το αποτέλεσμα του XSL μετασχηματισμού, για τη συγκεκριμένη υλοποίηση είναι τα αρχεία: Ομάδα αρχείων με κανόνες JESS για Initiator o Initiator_protocol.clp o Initiator_strategy.clp Ομάδα αρχείων με κανόνες JESS για κάθε Participant o Για τον πρώτο participant: Participant_protocol.clp Participant_strategy.clp o Για τον δεύτερο participant: Participant_protocol.clp Participant2_strategy.clp o Για τον τρίτο participant: Participant_protocol.clp Participant3_strategy.clp ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 75

76 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Εικόνα 13: Αρχιτεκτονική του συστήματος Επιπλέον, για μεγαλύτερη ευκολία στην κατανόηση του ζητήματος από τον αναγνώστη, καθώς και για λόγους πιο «καλής» αναγνωσιμότητας, αποφασίστηκε, η παρουσίαση κανόνων, γεγονότων και συνθηκών να γίνει στη μορφή JESS (οι κανόνες σε μορφή R-RuleML είναι μεγάλοι σε έκταση). Βέβαια, επιλεκτικά, θα παρουσιαστούν τμήματα της υλοποίησης στα οποία παρατίθενται και οι δύο μορφές των κανόνων αναλυτικά όμως, η πλήρης μορφή των περιεχομένων των αρχείων τόσο των R-RuleML όσο και των JESS παρατίθεται στα παραρτήματα Ι και ΙΙΙ του παρόντος, ενώ η πλήρης μορφή του XSLT παρουσιάζεται στο παράρτημα ΙΙ. 5.4 ΜΗΝΥΜΑΤΑ Η δομή του μηνύματος (Message Construct) είναι μία από τις βασικές προσθήκες στο συντακτικό της R-RuleML και συνιστά αφενός μια σημαντική εκφραστική διαφοροποίηση της γλώσσας από παλαιότερες εκδοχές της (RuleML) όσο και ένα εργαλείο το οποίο επέτρεψε τη συγκεκριμένη απόπειρα αναπαράστασης του FIPA Contract Net Interaction Protocol στη μορφή κανόνων (βλ. παρ 4.2.3). Στην πράξη ο τρόπος με τον οποίο ορίζεται το συντακτικό του μηνύματος, εναρμονίζεται με τις προδιαγραφές της FIPA. Για να γίνει αυτό αντιληπτό παρατίθεται ένα μήνυμα Call For Proposal από τα FIPA Specs, με τη δομή μηνύματος στη R-RuleML και επιπλέον και με το template για μήνυμα όπως ορίζεται στον agent του EMERALD: jessagentrr: (cfp :sender (agent-identifier :name Initiator) :receiver (set (agent-identifier :name Participant)) :content " " :ontology ontology1 :language fipa-acl :protocol fipa-contractnet-protocol :conversation-id conv0001 Εικόνα 14: Η FIPA εκδοχή της δομής μηνύματος το οποίο ανταλλάσουν πράκτορες. 76ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

77 ΚΕΦΑΛΑΙΟ 5: ΣΥΝΔΕΣΗ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ΤΗΣ FIPA ΜΕ ΤΗΝ REACTION-RULEML <Message mode="outbound" directive="cfp <oid> <!-- conversation ID--> </oid> <protocol> <!-- transport protocol --> </protocol> <sender> <!-- sender agent/service --> </sender> <receiver> <!-- sender agent/service --> </ receiver > <content> <!-- message payload --> </content> </Message> Εικόνα 15: Η δομή μηνύματος στη Reaction-RuleML (deftemplate ACLMessage (slot communicative-act) (slot sender) (multislot receiver) (slot reply-with) (slot in-reply-to) (slot envelope) (slot conversation-id) (slot protocol) (slot language) (slot ontology) (slot content) (slot encoding) (multislot reply-to) (slot reply-by)) Εικόνα 16: Ο ορισμός του template ACL μηνύματος στον πράκτορα jessagentrr Όπως μπορεί κανείς να αντιληφθεί, τα μηνύματα και στις τρεις εκδοχές τους διαθέτουν: Ένα όρισμα για τον Αποστολέα Ένα όρισμα για τον Παραλήπτη Ένα όρισμα για το Περιεχόμενο Ένα όρισμα-αναγνωριστικό (conversation-id) το οποίο διασφαλίζει την ασύγχρονη επικοινωνία πρακτόρων και τη συμμετοχή τους ταυτόχρονα σε περισσότερους από έναν διαλόγους. Ένα όρισμα για το είδος του μηνύματος (Στη R-RuleML είναι το attribute: directive, στον JessAgentRR είναι το slot: communicative-act). Τα μηνύματα που ανταλλάσσουν οι πράκτορες μεταξύ τους, στο σενάριο της συγκεκριμένης υλοποίησης, αποτελούν το βασικό συστατικό των κανόνων που αφορούν το κομμάτι «Πρωτόκολλο» καθώς σε αυτά στηρίζεται όλη η λογική της διαπραγμάτευσης. Η χρήση τους, σε συνδυασμό με τους περιορισμούς που επιβάλει το συντακτικό της R-RuleML ουσιαστικά αποτέλεσαν τον οδηγό ο οποίος διαμόρφωσε τους κανόνες στα τμήματα πρωτοκόλλου να είναι αντιδραστικοί (Reactive). Από την άλλη αφού στο κομμάτι της Στρατηγικής του πράκτορα δεν πραγματοποιείται ανταλλαγή μηνυμάτων, εκείνοι οι κανόνες υλοποιούνται εύκολα ως Παραγωγικοί (Productive). Συνεχίζοντας την ανάλυση ακολουθεί η παρουσίαση των κανόνων για τον Initiator και των Participants στους οποίους (όπως έχει αναφερθεί στο τμήμα πρωτοκόλλου) περιέχονται ACL μηνύματα. 5.5 ΚΑΝΟΝΕΣ Οι κανόνες στους οποίους υπακούει τόσο ο Initiator όσο και ο Participant διαχωρίζονται (όπως έχει ήδη αναφερθεί), σε δύο κατηγορίες: 1. Σε αυτούς οι οποίοι αφορούν το Πρωτόκολλο διαπραγμάτευσης (στην περίπτωσή μας το FIPA Contract Net) και έχουν να κάνουν κυρίως με τη διαχείριση της ανταλλαγής μηνυμάτων. Οι κανόνες αυτοί αποφασίστηκε να ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 77

78 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ είναι της μορφής on-if-do (Event-Condition-Action) ECA αντιδραστικοί (Reactive) κανόνες, γεγονός που υπαγορεύεται-επιβάλλεται από τη δομή του Συντακτικού της R-RuleML (το οποίο παρατίθεται στο Παράρτημα IV της παρούσης εργασίας). Αυτό συμβαίνει επειδή η δομή του μηνύματος (Message Constructs) ορίζεται στο Reaction-Rule RuleML Layer (rr.xsd) της R-RuleML και κατά συνέπεια μηνύματα μπορούν να χρησιμοποιηθούν μόνο στο πεδίο Event (on) και στο πεδίο Action (do) αντιδραστικών κανόνων. 2. Σε αυτούς οι οποίοι αφορούν τη Στρατηγική του πράκτορα, δηλαδή τον τρόπο με τον οποίο θα διαχειριστεί τις εισερχόμενες προτάσεις από τους Participants και θα προχωρήσει στην επιλογή αυτού του Participant που πληροί τις προδιαγραφές που έχουν τεθεί ως μέρος της Στρατηγικής. Οι κανόνες οι οποίοι υλοποιούν το τμήμα στρατηγικής του Initiator είναι productive κανόνες της μορφής Condition-Action (if do) κάτι που είναι συμβατό με το επίπεδο rr.xsd της Reaction-RuleML Κανόνες Initiator Στις γραμμές που ακολουθούν παρατίθενται οι ονομασίες των κανόνων του Initiator μαζί με μια σύντομη περιγραφή της λειτουργίας που επιτελούν Initiator Κανόνες που αφορούν το πρωτόκολλο Οι κανόνες οι οποίοι υλοποιούν το τμήμα πρωτοκόλλου του Initiator είναι οι: 1. conversation_id_assertion Αρχικοποίηση του αναγνωριστικού διαλόγου - ΠΡΩΤΟΚΟΛΛΟ 2. protocol_facts_assertion Αρχικοποιήσεις facts - ΠΡΩΤΟΚΟΛΛΟ 3. prepare_call Προετοιμασία CFP μηνύματος - ΠΡΩΤΟΚΟΛΛΟ 4. send_call Αποστολή CFP μηνύματος - ΠΡΩΤΟΚΟΛΛΟ 5. receive_and_store_incoming_proposals Λήψη και αποθήκευση εισερχόμενων μηνυμάτων PROPOSE - ΠΡΩΤΟΚΟΛΛΟ 6. receive_and_store_incoming_refusals Λήψη και αποθήκευση εισερχόμενων μηνυμάτων REFUSE - ΠΡΩΤΟΚΟΛΛΟ 7. stop Έλεγχος για το συνολικό αριθμό εισερχόμενων μηνυμάτων. Φρένο στη διαδικασία λήψης και αποθήκευσης. Πέρασμα στη διαδικασία αξιολόγησης ΠΡΩΤΟΚΟΛΛΟ 8. send_replies Αποστολή τελικών μηνυμάτων στους Participants - ΠΡΩΤΟΚΟΛΛΟ Initiator Κανόνες που αφορούν τη στρατηγική 1. strateg y_facts_assert io n Αρχικοποίηση των facts της στρατηγικής του πράκτορα - ΣΤΡΑΤΗΓΙΚΗ 78ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

79 ΚΕΦΑΛΑΙΟ 5: ΣΥΝΔΕΣΗ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ΤΗΣ FIPA ΜΕ ΤΗΝ REACTION-RULEML 2. define_cheaper _part icipant Βρίσκει και αποθηκεύει σε ενδιάμεσο fact τον φθηνότερο - ΣΤΡΑΤΗΓΙΚΗ 3. define_expensive_participant Βρίσκει και αποθηκεύει σε ενδιάμεσο fact τους υπόλοιπους - που θεωρούνται οι "ακριβοί" ΣΤΡΑΤΗΓΙΚΗ 4. qualify_cheaper_choose Αξιολόγηση του φθηνότερου. Πληροί τις προϋποθέσεις; αν ναι γίνεται αποθήκευση σε fact της πληροφορίας για ACCEPTANCE ΣΤΡΑΤΗΓΙΚΗ 5. qualify_cheaper_reject Αξιολόγηση (2) του φθηνότερου. Πληροί τις προϋποθέσεις; αν OXI γίνεται αποθήκευση σε fact της πληροφορίας για REJECTION ΣΤΡΑΤΗΓΙΚΗ Participant Κανόνες Στις γραμμές που ακολουθούν παρατίθενται οι ονομασίες των κανόνων για τους Participants μαζί με μια σύντομη περιγραφή της λειτουργίας που επιτελούν. Σημειώνεται ότι οι κανόνες πρωτοκόλλου είναι κοινοί για όλους τους Participants ενώ αυτοί της στρατηγικής διαφέρουν από έναν participant στον άλλο, μόνο ως προς το fact που εισάγει ο κανόνας products_ini Participant Κανόνες Που αφορούν το πρωτόκολλο Οι κανόνες οι οποίοι υλοποιούν το τμήμα πρωτοκόλλου του Participant είναι οι: 1. Ini Αρχικοποιήσεις facts ΠΡΩΤΟΚΟΛΛΟ 2. receive-cfp Λήψη εισερχόμενου CFP ΠΡΩΤΟΚΟΛΛΟ 3. send_proposal_or_refusal Αποστολή PROPOSE ή REFUSE - ΠΡΩΤΟΚΟΛΛΟ 4. receive_acceptance Λήψη ACCEPTANCE ΠΡΩΤΟΚΟΛΛΟ 5. send_reply Αποστολή τελικού μηνύματος INFORM ή FAILURE ΠΡΩΤΟΚΟΛΛΟ Participant Κανόνες Που αφορούν τη στρατηγική 1. products_ini Αρχικοποίηση ενός fact με το προϊόν που διαθέτει ο πράκτορας και την τιμή στην οποία επιθυμεί να το διαπραγματευτεί - ΣΤΡΑΤΗΓΙΚΗ 2. check-cfp1 Έλεγχος δεδομένων του CFP μηνύματος που έχει παραληφθεί. Αν έχει αυτό που ζητάει ο Initiator αποθηκεύει σε fact όλη την πληροφορία που χρειάζεται για την αποστολή PROPOSE - ΣΤΡΑΤΗΓΙΚΗ 3. check-cfp2 Έλεγχος δεδομένων του CFP μηνύματος που έχει παραληφθεί. Αν ΔΕΝ έχει αυτό που ζητάει ο Initiator αποθηκεύει σε fact όλη την πληροφορία που χρειάζεται για την αποστολή REFUSE ΣΤΡΑΤΗΓΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 79

80 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ 4. check_acceptance1 Έλεγχος ACCEPTANCE1 ΣΤΡΑΤΗΓΙΚΗ 5. check_acceptance2 Έλεγχος ACCEPTANCE2 ΣΤΡΑΤΗΓΙΚΗ 5.6 ΣΕΝΑΡΙΟ ΥΛΟΠΟΙΗΣΗΣ (CASE STUDY) Σε προηγούμενη παράγραφο (5.2), παρουσιάστηκε το πρωτόκολλο διαπραγμάτευσης FIPA Contract-Net-Protocol και αναλυτικά και με τη βοήθεια του UML διαγράμματος, από την ιστοσελίδα της FIPA. Στην παράγραφο 5.3 αναλύθηκε -και σχηματικά- η βασική αρχιτεκτονική του συστήματος και επεξηγήθηκε ο διαχωρισμός των κανόνων πρωτοκόλλου από αυτούς της στρατηγικής. Για λόγους καλύτερης κατανόησης της υλοποίησης, στο σημείο αυτό παρατίθεται περιληπτικά, το σενάριο διαπραγμάτευσης πάνω στο οποίο στηρίχτηκε η υλοποίηση των κανόνων σε R-RuleML και κατ επέκταση σε κανόνες JESS (και το οποίο πληροί τις προδιαγραφές της FIPA για το Contract-Net-Protocol). Συνεπώς, με την ανάγνωσή του προκύπτει μια πρώτη εικόνα του διαχωρισμού των κανόνων πρωτοκόλλου από αυτούς της στρατηγικής, κάτι που αποτελεί σημείο-κλειδί στην κατανόηση των αρχείων κανόνων στην πλήρη τους μορφή η οποία παρουσιάζεται στα παραρτήματα I και ΙΙΙ. Έτσι λοιπόν το σενάριο παρατίθεται στις γραμμές που ακολουθούν με τα διάφορα στάδια να παρουσιάζονται με τη σειρά με την οποία ενεργοποιούνται οι κανόνες κατά την εκτέλεση της υλοποίησης: Παραδοχές 1. Ο πράκτορας Initiator επιθυμεί να βρει και να αγοράσει για λογαριασμό του ιδιοκτήτη του, ένα φορητό υπολογιστή (laptop). 2. Η στρατηγική του, είναι να δεχτεί τρεις προσφορές από 3 Participants (μία από τον καθένα) και να προτιμήσει κάποια, αν η τιμή που του προσφέρεται είναι ίση με: τη δική του+50. (Εδώ το όριό του είναι ). 3. Ο Initiator γνωρίζει ότι στο περιβάλλον στο οποίο δρα, υπάρχουν τρεις άλλοι πράκτορες (ο αριθμός μπορεί να ποικίλει). Επίσης γνωρίζει τα ονόματά τους (μπορεί να περιέχονται μέσα στον κώδικα ή με την «τροφοδοσία» του π.χ με ένα αρχείο txt). 4. Αφού γνωρίζει τα παραπάνω, ο Initiator στέλνει μηνύματα cfp των οποίων το περιεχόμενο είναι το είδος του υπολογιστή που θέλει να αγοράσει (π.χ laptop, desktop etc). Ο αριθμός των μηνυμάτων που θα στείλει καθορίζεται από πριν στον κώδικά του (εδώ 3 μηνύματα). 5. Οι τρεις participants έχουν φορτωμένα στη μνήμη εργασίας τους, κάποια facts με πληροφορίες για υπολογιστές που διαθέτουν (είδος π.χ laptop, desktop και την τιμή 200, 500 κλπ). Αυτό αποτελεί μέρος της στρατηγικής τους και δεν είναι γνωστό στον Initiator. 80ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

81 ΚΕΦΑΛΑΙΟ 5: ΣΥΝΔΕΣΗ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ΤΗΣ FIPA ΜΕ ΤΗΝ REACTION-RULEML Αλληλουχία Εκτέλεσης Κανόνων 1. Αρχικοποιήσεις γεγονότων (facts) για στρατηγική και πρωτόκολλο, για Initiator και Participant. 2. Initiator ΠΡΩΤΟΚΟΛΛΟ. Ο Initiator γνωρίζει πόσοι και ποιοι είναι οι Participants. Για το λόγο αυτό στέλνει ένα μήνυμα Call For Proposal (CFP) σε καθέναν από τους τρεις πράκτορες και περιμένει απάντηση. Το CFP μήνυμα, έχει σαν περιεχόμενό του το αντικείμενο που ενδιαφέρει τον Initiator. Στο συγκεκριμένο Case-Study το περιεχόμενο αυτό είναι το αλφαριθμητικό: laptop (μπορεί εν δυνάμει να είναι οτιδήποτε). 3. Participant - ΠΡΩΤΟΚΟΛΛΟ: Ο κάθε Participant πραγματοποιεί λήψη του εισερχόμενου μηνύματος, και αποθηκεύει στη μνήμη εργασίας του, τα στοιχεία του αποστολέα καθώς και το περιεχόμενο του μηνύματος (στο παράδειγμά μας το αλφαριθμητικό: laptop ). 4. Participant - ΣΤΡΑΤΗΓΙΚΗ: Ο κάθε Participant ψάχνει στη βάση γεγονότων του και (για το συγκεκριμένο παράδειγμα) a. Αν εκεί υπάρχει αποθηκευμένο γεγονός που να έχει το χαρακτηριστικό: laptop, προετοιμάζει την αποστολή (σε επόμενο κανόνα) ενός μηνύματος αποδοχής. Ουσιαστικά, αποθηκεύει στη μνήμη εργασίας του ένα γεγονός το οποίο μεταξύ άλλων περιέχει και την την τιμή στην οποία «προτίθεται να πουλήσει το laptop». b. Αν στη μνήμη εργασίας του δεν υπάρχει αποθηκευμένο γεγονός που να έχει το χαρακτηριστικό: laptop προετοιμάζει την αποστολή (σε επόμενο κανόνα) ενός μηνύματος απόρριψης με ανάλογο τρόπο. 5. Participant ΠΡΩΤΟΚΟΛΛΟ: Εφόσον έχει ολοκληρωθεί η λειτουργία των κανόνων στρατηγικής, ο Participant, ανακαλεί από τη μνήμη εργασίας του τις πληροφορίες που αποθηκεύτηκαν στην προηγούμενη φάση και πραγματοποιεί την αποστολή μηνυμάτων προς τον Initiator: a. Αποστέλλει ένα μήνυμα: PROPOSE κάνοντας αντιπρόταση στον Initiator με περιεχόμενο την τιμή στην οποία προτίθεται να το πουλήσει. Δηλαδή το περιεχόμενο της αντιπρότασης, είναι αριθμός (μια τιμή πώλησης) ή εναλλακτικά: b. Αποστέλλει ένα μήνυμα REFUSE (με βασικό περιεχόμενο το αλφαριθμητικό: DO NOT HAVE WHAT YOU WANT. 6. Initiator - ΠΡΩΤΟΚΟΛΛΟ Ο Initiator πραγματοποιεί λήψη των εισερχόμενων μηνυμάτων. Όμως, αποθηκεύει στη μνήμη εργασίας όλες τις πληροφορίες των «θετικών» μηνυμάτων (PROPOSE), μεταξύ των οποίων και την τιμή της αντιπρότασης από τον κάθε Participant. Την πληροφορία ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 81

82 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ αυτή θα τη χρησιμοποιήσει το τμήμα στρατηγικής του, για να αξιολογήσει τις προσφορές από τους Participants. Με την πληροφορία που περιέχουν τα μηνύματα REFUSE που λαμβάνει, δεν πραγματοποιεί καμιά ενέργεια. 7. Initiator - ΠΡΩΤΟΚΟΛΛΟ Κατά τη διαδικασία λήψης των PROPOSE ή REFUSE μηνυμάτων, ενεργοποιείται ένας κανόνας του τμήματος πρωτοκόλλου του Initiator, ο οποίος πραγματοποιεί έλεγχο για τον αριθμό τους. Αν το σύνολο είναι μεγαλύτερο από τον αριθμό των CFP που είχε αποστείλει αρχικά, σταματάει τη λήψη και αξιολόγηση μηνυμάτων και περνάει στην επόμενη φάση. Αυτό έρχεται σε συμφωνία με τις προδιαγραφές της FIPA για αξιολόγηση του αριθμού των εισερχόμενων μηνυμάτων από τον Initiator. Σημείωση: Στον προηγούμενο κανόνα, ο Initiator αποθήκευσε την πληροφορία των POPOSALS από τους Participants. Στους κανόνες της στρατηγικής που εκτελούνται σε αυτή τη φάση, θα πραγματοποιηθεί η αξιολόγηση αυτής της πληροφορίας. 8. Initiator ΣΤΡΑΤΗΓΙΚΗ (Επιλογή Participant με καλύτερη προσφορά): Σε πρώτη φάση, ο Initiator επιλέγει τον Participant του οποίου η τιμή είναι η χαμηλότερη. Αποθηκεύει τα στοιχεία αυτού του Participant με σκοπό να τον αξιολογήσει περεταίρω. 9. Initiator ΣΤΡΑΤΗΓΙΚΗ (Απόρριψη Participants των οποίων η προσφορά δε θεωρείται «συμφέρουσα»): Ο Initiator θεωρεί όλες τις προσφορές (πλην της φθηνότερης η οποία εντοπίστηκε στην προηγούμενη φάση) ως «μη συμφέρουσες» και αποθηκεύει τις πληροφορίες για κάθε ένα από αυτούς τους Participants σε γεγονότα στη μνήμη εργασίας με την ένδειξη ότι θα τροφοδοτήσουν την αποστολή μηνυμάτων απόρριψης (REJECT) από το τμήμα πρωτοκόλλου, παρακάτω. 10. Initiator ΣΤΡΑΤΗΓΙΚΗ (Έλεγχος της φθηνότερης προσφοράς του Participant): Στο σημείο αυτό πραγματοποιείται ένας έλεγχος στα στοιχεία του Participant που έχουν αποθηκευθεί πριν με την «ένδειξη» της φθηνότερης προσφοράς. Στο σενάριο αυτό η τιμή που επιθυμεί ο Initiator να αγοράσει έχει οριστεί στα 200 (αυτό δεν το γνωρίζει ο Participant) και σύμφωνα με τους κανόνες που έχουν δημιουργηθεί, θα κάνει αποδεκτή μια προσφορά η οποία θα είναι μικρότερη-ή-ίση με =250. Έτσι λοιπόν: a. Αν η «φθηνότερη» προσφορά είναι και «συμφέρουσα», τότε αποθηκεύονται στη μνήμη εργασίας όλες οι πληροφορίες για τον Participant με την «ένδειξη» ότι θα λάβει μέσω των κανόνων του πρωτοκόλλου- ένα μήνυμα ACCEPT. b. Αν η «φθηνότερη» προσφορά δεν κριθεί «συμφέρουσα», τότε αποθηκεύονται στη μνήμη εργασίας όλες οι πληροφορίες για τον 82ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

83 ΚΕΦΑΛΑΙΟ 5: ΣΥΝΔΕΣΗ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ΤΗΣ FIPA ΜΕ ΤΗΝ REACTION-RULEML Participant με την «ένδειξη» ότι θα λάβει μέσω των κανόνων του πρωτοκόλλου- ένα μήνυμα REJECT. 11. Initiator ΠΡΩΤΟΚΟΛΛΟ (Αποστολή μηνυμάτων ACCEPT και REJECT στους Participants): Εφόσον έχει προηγηθεί η αξιολόγηση των προσφορών στα προηγούμενα στάδια, εδώ ενεργοποιείται ένας κανόνας ο οποίος θα πραγματοποιήσει την αποστολή μηνυμάτων. Τα περιεχόμενα των μηνυμάτων αυτών, είναι ουσιαστικά τα περιεχόμενα των γεγονότων που έχουν αποθηκευθεί στη μνήμη εργασίας, από τους κανόνες της στρατηγικής που έκαναν την αξιολόγηση. Συνεπώς: a. Αν στη μνήμη βρεθεί γεγονός με περιεχόμενο ACCEPT, θα πραγματοποιηθεί προς τον συγκεκριμένο Participant η αποστολή μηνύματος ACCEPT-PROPOSAL με content την τιμή (π.χ 200) στην οποία ο Initiator δέχεται να αγοράσει το προϊόν (laptop). b. Αν στη μνήμη βρεθεί γεγονός με περιεχόμενο REJECT, θα πραγματοποιηθεί προς τον συγκεκριμένο Participant η αποστολή μηνύματος REJECT-PROPOSAL. Το content αυτού του μηνύματος θα είναι: i. Είτε το αλφαριθμητικό : ANOTHER ONE HAS BEEN CHOSEN αν πρόκειται για Participant που είχε κριθεί ως «ακριβός» εξ αρχής από τους κανόνες στρατηγικής. ii. Είτε το αλφαριθμητικό : YOU WHERE CHOSEN BUT YOUR PRICE IS TOO HIGH αν πρόκειται για τον Participant που ενώ αρχικά είχε κριθεί ως «φθηνός» από τους κανόνες στρατηγικής, στη συνέχεια -με τη δεύτερη αξιολόγηση- η στρατηγική έκρινε ότι η τιμή που προτείνει (και είναι η μικρότερη) τελικά δεν αντιπροσωπεύει την τιμή στην οποία μπορεί ο Initiator να «κλείσει» τη συμφωνία. 12. Participant ΠΡΩΤΟΚΟΛΛΟ (Λήψη εισερχόμενων ACCEPT ή REJECT μηνυμάτων). Σε αυτό το στάδιο ο Participant πραγματοποιεί τη λήψη των μηνυμάτων και αποθηκεύει στη μνήμη εργασίας μόνο τα ACCEPT-PROPOSAL μαζί με όλη την πληροφορία για τον αποστολέα τους. Σημείωση: Σύμφωνα με τον ορισμό της διαπραγμάτευσης από τη FIPA (βλ. παρ 5.2.1) από τη στιγμή που ο Participant παραλάβει ένα μήνυμα ACCEPT-PROPOSAL, αποκτά μια δέσμευση (commitment) προς τον Initiator ότι θα φέρει σε πέρας τη συμφωνία. 13. Participant ΣΤΡΑΤΗΓΙΚΗ. Για να εκπληρωθεί η δέσμευση του Participant προς τον Initiator, ο πρώτος ενεργοποιεί δύο κανόνες της στρατηγικής του. Αυτοί ελέγχουν αν όντως η τιμή αγοράς του προϊόντος (π.χ 200) η οποία αποτέλεσε το περιεχόμενο του μηνύματος ACCEPT- ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 83

84 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ PROPOSAL που ελήφθη λίγο νωρίτερα, συμφωνεί με την τιμή για το προϊόν που υπάρχει στη μνήμη του Participant και: a. Αν όντως η τιμή είναι σωστή, φορτώνεται στη μνήμη εργασίας ένα γεγονός το οποίο περιέχει όλη την πληροφορία για την αποστολή μηνύματος INFORM από έναν κανόνα του τμήματος πρωτοκόλλου του Participant, αμέσως μετά. b. Αν η τιμή δεν είναι σωστή, φορτώνεται στη μνήμη εργασίας ένα γεγονός το οποίο περιέχει όλη την πληροφορία για την αποστολή μηνύματος FAILURE ανάλογα με πριν. Σημείωση: Στο συγκεκριμένο σενάριο, η τιμή αυτή είναι όντως σωστή. Ο έλεγχος όμως επιβάλλεται από το specification της FIPA κυρίως για να αποφευχθούν λάθη σε περιπτώσεις δυσλειτουργίας κάποιας πλατφόρμας ή σε περιπτώσεις πολλαπλών ταυτόχρονων διαπραγματεύσεων. 14. Participant ΠΡΩΤΟΚΟΛΛΟ. Σε αυτό το στάδιο, που είναι και το τελευταίο της διαπραγμάτευσης, ανακαλούνται από τη μνήμη τα περιεχόμενα των γεγονότων που δημιουργήθηκαν στον προηγούμενο κανόνα και γίνεται αποστολή ενός μηνύματος προς τον Initiator. a. Το μήνυμα αυτό είναι INFORM ή FAILURE και όπως αναφέρθηκε, έχει καθοριστεί από το τμήμα της Στρατηγικής του Participant. Από την εικόνα που ακολουθεί καθίσταται πιο κατανοητό τόσο το σενάριο που μόλις παρουσιάστηκε, όσο και οι κανόνες που παρουσιάστηκαν στην προηγούμενη παράγραφο, καθώς σε αυτή φαίνεται συνοπτικά η ροή εκτέλεσης πυροδότησης των κανόνων σε μια πιθανή εφαρμογή των κανόνων στο ίδιο ή σε διαφορετικό σενάριο. Σημειώνεται ότι για κάθε κανόνα, επιλέχθηκε να παρουσιαστούν οι εξής πληροφορίες: Το όνομά του (με γραμματοσειρά χρώματος: κόκκινο) Το είδος του Παραγωγικός (Productive) - Αντιδραστικός(Reactive). Η βασική λειτουργία που επιτελεί. Αν ανήκει στο τμήμα Πρωτοκόλλου ή Στρατηγικής του κάθε πράκτορα. 84ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

85 ΚΕΦΑΛΑΙΟ 5: ΣΥΝΔΕΣΗ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ΤΗΣ FIPA ΜΕ ΤΗΝ REACTION-RULEML Εικόνα 17: Ροή εκτέλεσης για το FIPA Contract Net Interaction Protocol. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 85

86 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Στη συγκεκριμένη παράγραφο, έγινε μια προσπάθεια παρουσίασης του σεναρίου διαπραγμάτευσης πάνω στο οποίο στηρίχτηκε η υλοποίηση. Από αυτή, ο αναγνώστης μπορεί να διακρίνει την εναλλαγή μεταξύ του τμήματος πρωτοκόλλου και του τμήματος στρατηγικής τόσο για τον Initiator όσο και για τους Participants. Στην παράγραφο που ακολουθεί, θα παρουσιαστούν τα πιο βασικά γεγονότα (facts) η χρήση των οποίων αποτελεί σημείο-κλειδί στο όλο εγχείρημα της αναπαράστασης του FIPA Contract-Net σε R-RuleML. 5.7 ΓΕΓΟΝΟΤΑ Γεγονότα Initiator Τα γεγονότα του συνόλου κανόνων του Initiator, θα μπορούσαμε να τα κατατάξουμε σε δύο κατηγορίες: A. Γεγονότα τα οποία εισάγονται στη μνήμη εργασίας στην αρχή και είναι : 1. Βασικά γεγονότα τα οποία ουσιαστικά «αρχικοποιούν» τη διαπραγμάτευση και χρησιμοποιούνται είτε από το τμήμα πρωτοκόλλου είτε από αυτό της στρατηγικής του πράκτορα για την ολοκλήρωση της διαδικασίας: o (deftemplate convn_id (slot c_id)) Ένας μοναδικός αριθμός που θα χαρακτηρίζει το διάλογο. Η χρήση του επιβάλλεται από τις προδιαγραφές της FIPA μιας και εξασφαλίζει: Την επικοινωνία του Initiator - σχετικά με μια συγκεκριμένη διαπραγμάτευση μόνο με Participants οι οποίοι ασχολούνται με τη συγκεκριμένη διαπραγμάτευση (δηλ στέλνουν μηνύματα με την ίδια τιμή του συγκεκριμένου αναγνωριστικού). Τη δυνατότητα των πρακτόρων να συμμετέχουν σε περισσότερες από μια διαπραγματεύσεις ταυτόχρονα (οι οποίες θα χαρακτηρίζονται από διαφορετικό conv_id), εξαλείφοντας τον κίνδυνο ανταλλαγής μηνυμάτων με λάθος τρόπο. Ο αριθμός αυτός αποθηκεύεται σα γεγονός στη μνήμη εργασίας με το fact αυτό (conv_id στο slot c_id), και αν παρατηρήσει κανείς το σύνολο των κανόνων, (βλ παράρτημα) θα συμπεράνει ότι ουσιαστικά τα περισσότερα γεγονότα που εισάγονται στη μνήμη εξάγονται από αυτή κατά τη διάρκεια της εκτέλεσης των κανόνων, χρησιμοποιούν ένα όρισμα το οποίο φέρει σαν τιμή την τιμή αυτού του αναγνωριστικού. Πιο συγκεκριμένα, η διαδικασία που ακολουθείται είναι η εξής: Στον κανόνα conversation_id_assertion εισάγεται η τιμή που θα χαρακτηρίζει μοναδικά το διάλογο. Η τιμή αυτή, στον κανόνα που εκτελείται ακολούθως, και είναι ο facts_assertion, «φορτώνεται» σε όλα τα facts που αρχικοποιούνται στο δεξί μέρος αυτού του κανόνα. Κατά συνέπεια, οποιεσδήποτε αλλαγές κατάστασεις, 86ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

87 ΚΕΦΑΛΑΙΟ 5: ΣΥΝΔΕΣΗ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ΤΗΣ FIPA ΜΕ ΤΗΝ REACTION-RULEML εισαγωγές/εξαγωγές γεγονότων και ανταλλαγές μηνυμάτων που λαμβάνουν χώρα από αυτό το σημείο και έπειτα, χαρακτηρίζονται από αυτό το αναγνωριστικό, εξασφαλίζοντας όπως έχουμε ήδη αναφέρει, και την ορθότητα της συναλλαγής αλλά και την περίπτωση ασύγχρονης επικοινωνίας. o o o (deftemplate callfact (slot call) (slot call_id)) (Στρατηγική). Ένα γεγονός το οποίο αποτελεί το περιεχόμενο της διαπραγμάτευσης. Θα χρησιμοποιηθεί σαν content του μηνύματος για το Call-For-Proposals (CFP) και στην ουσία θα πυροδοτήσει κανόνες των Participants οι οποίοι θα συγκρίνουν αυτό το content με γεγονότα που έχουν αποθηκευμένα στη μνήμη εργασίας τους για να πραγματοποιηθεί η ανταλλαγή μηνυμάτων. Όπως μπορεί να διακρίνει κανείς, το δεύτερο slot του, αφορά το μοναδικό αναγνωριστικό διαλόγου την τιμή του οποίου παίρνει στην αρχή και για κάθε διάλογο τη διατηρεί μέχρι το τέλος του. (deftemplate price_wanted (slot price) (slot price_id)) (Στρατηγική). Η τιμή στην οποία επιθυμεί ο Initiator να αγοράσει. Στην ουσία το περιεχόμενο αυτού του γεγονότος αποτελεί μια δικλείδα διαπραγμάτευσης και εδώ ορίζεται από την αρχή για να θέσει (σε συνδυασμό με το προηγούμενο fact, το callfact) το πλαίσιο ενός case-study σύμφωνα με το οποίο ο Initiator «επιθυμεί» να βρει ένα συγκεκριμένο προϊόν (call) σε συγκεκριμένη τιμή (price). Στη γενίκευση του ζητήματος το περιεχόμενο των δύο τελευταίων γεγονότων θα μπορούσε να αντιπροσωπεύει οτιδήποτε εξυπηρετεί τις «επιθυμίες» του Initiator (π.χ call laptop και price 200). Και σε αυτό το fact υπάρχει το slot: price_id, για να φέρει το μοναδικό αναγνωριστικό του κάθε διαλόγου. (deftemplate num_of_participants (slot nofp) (slot num_of_p_id)) (Πρωτόκολλο). Ο αριθμός των μηνυμάτων τα οποία θα αξιολογήσει ο Initiator. Αυτό δηλώνεται εδώ για να χρησιμοποιηθεί στον κανόνα: "stop" (βλ. παράρτημα ΙΙΙ) όπου γίνεται έλεγχος του συνολικού αρ. μην που παρέλαβε ο Initiator. Στην ουσία, όταν κατά την εκτέλεση της αλληλουχίας των κανόνων ο Initiator αντιληφθεί ότι έλαβε τον αριθμό μηνυμάτων που ορίζονται από αυτή την παράμετρο, σταματάει την αξιολόγηση τυχόν επιπλέον εισερχόμενων και προχωράει στην αξιολόγηση αυτών που έχει παραλάβει και αποθηκεύσει, δίνοντας τη σκυτάλη στους κανόνες που υλοποιούν τη στρατηγική του. Βέβαια, η όλη διαδικασία υποστηρίζεται από τα βοηθητικά facts count_proposals και count_refusals που παρουσιάζονται παρακάτω, καθώς και με τη χρήση του fact initiator_state (το οποίο επίσης παρουσιάζεται παρακάτω). Σε αυτό το fact υπάρχει το slot: num_of_p_id για να φέρει το μοναδικό αναγνωριστικό του κάθε διαλόγου. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 87

88 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ 2. Γεγονότα τα οποία περιέχουν τη διεύθυνση των Participants στους οποίους θα γίνει η αποστολή των CFP μηνυμάτων και οι οποίοι συμμετέχουν στη διαπραγμάτευση. Οι Participants που συμμετέχουν στο διάλογο: (deftemplate participant (slot name)) 3. Γεγονότα - Μετρητές για την καταμέτρηση των Proposals και Refusals που θα δεχτεί ο Initiator από τους Participants στους οποίους θα στείλει το Call- For-Proposals (CFP). Η καταμέτρηση δε, των Proposals και Refusals επιβάλλεται από τις προδιαγραφές της FIPA για να σταματάει ο Initiator την αξιολόγηση μηνυμάτων πλέον του αριθμού CFP που έχει στείλει: (deftemplate count_proposals (slot COUNT_PROP) (slot prop_id)) Βοηθητικό fact για την καταμέτρηση των proposals. Στο slot prop_id θα αποθηκεύεται το αναγνωριστικό διαλόγου. (Πρωτόκολλο). (deftemplate count_refusals (slot COUNT_REF) (slot ref_id)) Βοηθητικό fact για την καταμέτρηση των refusals. Στο slot ref_id θα αποθηκεύεται το αναγνωριστικό διαλόγου. (Πρωτόκολλο). 4. Ένα γεγονός το οποίο παίζει το ρόλο διακόπτη (switch) και αποτελεί βασικό ρυθμιστή της ροής εκτέλεσης των κανόνων: (deftemplate initiator_state (slot state) (slot state_id)) Αρχικά η τιμή που φορτώνεται στο slot state, είναι το αλφαριθμητικό: strategy_state. Αυτό λαμβάνει χώρα στον κανόνα conversation_id_assertion στον οποίο αρχικοποιείται και το μοναδικό αναγνωριστικό διαλόγου (με το assertion του fact: conv_id) όπως έχει αναφερθεί και παραπάνω. Ουσιαστικά, η αρχικοποίηση του fact: initiator_state σε αυτόν εδώ τον κανόνα, θα πυροδοτήσει την εκτέλεση πρώτα του κανόνα strategy_facts_assertion και στη συνέχεια όλων των κανόνων του Initiator με τη σειρά που πρέπει να εκτελεστούν. Οι τιμές που θα πάρει κατά τη διάρκεια εκτέλεσης όλων των κανόνων από δω και πέρα, είναι: zero_state, start_state, qualification_state, qualification_expensive_state, send_messages_state. Η αλλαγή κατάστασης του slot: state, αυτού του γεγονότος ουσιαστικά: o Είτε πυροδοτεί (triggers) Reactive κανόνες με τη σειρά που είναι επιθυμητή για την υλοποίηση του μέρους που αφορά το τμήμα Πρωτοκόλλου του Initiator. o Είτε προκαλεί την εναλλαγή ανάμεσα στο τμήμα Πρωτοκόλλου και στο τμήμα κανόνων της Στρατηγικής του Initiator. o Είτε προάγει την ενεργοποίηση των Productive κανόνων με τη σειρά που είναι επιθυμητή για την υλοποίηση του μέρους που αφορά το τμήμα Στρατηγικής του Initiator. 88ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

89 ΚΕΦΑΛΑΙΟ 5: ΣΥΝΔΕΣΗ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ΤΗΣ FIPA ΜΕ ΤΗΝ REACTION-RULEML Ενδιάμεσα γεγονότα Χρησιμοποιούνται βοηθητικά για την αποθήκευση στοιχείων της διαπραγμάτευσης κατά τη διάρκεια της υλοποιούμενης στρατηγικής από τον πράκτορα που παίζει το ρόλο του Initiator. Είναι τα παρακάτω: (deftemplate call (slot call_act) (slot call_receiver) (slot call_content) (slot in_cid)) Αυτό το fact χρησιμοποιείται από τον κανόνα prepare_call για να προετοιμαστούν τα περιεχόμενα του CFP που θα σταλούν με τον επόμενο κανόνα: send_call. Ουσιαστικά γίνονται τρεις αποθηκεύσεις αυτού του fact με περιεχόμενα τις διευθύνσεις των τριών participants που θα λάβουν CFP και τα περιεχόμενα αυτών των μηνυμάτων. (deftemplate incomingmessages (slot in_act) (slot in_sender) (slot in_content) (slot in_cid)) Εδώ θα αποθηκεύονται τα εισερχόμενα από τους Participant μηνύματα με την απάντηση στο CFP. Με λίγα λόγια πραγματοποιείται αποθήκευση του περιεχομένου του εισερχόμενου μηνύματος (PROPOSE ή REFUSE) στο slot in_act, η διεύθυνση του αποστολέα στο slot in_sender, το περιεχόμενο του εισερχόμενου μηνύματος στο slot in_content και το μοναδικό αναγνωριστικό του διαλόγου στο slot in_cid. Η διεργασία αυτή λαμβάνει χώρα στα τμήματα ενεργειών των κανόνων: receive_and_store_incoming_proposals και receive_and_store_incoming_refusals. Η χρήση αυτού του fact δε σταματά εδώ. Στη συνέχεια, τα περιεχόμενά όλων εκείνων των incomingmessages facts τα οποία έχουν slot: in_act με τιμή PROPOSE (τα REFUSE δεν ενδιαφέρουν πλέον τον Participant), αξιολογούνται στο τμήμα συνθηκών των κανόνων: define_cheaper_participant και define_expensive_participant. Ο πρώτος κανόνας εξετάζει όλα τα facts incomingmessages και αυτό του οποίου το slot:in_content έχει τη μικρότερη τιμή (και άρα θεωρείται η φθηνότερη προσφορά) αποθηκεύεται στο fact: intermediate (που παρουσιάζεται αμέσως μετά). (deftemplate intermediate (slot interm_act) (slot interm_receiver) (slot interm_content) (slot interm_cid)) Το συγκεκριμένο fact θα χρησιμοποιηθεί σαν ενδιάμεσο για προσωρινή αποθήκευση των στοιχείων του Participant ο οποίος θεωρήθηκε ότι έκανε την καλύτερη προσφορά. Δηλ ο Initiator, με τον κανόνα: define_cheaper_participant, αποθηκεύει στο intermediate fact τις πληροφορίες που απαιτούνται. Ουσιαστικά στο slot: interm_act αποθηκεύεται το αλφαριθμητικό INTERMEDIATE, στο slot: interm_receiver αποθηκεύεται η διεύθυνση αυτού που θεωρείται φθηνότερος, στο slot: interm_content το περιεχόμενο του «φθηνότερου» και στο slot: interm_cid το αναγνωριστικό του διαλόγου. Ο Participant που επιλέγεται ως φθηνότερος, θα αξιολογηθεί στη συνέχεια με την εφαρμογή των κανόνων qualify_cheaper_choose και qualify_cheaper_reject στη λογική του αν αυτή που είναι η καλύτερη προσφορά ανταποκρίνεται στα κριτήρια που θεσπίζονται στη στρατηγική του Initiator ώστε να γίνει αποδοχή του ή απόρριψή του. (deftemplate send_final_reply (slot final_act) (slot final_receiver) (slot final_content) (slot final_cid)) Το fact στο οποίο αποθηκεύεται όλη η πληροφορία που θα χρησιμοποιηθεί από το τμήμα Πρωτοκόλλου για την τελική αποστολή μηνυμάτων. Συγκεκριμένα στο ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 89

90 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ slot: final_act αποθηκεύεται το αλφαριθμητικό που θα χαρακτηρίσει το τελικό μήνυμα, δηλαδή ACCEPT-PROPOSAL ή REJECT-PROPOSAL. Στο slot: final_receiver η διεύθυνση του τελικού παραλήπτη, στο slot: final_content το περιεχόμενο του μηνύματος που θα σταλεί και στο slot: final_cid το αναγνωριστικό του διαλόγου. Αρχικά η μνήμη εργασίας αρχίζει να γεμίζει με γεγονότα αυτού του τύπου, κατά την εκτέλεση του κανόνα: define_expensive_participant με την εκτέλεση του οποίου γίνεται πέρασμα της πληροφορίας όσων γεγονότων incomingmessages (από πριν) χαρακτηρίζουν τους «ακριβούς» Participants. Τα γεγονότα που αποθηκεύονται σε αυτή τη φάση, έχουν τιμή για το slot: final_act το αλφαριθμητικό: REJECT-PROPOSAL ενώ για το slot: final_content το αλφαριθμητικό: ANOTHER_ONE_HAS_BEEN_CHOSEN. Στη συνέχεια εκτελούνται οι κανόνες: qualify_cheaper_choose και qualify_cheaper_reject και αν η τιμή που υπάρχει στη μνήμη εργασίας του Initiator στο fact: price_wanted (που περιγράφηκε πιο πάνω) είναι μικρότερη ή ίση από την τιμή που περιέχεται στο slot: interm_content του fact: intermediate, τότε τα περιεχόμενα του Interm_content μεταφέρονται στο send_final_reply με τιμές για το slot: final_act το αλφαριθμητικό: ACCEPT-PROPOSAL ενώ για το slot: final_content την τιμή στην οποία θα κλείσει η διαδικασία, ενώ αν η τιμή που υπάρχει στη μνήμη εργασίας του Initiator στο fact: price_wanted (που περιγράφηκε πιο πάνω) είναι μεγαλύτερη από την τιμή που περιέχεται στο slot: interm_content του fact: intermediate, τότε τα περιεχόμενα του Interm_content μεταφέρονται στο send_final_reply με τιμές για το slot: final_act το αλφαριθμητικό: REJECT- PROPOSAL ενώ για το slot: final_content το αλφαριθμητικό: YOU_WHERE_CHOSEN_BUT_YOUR_PRICE_IS_TOO_HIGH Γεγονότα Participant Τα γεγονότα, θα μπορούσαμε να τα κατατάξουμε σε δύο κατηγορίες: Γεγονότα τα οποία εισάγονται στη μνήμη εργασίας στην αρχή 1. Ένα βασικό γεγονός το οποίο αποτελεί την «αποθήκη» κάθε Participant. Για τη συγκεκριμένη υλοποίηση αποτελείται από δύο slots, ένα για την περιγραφή κάποιου προϊόντος (στην περίπτωσή μας laptop ή desktop κλπ) και ένα δεύτερο για την αποθήκευση της τιμής πώλησης του συγκεκριμένου προϊόντος. Το περιεχόμενό του παραμένει αμετάβλητο κατά τη διάρκεια εκτέλεσης των κανόνων. Σημειώνεται ότι σε μια διαφοροποίηση του σεναρίου αλληλεπίδρασης, θα μπορούσαν να εισαχθούν στη μνήμη εργασίας του participant περισσότερα από ένα, τέτοιου είδους facts τα οποία μπορούν να «φέρουν» ίδια ή διαφορετικά περιεχόμενα. (Στρατηγική). (deftemplate products (slot type) (slot price)) 2. Ένα γεγονός το οποίο παίζει το ρόλο διακόπτη (switch) και αποτελεί βασικό ρυθμιστή της ροής εκτέλεσης των κανόνων. Αρχικά παίρνει την τιμή p_start_state ενώ κατά τη διάρκεια της εκτέλεσης θα πάρει τις τιμές: 90ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

91 ΚΕΦΑΛΑΙΟ 5: ΣΥΝΔΕΣΗ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ΤΗΣ FIPA ΜΕ ΤΗΝ REACTION-RULEML p_check_state, send_intermediate_state, check_acceptance, send_final_reply. Η αλλαγή της τιμής του slot: state αυτού του γεγονότος, όπως και στην περίπτωση του Initiator, είτε πυροδοτεί αντιδραστικούς κανόνες του τμήματος Πρωτοκόλλου με την επιθυμητή σειρά, είτε προκαλεί την εναλλαγή ανάμεσα στο τμήμα Πρωτοκόλλου και στο τμήμα κανόνων της Στρατηγικής, είτε προάγει την υλοποίηση της Στρατηγικής του Participant ενεργοποιώντας τους Productive κανόνες με την επιθυμητή σειρά. Και πάλι, όπως στην περίπτωση του Initiator, το slot: state_id αυτού του γεγονότος, χαρακτηρίζει με μια μοναδική τιμή το διάλογο. Η πρώτη φορά που θα πάρει τιμή, θα είναι στο τμήμα ενεργειών του κανόνα: receive_cfp, όπου και θα «φορτωθεί» με την τιμή του slot: conversation_id του εισερχόμενου μηνύματος CFP που λαμβάνει ο Participant από τον Initiator. Έκτοτε και μέχρι την ολοκλήρωση κάθε διαλόγου, το γεγονός Participant_state θα έχει τιμή state_id σταθερή για τη διάρκεια αυτού του διαλόγου. (deftemplate participant_state (slot state) (slot state_id)) Ενδιάμεσα γεγονότα Χρησιμοποιούνται βοηθητικά για την αποθήκευση στοιχείων της διαπραγμάτευσης κατά τη διάρκεια της υλοποιούμενης στρατηγικής από τον πράκτορα Participant. Σημειώνεται ότι σε ένα slot καθενός από τα ενδιάμεσα γεγονότα, αποθηκεύεται το αναγνωριστικό διαλόγου (conversation_id) για τους λόγους που αναφέρθηκαν και πιο πάνω, δηλ για να εξασφαλίζεται η ασύγχρονη επικοινωνία μεταξύ των πρακτόρων και η διαδικασία να αφορά την ίδια διαπραγμάτευση. Τα ενδιάμεσα γεγονότα λοιπόν είναι τα παρακάτω: 1. (deftemplate callforp (slot cfp_content) (slot cfp_sender) (slot cfp_cid)) Το συγκεκριμένο fact χρησιμοποιείται για να αποθηκεύει ο Participant τα στοιχεία για κάθε μήνυμα CFP που δέχεται, στον κανόνα receive-cfp του πρωτοκόλλου. Πιο συγκεκριμένα αποθηκεύονται το περιεχόμενο του CFP μηνύματος, η διεύθυνση του αποστολέα, καθώς και το αναγνωριστικό του διαλόγου στο slot cfp_cid. Στη συνέχεια χρησιμοποιείται από τους κανόνες check_cfp1 και check_cfp2 της στρατηγικής ώστε να αξιολογηθεί η επόμενη κίνηση του Participant. Τα αποτελέσματα της αξιολόγησης αποθηκεύονται στο ενδιάμεσο fact send_intermediate το οποίο παρουσιάζεται αμέσως μετά. 2. (deftemplate send_intermediate (slot intermediate_act) (slot intermediate_content) (slot intermediate_receiver) (slot intermediate_cid)) Το fact αυτό χρησιμοποιείται αρχικά, από κανόνες της στρατηγικής για να αποθηκεύει πληροφορίες σχετικά με την αποστολή του πρώτου μηνύματος από τον Participant. Πιο αναλυτικά, στο slot intermediate_act θα αποθηκευθεί ο τύπος του μηνύματος που θα αποφασίσει η στρατηγική, δηλ PROPOSE ή REFUSE, στο slot intermediate_content θα αποθηκευθεί αντίστοιχα το περιεχόμενο του μην που θα σταλεί από τους κανόνες πρωτοκόλλου, στο slot intermediate_receiver θα αποθηκευθεί η διεύθυνση του παραλήπτη του μηνύματος και τέλος στο slot intermediate_cid αποθηκεύεται το αναγνωριστικό του διαλόγου. Στη συνέχεια τα περιεχόμενα ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 91

92 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ αυτού του fact χρησιμοποιούνται από τον κανόνα send_proposal_or_refusal του πρωτοκόλλου, για την αποστολή του αντίστοιχου μηνύματος PROPOSE ή REFUSE στον Initiator. 3. (deftemplate acceptance (slot acceptance_content) (slot acceptance_sender) (slot acceptance_cid)) Το fact αυτό χρησιμοποιείται από τον κανόνα receive_acceptance του πρωτοκόλλου για να αποθηκεύει πληροφορίες σχετικά το μήνυμα ACCEPT- PROPOSAL που πιθανώς να στείλει ο Initiator στον Participant. Πιο αναλυτικά, στο slot acceptance_content αποθηκεύεται το περιεχόμενο ενός εισερχόμενου μηνύματος ACCEPT, στο slot acceptance_sender αποθηκεύεται η διεύθυνση του αποστολέα αυτού του μηνύματος, ενώ στο slot acceptance_id αποθηκεύεται το μοναδικό αναγνωριστικό διαλόγου. Έπειτα τα περιεχόμενά του χρησιμοποιούνται αξιολογούνται από τους κανόνες check_acceptance1 και check_acceptance2 της στρατηγικής ώστε να γίνει αξιολόγηση για το ποια θα είναι η περεταίρω ενέργεια του Participant, αν θα αποσταλεί ως τελική απάντηση INFORM ή FAILURE και τα αποτελέσματα αποθηκεύονται στο fact send_final_reply του οποίου η περιγραφή ακολουθεί. 4. (deftemplate send_final_reply (slot final_act) (slot final_content) (slot final_receiver) (slot final_cid)) Τέλος, το fact send_final_reply χρησιμοποιείται από κανόνες του πρωτοκόλλου ως εξής: ο Participant πολύ απλά θα αποστείλει ένα μήνυμα στον Initiator του οποίου τα περιεχόμενα τα «αντλεί» από το συγκεκριμένο fact. Αν περιέχεται INFORM, στέλνει INFORM, ενώ αν περιέχεται FAILURE, στέλνει FAILURE. 5.8 ΑΛΛΗΛΕΠΙΔΡΑΣΗ ΤΩΝ ΠΡΑΚΤΟΡΩΝ Για να γίνει πιο καλά αντιληπτή η αλληλουχία ενεργοποίησης κανόνων μεταξύ του Initiator και του Participant με βάση την αλλαγή κατάστασης γεγονότων, παρατίθεται η εικόνα που ακολουθεί η οποία ουσιαστικά αποτελεί συμπλήρωμα της εικόνας 17. Η διαφορά των δύο εικόνων συνίσταται στο ότι σε αυτή που παρουσιάζεται εδώ, εκτός από το όνομα, το είδος, και τη λειτουργία κάθε κανόνα, παρουσιάζεται το γεγονός που ενεργοποιεί τους αντιδραστικούς και η βασική συνθήκη που ενεργοποιεί την εκτέλεση των παραγωγικών. Και στις δύο περιπτώσεις η βασική συνιστώσα είναι η μεταβολή της τιμής του ορίσματος: state των facts: Initiator_ state και Participant_state για τον Initiator και Participant αντίστοιχα, κατά τη διάρκεια εκτέλεσης των κανόνων. Με τον τρόπο αυτό γίνεται καλύτερα κατανοητός από τον αναγνώστη ο βασικός ρόλος αυτών των δύο facts στην ορθή σειρά ενεργοποίησης των κανόνων. Αξίζει να σημειωθεί ότι τους αντιδραστικούς κανόνες τους ενεργοποιεί όντως η αλλαγή της τιμής του ορίσματος state, ενώ οι παραγωγικοί εκτελούνται αν εκπληρώνεται μια αλληλουχία συνθηκών, μεταξύ των οποίων και η τιμή αυτού του ορίσματος. Παρόλα αυτά όλοι οι κανόνες έχουν σχεδιαστεί να πυροδοτούνται ενεργοποιούνται με τη μεταβολή της τιμής αυτού του ορίσματος και στις περισσότερες περιπτώσεις (όπου αυτό ήταν απαραίτητο) να τη μεταβάλλουν, ενεργοποιώντας ή πυροδοτώντας νέους κανόνες. 92ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

93 ΚΕΦΑΛΑΙΟ 5: ΣΥΝΔΕΣΗ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ΤΗΣ FIPA ΜΕ ΤΗΝ REACTION-RULEML Εικόνα 18: Η σειρά με την οποία ενεργοποιούνται οι κανόνες στον Initiator και τον Participant και το πέρασμα από τη στρατηγική στο πρωτόκολλο και αντίστροφα. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 93

94

95 ΚΕΦΑΛΑΙΟ 6: XSL ΜΕΤΑΤΡΟΠΗ ΤΩΝ ΚΑΝΟΝΩΝ ΑΠΟ REACTION-RULEML ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ JESS Κ Ε Φ Α Λ Α Ι Ο 6 : Μ Ε Τ ΑΤ Ρ Ο Π Η Τ Ω Ν Κ Α Ν Ο Ν Ω Ν Α ΠΟ R E A C T I O N - R U L E ML Σ Ε Σ Υ Ν Ο Λ Α Κ Α Ν Ο Ν Ω Ν J E S S

96

97 ΚΕΦΑΛΑΙΟ 6: XSL ΜΕΤΑΤΡΟΠΗ ΤΩΝ ΚΑΝΟΝΩΝ ΑΠΟ REACTION-RULEML ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ JESS XSL ΜΕΤΑΤΡΟΠΗ ΤΩΝ ΚΑΝΟΝΩΝ ΑΠΟ REACTION-RULEML ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ JESS 6.1 ΕΙΣΑΓΩΓΗ Για να πραγματοποιηθούν δοκιμές του σεναρίου αλληλεπίδρασης που έχει περιγραφεί στην παράγραφο 5.6 (όπως και άλλων σεναρίων), πάνω στην πλατφόρμα ανάπτυξης ευφυών πρακτόρων EMERALD (που έχει αναπτυχθεί από την ερευνητική ομάδα LPIS), είναι απαραίτητη η μετατροπή των κανόνων που σχεδιάστηκαν για το πρωτόκολλο FIPA-Contract-Net από τη R-RuleML μορφή τους, σε κανόνες JESS/Clips[25]. Για τη μετατροπή αυτή, (όπως έχει ήδη αναφερθεί στην παράγραφο 5.3.2) απαιτήθηκε η δημιουργία ενός XSLT εγγράφου[26] - με χρήση του οποίου γίνεται ο μετασχηματισμός. Η εργασία αυτή ήταν ιδιαίτερα απαιτητική, μιας και το XSLT έγγραφό πρέπει να «εναρμονίσει» τη λειτουργία του με το συντακτικό της συγκεκριμένης γλώσσας κανόνων, στο επίπεδο πάντα του συγκεκριμένου προβλήματος που αντιμετωπίστηκε. Με λίγα λόγια το XSLT έγγραφο αναγνωρίζει και μετατρέπει σωστά όλες εκείνες τις δομές που χρησιμοποιήθηκαν στην αναπαράσταση του πρωτοκόλλου. Σχηματικά, τα παραπάνω συνοψίζονται στην εικόνα που ακολουθεί: Εικόνα 19: Βασική αναπαράσταση της XSL μετατροπής Ακολουθεί η ανάλυση των βασικότερων δομών του XSLT εγγράφου και των ενεργειών που εκτελούνται από αυτές: ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 97

98 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ 6.2 Η ΔΟΜΗ ΤΟΥ XSLT ΕΓΓΡΑΦΟΥ Template: RuleML <xsl:template match="n:ruleml"> <xsl:apply-templates select="n:assert "/> </xsl:template> Στο πρώτο αυτό τμήμα του XSLT αρχείου, εφαρμόζεται στο xml έγγραφο το template RuleML το οποίο με τη σειρά του περιέχει την εφαρμογή του template Assert. Έτσι υπάρχει συνάφεια με το συντακτικό της R-RuleML (βλ. παράρτημα IV) Το template Assert είναι ένα από τα πιο βασικά templates του xslt εγγράφου, μιας και η παρουσία του είναι απαραίτητη τόσο στην εισαγωγή κανόνων, όσο και γεγονότων (facts). Η μορφή του είναι η εξής: Template: Assert <xsl:template match="n:assert"> <xsl:if test="n:rule"> <xsl:apply-templates select="n:rule"/> </xsl:if> <xsl:if test="n:atom">(assert<xsl:apply-templates select="n:atom"/>) </xsl:if> </xsl:template> Η λειτουργία του template Asssert, έχει να κάνει με δύο ελέγχους. Στον πρώτο ελέγχεται η ύπαρξη κανόνα οπότε εφαρμόζεται το template Rule, ενώ στο δεύτερο η ύπαρξη Atom οπότε, αφού προστεθεί το απαραίτητο κείμενο για τη σωστή εμφάνιση του κανόνα στα πρότυπα JESS, εφαρμόζεται το template Atom. Η δομή των δύο templates που αναφέρθηκαν, παρουσιάζεται και αναλύεται αμέσως πιο κάτω: Template: Rule <xsl:template match="n:rule"> (defrule <xsl:if test="n:oid/n:ind"> <xsl:apply-templates select="n:oid/n:ind"/> </xsl:if> <xsl:if test="not(n:oid/n:ind)"> <xsl:text> r "Unknown Rule Name"</xsl:text> </xsl:if> <xsl:text> </xsl:text> <xsl:apply-templates select="n:on"/> <xsl:apply-templates select="n:if"/> <xsl:apply-templates select="n:do"/> ) </xsl:template> Όπως μπορεί να παρατηρήσει κανείς, υπάρχουν προσθήκες κειμένου όπου αυτό είναι απαραίτητο. Επιπλέον πραγματοποιείται ένας έλεγχος για το όνομα ουσιαστικά του κανόνα, το οποίο στη R-RuleML περικλείεται στο πεδίο <oid> </oid>. Αν υπάρχει όνομα τότε εφαρμόζεται το template oid/ind το οποίο ουσιαστικά εμφανίζει 98 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

99 ΚΕΦΑΛΑΙΟ 6: ΜΕΤΑΤΡΟΠΗ ΤΩΝ ΚΑΝΟΝΩΝ ΑΠΟ REACTION-RULEML ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ JESS τα ind περιεχόμενα του αντίστοιχου πεδίου R-RuleML. Αν δεν υπάρχει, εμφανίζεται το αλφαριθμητικό: Unknown Rule Name. Στη συνέχεια στον κανόνα εφαρμόζονται templates για τη σωστή μετατροπή των on, if και do, των μόνων δομών που χρησιμοποιούν οι κανόνες που έχουν κατασκευαστεί για την παρούσα υλοποίηση και που ορίζονται από το συντακτικό της R-RuleML. Τα templates αυτά είναι: Template: on <xsl:template match="n:on"> <xsl:apply-templates select="n:atom n:message"/> </xsl:template> Το template on εφαρμόζει δύο templates, τα: Atom και Message. Ο λόγος είναι και πάλι το συντακτικό του επιπέδου Reaction Rule το οποίο και υπαγορεύει τη χρήση μηνυμάτων στη δομή on, κάτι στο οποίο στηρίχθηκε όλη η υλοποίηση Template: Atom Το template Atom έχει τη μορφή: <xsl:template match="n:atom"> <xsl:if test="n:oid/n:var and count(./*)>1"> <xsl:apply-templates select="n:oid/n:var"/> <xsl:text>(</xsl:text><xsl:apply-templates select="n:rel n:op"/> <xsl:apply-templates select="n:slot n:ind n:var"/>) </xsl:if> <xsl:if test="not(n:oid/n:var)"> <xsl:text>(</xsl:text><xsl:if test="n:oid/n:ind"> <xsl:apply-templates select="n:oid/n:ind"/> </xsl:if> <xsl:apply-templates select="n:rel n:op"/> <xsl:apply-templates select="n:slot n:ind n:var"/> <xsl:if test="name(..)='assert'"><xsl:text>)</xsl:text></xsl:if> <xsl:if test="not(name(..)='assert')">) </xsl:if> </xsl:if> </xsl:template> Το Atom στη Reaction RuleML το χρησιμοποιήθηκε για να αναπαραστήσει την έννοια του γεγονότος (fact στο JESS). Στην αναπαράσταση αυτή, η δομή Rel της R- RuleML αντιπροσωπεύει την ονομασία του fact, ενώ η έννοια και τα περιεχόμενα του slot περιγράφονται από δομές <Ind> και <Var>. Στην εικόνα που ακολουθεί, φαίνεται η μετατροπή του τμήματος κανόνα που περιγράφει την εισαγωγή ενός γεγονότος στη μνήμη εργασίας, από τη μορφή R-RuleML με τη βοήθεια του xsl μετασχηματισμού, στη μορφή JESS: ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 99

100 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Εικόνα 20: Μετατροπή εισαγωγής γεγονότος (Atom) της R-RuleML σε εισαγωγή γεγονότος (fact) κανόνων του JESS Τι γίνεται όμως στις περιπτώσεις που απαιτείται να γίνει ανάθεση του fact-index ενός συγκεκριμένου γεγονότος σαν τιμή σε κάποια μεταβλητή στο αριστερό τμήμα κανόνα, ώστε να γίνει μεταβολή των περιεχομένων του, στο δεξί τμήμα του ίδιου κανόνα; Με λίγα λόγια είναι επιθυμητό να πραγματοποιηθούν μέσω του xslt εγγράφου οι παρακάτω μετασχηματισμοί: Εικόνα 21: Μετατροπή ανάθεσης τιμής του Fact-index ενός γεγονότος σε μια μεταβλητή, από τη R-RuleML στο JESS. Για την αναπαράσταση αυτών των ενεργειών στη R-RuleML, κλειδί είναι πάλι η έννοια του <oid> (του οποίου η χρήση είναι προαιρετική από το συντακτικό της Reaction RuleML), γι αυτό και οι <if> συνθήκες στο XSLT έγγραφο. Στο template Atom λοιπόν, πραγματοποιείται ο έλεγχος για το αναγνωριστικό oid. Αν υπάρχει και είναι <Var> τότε σημαίνει ότι θα γίνει ανάθεση της τιμής του fact σε μεταβλητή και εφαρμόζεται το template: oid/var. Στη συνέχεια και μέσα σε παρένθεση, εφαρμόζονται τα templates: Rel op και slot Ind Var: Template: oid/var <xsl:template match="n:oid/n:var"> <xsl:text>?</xsl:text> <xsl:value-of select="."/> <xsl:if test="not(name(../../..)='update') and not(name(../..)='message')"> 100 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

101 ΚΕΦΑΛΑΙΟ 6: ΜΕΤΑΤΡΟΠΗ ΤΩΝ ΚΑΝΟΝΩΝ ΑΠΟ REACTION-RULEML ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ JESS <xsl:text> <- </xsl:text> </xsl:if> </xsl:template> Στο template oid/var κατ αρχήν προστίθεται ο χαρακτήρας? ο οποίος στο JESS είναι στο σύμβολο της μεταβλητής εφόσον χρησιμοποιηθεί στην αρχή ενός αλφαριθμητικού και στη συνέχεια επιλέγεται το περιεχόμενο του <oid>. Αν δηλαδή αυτό είναι η λέξη : fact4, με την εφαρμογή του παραπάνω template θα παραχθεί το:?fact4. Το test που λαμβάνει χώρα, ελέγχει το εξής: Αν η μεταβλητή δε χρησιμοποιείται σε Update (fact modification για το JESS) ή αν δε χρησιμοποιείται σε μήνυμα, τότε χρησιμοποιείται σίγουρα σε ανάθεση τιμής (μιλάμε πάντα για τη μεταβλητή oid/var κι όχι για μια απλή μεταβλητή), οπότε χρησιμοποιούμε το ειδικό σύμβολο < (<) και την παύλα (-) για να εμφανιστεί ο χαρακτήρας ανάθεσης τιμής σε μεταβλητή: <- Συνεχίζοντας την ανάλυση για το template Atom, αν το αναγνωριστικό <oid> δεν είναι oid/var σημαίνει πως δε χρησιμοποιήθηκε στην R-RuleML σε ανάθεση τιμής σε μεταβλητή οπότε πρέπει απλώς να παρατεθούν τα περιεχόμενά του. Αυτό γίνεται στο δεύτερο έλεγχο if αυτού του template. Αν το oid είναι Ind τότε απλώς παρατίθεται, ενώ αν δεν υπάρχει καθόλου, τότε τα περιεχόμενα του Atom παρατίθενται με τον τρόπο που πρέπει για να ανταποκρίνονται στη μορφή αναπαράστασης του JESS και πάλι με εφαρμογή των templates: Rel op και slot Ind Var και την προσθήκη παρενθέσεων στα κατάλληλα σημεία (π.χ αν ο «κόμβος-γονέας» του Atom είναι Assert). Τα περιεχόμενα των templates Rel op και slot Ind Var παρουσιάζονται παρακάτω, όπου όπως μπορεί να διαπιστώσει κανείς, εμφανίζουν τα περιεχόμενα των αντίστοιχων tags της R-RuleML. Για το template Var μπορεί κανείς να παρατηρήσει το χαρακτήρα? που εμφανίζεται για να υπάρχει συνέπεια με το συντακτικό κανόνων JESS και τις παρενθέσεις στο template slot για τον ίδιο ακριβώς λόγο. <xsl:template match="n:oid/n:ind"> <xsl:value-of select="."/> </xsl:template> <xsl:template match="n:rel"> <xsl:text> </xsl:text> <xsl:value-of select="."/> </xsl:template> <xsl:template match="n:op"> <xsl:text> </xsl:text> <xsl:value-of select="."/> </xsl:template> <xsl:template match="n:ind"> <xsl:text> </xsl:text> <xsl:value-of select="."/> </xsl:template> <xsl:template match="n:var"> <xsl:text>?</xsl:text> <xsl:value-of select="."/> </xsl:template> ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 101

102 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ <xsl:template match="n:slot"> <xsl:text> (</xsl:text> <xsl:apply-templates select="n:ind[1]"/> <xsl:apply-templates select="n:var n:ind[2]"/> <xsl:text>)</xsl:text> </xsl:template> Template: Message Το template Message έχει τη μορφή: <xsl:template match="n:message"> <xsl:if <xsl:text> (ACLMessage</xsl:text> <xsl:text> (communicative-act </xsl:text> <xsl:value-of <xsl:text>) </xsl:text> <xsl:text> (sender </xsl:text> <xsl:apply-templates select="n:sender"/> <xsl:text>) </xsl:text> <xsl:text> (content </xsl:text> <xsl:apply-templates select="n:content"/> <xsl:text>) </xsl:text> <xsl:text> (conversation-id </xsl:text> <xsl:apply-templates select="n:oid/*"/> <xsl:text>) </xsl:text> <xsl:text> (protocol </xsl:text> <xsl:apply-templates select="n:protocol"/> <xsl:text>) </xsl:text> <xsl:text>) </xsl:text> </xsl:if> <xsl:if <xsl:text> (send (assert (ACLMessage</xsl:text> <xsl:text> (communicative-act </xsl:text>... </xsl:if> </xsl:template> Περιγράφοντας τη δομή του template αυτού παρατηρεί κανείς ότι πραγματοποιούνται δύο έλεγχοι. Ένας για το αν το μήνυμα είναι εισερχόμενο (inbound) και ένας για το αν είναι εξερχόμενο (outbound), αντλώντας την πληροφορία από το της δομής του μηνύματος της R-RuleML. Σε κάθε περίπτωση, η πράξη επικοινωνίας αντλείται από το (π.χ CFP, PROPOSE etc.), ενώ για τα υπόλοιπα δομικά στοιχεία του μηνύματος, γίνεται εφαρμογή των templates: sender, receiver, oid, content, protocol, οι οποίες ουσιαστικά εμφανίζουν τα δεδομένα που περικλείονται μέσα στα slot των Atoms που περιέχουν. Επίσης, υπάρχουν διαφοροποιήσεις στο κείμενο, ανάλογα με το αν το μήνυμα είναι εισερχόμενο ή εξερχόμενο. 102 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

103 ΚΕΦΑΛΑΙΟ 6: ΜΕΤΑΤΡΟΠΗ ΤΩΝ ΚΑΝΟΝΩΝ ΑΠΟ REACTION-RULEML ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ JESS Template: if <xsl:template match="n:if"> <xsl:apply-templates select="n:atom n:and"/> </xsl:template> Το template if εφαρμόζει δύο άλλα templates, τα Atom και And. Για το Atom προηγήθηκε ανάλυση παραπάνω γι το λόγο αυτό ακολουθεί για το And: Template: And Η μορφή του είναι η παρακάτω: <xsl:template match="n:and"> <xsl:if test="name(..)='if'"> <xsl:if test="n:atom n:naf"> <xsl:apply-templates select="n:atom n:naf"/> </xsl:if> <xsl:if test="n:expr">(test<xsl:apply-templates select="n:expr"/>)</xsl:if> </xsl:if> <xsl:if test="name(..)='naf'"> (and<xsl:if test="n:atom n:naf"> <xsl:apply-templates select="n:atom n:naf"/> </xsl:if> <xsl:if test="n:expr"> <xsl:text>(test</xsl:text> <xsl:apply-templates select="n:expr"/>) </xsl:if> <xsl:text> )</xsl:text> </xsl:if> </xsl:template> Όπως μπορεί κανείς να διαπιστώσει, στο And πραγματοποιούνται δύο έλεγχοι για τον «κόμβο-γονέα» του And. Αν ο «γονέας» είναι if, σημαίνει ότι το And βρίσκεται στο τμήμα συνθηκών ενός κανόνα, κατά συνέπεια, σύμφωνα πάντα με τους κανόνες που έχουν γραφεί για τη συγκεκριμένη υλοποίηση αλλά και το συντακτικό της R-RuleML, το if μπορεί να αποτελείται από Atoms, Αρνήσεις (Εδώ χρησιμοποιήθηκε η λεγόμενη «αδύναμη» άρνηση Naf - βλ. κεφ. 4 για RRuleML), ή εκφράσεις (Expr). Έτσι λοιπόν, πραγματοποιούνται μέσα σε αυτό τον έλεγχο, άλλοι δύο έλεγχοι. Ένας για το αν οι «κόμβοι-παιδιά» του And είναι Atom ή Naf οπότε και εφαρμόζονται απλώς τα templates Atom ή Naf κατά περίπτωση και ο άλλος για το αν υπάρχει «κόμβος-παιδί» που να είναι Expr, οπότε εφαρμόζεται το template: Expr με τη χρήση παρενθέσεων όπου χρειάζεται για την ορθή απεικόνιση των κανόνων- αποτέλεσμα της μετατροπής. Αν ο γονέας του And είναι Naf, τότε για τους «κόμβους-παιδιά» του And πραγματοποιούνται οι ίδιοι έλεγχοι με πριν, δηλ αν είναι Atom ή Naf ή αν είναι Expr και εφαρμόζονται τα templates: Atom, Naf, Expr κατά περίπτωση με τη χρήση παρενθέσεων όπου αυτό κρίνεται απαραίτητο. Σχετικά με τη δομή και λειτουργία του template Atom έχει προηγηθεί περιγραφή παραπάνω, συνεπώς θα ακολουθήσει περιγραφή για τα άλλα δύο templates, τα Naf και Expr. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 103

104 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Template: Naf Η δομή του είναι: <xsl:template match="n:naf"> <xsl:text> select="n:atom n:and n:expr"/>) </xsl:template> </xsl:text><xsl:text>(not</xsl:text><xsl:apply-templates Όπως γίνεται αντιληπτό, σε αυτό το template, με τη χρήση παρενθέσεων όπου χρειάζεται, γίνεται απλώς εφαρμογή των templates: Atom ή And ή Expr ανάλογα με την περίπτωση, κάτι που υπαγορεύεται από τον τρόπο με τον οποίο έχουν γραφεί οι κανόνες για τη συγκεκριμένη υλοποίηση, με βάση πάντα το συντακτικό της Reaction- RuleML. Ένα παράδειγμα του τρόπου λειτουργίας αυτού του template φαίνεται στην παρακάτω εικόνα: Εικόνα 22: Παράδειγμα μετατροπής αδύναμης άρνησης από R-RuleML σε JESS Template: Expr Η δομή του είναι: <xsl:template match="n:expr"> <xsl:text> (</xsl:text> <xsl:apply-templates select="n:fun"/> <xsl:if test="n:expr n:var n:ind"> <xsl:apply-templates select="n:expr n:var n:ind"/> </xsl:if> <xsl:text>) </xsl:text> </xsl:template> Όπως γίνεται αντιληπτό, το συγκεκριμένο template εφαρμόζει το template Fun και στη συνέχεια, ανάλογα με το ποιο από τα Expr Var Ind βρίσκει στα περιεχόμενά του, εφαρμόζει και το ανάλογο template. Τα Var και Ind έχουν περιγραφεί πιο πάνω. Αυτό που θα αναλυθεί, είναι το template Fun, του οποίου η δομή παρουσιάζεται πιο κάτω: Template: Fun <xsl:template match="fun"> <xsl:value-of select="."/> 104 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

105 ΚΕΦΑΛΑΙΟ 6: ΜΕΤΑΤΡΟΠΗ ΤΩΝ ΚΑΝΟΝΩΝ ΑΠΟ REACTION-RULEML ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ JESS </xsl:template> Το συγκεκριμένο template, απλώς μεταφέρει αυτούσια τα περιεχόμενα που βρίσκονται ανάμεσα στα tags <Fun> </Fun> Template: do Η δομή του είναι: <xsl:template match="n:do">=> <xsl:apply-templates select="n:message n:succession n:update n:atom n:assert"/> </xsl:template> Το συγκεκριμένο template, φαίνεται να έχει πολύ απλή δομή διότι εφαρμόζει τα templates: Message Succession Update Atom Assert. Ο ρόλος του όμως είναι μεγάλης σημασίας γιατί με τη βοήθειά του γίνεται η σωστή μετατροπή του τμήματος ενεργειών όλων των κανόνων της R-RuleML σε κανόνες JESS. Επιπλέον, τα templates που εφαρμόζει είναι βασικά και αρκετά σύνθετα. Η δομή των περισσοτέρων έχει αναλυθεί πιο πριν, για το λόγο αυτό ακολουθεί ανάλυση των Succession και Update: Template: Succession <xsl:template match="n:succession"> <xsl:apply-templates select="n:assert n:update n:equal"/> </xsl:template> Το template αυτό δημιουργήθηκε για να μετατρέπει την πράξη Succession που βρίσκεται στο μέρος ενεργειών των κανόνων (do) και η οποία σύμφωνα με το συντακτικό της R-RuleML χρησιμοποιείται για να εκφράζει ακολουθίες από κανόνες, γεγονότα και τροποποιήσεις αυτών και σημειωτέον έχει χρησιμοποιηθεί στη συγκεκριμένη υλοποίηση σε πολλές περιπτώσεις. Η λειτουργία του είναι ότι εφαρμόζει τα templates: Assert (του οποίου η δομή έχει περιγραφεί), Update και Equal των οποίων η περιγραφή ακολουθεί αμέσως μετά Template: Equal <xsl:template match="n:equal"> <xsl:text>(bind</xsl:text><xsl:apply-templates select="n:var"/> <xsl:apply-templates select="n:expr"/>) </xsl:template> Η λειτουργία του συνίσταται στο να προσθέτει το κείμενο: (bind στο template: Var το οποίο και εφαρμόζει. Στη συνέχεια εφαρμόζει το template: Expr. Η κατασκευή του στηρίχτηκε στην παρατήρηση ότι στην κατασκευή του Initiator και του Participant σε κανόνες της R-RuleML, η δομή <Equal> χρησιμοποιείται στην περίπτωση που πρέπει να γίνει ανάθεση τιμής σε μεταβλητή, κάτι που υπαγορεύεται από το συντακτικό της ίδιας της γλώσσας. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 105

106 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Εικόνα 23: Χρήση της δομής <Equal> της R-RuleML και μετατροπή της μέσω του xsl μετασχηματισμού σε δομή ανάθεσης τιμής σε μεταβλητή (bind) στο JESS Template: Update <xsl:template match="n:update"> <xsl:if test=" n:atom "> <xsl:text> (modify</xsl:text> <xsl:apply-templates select=".//n:oid"/> <xsl:apply-templates select=".//n:slot"/> <xsl:text>) </xsl:text> </xsl:if> </xsl:template> Στο συγκεκριμένο template, πραγματοποιείται ο έλεγχος για το αν το περιεχόμενό του είναι η δομή Atom. Στην υλοποίηση των κανόνων που έχουν δημιουργηθεί για τη συγκεκριμένη αναπαράσταση του FIPA Contract Net Protocol, η δομή Update χρησιμοποιήθηκε για να εκφράσει τις μεταβολές στα περιεχόμενα των Facts. Αυτές οι μεταβολές (καθεμία από οποίες ουσιαστικά είναι ένα ζεύγος retract και assert), στη μορφή κανόνων του JESS, εκφράζονται από την εντολή modify ακολουθούμενη από το fact-index του γεγονότος και τα περιεχόμενα του slot του. Αυτή ακριβώς τη μετατροπή πραγματοποιεί το template Update, προσθέτοντας το αλφαριθμητικό modify μαζί με τις απαραίτητες παρενθέσεις. Εικόνα 24: Μετατροπή της δομής <Update> της R-RuleML στη δομή modify του JESS μέσω του xsl μετασχηματισμού. 106 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

107 ΚΕΦΑΛΑΙΟ 6: ΜΕΤΑΤΡΟΠΗ ΤΩΝ ΚΑΝΟΝΩΝ ΑΠΟ REACTION-RULEML ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ JESS Στο σημείο αυτό ολοκληρώνεται η περιγραφή της λειτουργίας του xslt εγγράφου, καθώς έχουν περιγραφεί οι βασικότερες δομές του. Για να γίνει όμως κατανοητός ο τρόπος λειτουργίας του, καθώς και γενικότερα να παρουσιαστεί ενδελεχώς η υλοποίηση που πραγματοποιήθηκε, στην ενότητα που ακολουθεί, παρατίθενται δύο ενδεικτικά παραδείγματα κανόνων σε Reaction RuleML και η μετατροπή τους σε κανόνες JESS. 6.3 ΠΑΡΑΔΕΙΓΜΑΤΑ ΚΑΝΟΝΩΝ ΣΕ R-RULEML ΚΑΙ XSL ΜΕΤΑΣΧΗΜΑΤΙΣΜΩΝ ΤΟΥΣ ΣΕ ΚΑΝΟΝΕΣ JESS Εισαγωγή Για την παρουσίαση των παραδειγμάτων επιλέχθηκαν δύο αντιπροσωπευτικοί κανόνες από την υλοποίηση σε Reaction-RuleML. Ο πρώτος κανόνας προέρχεται από το τμήμα πρωτοκόλλου του Initiator ενώ ο δεύτερος από το τμήμα στρατηγικής του. Η επιλογή παρουσίασής τους έγινε με γνώμονα την πολυπλοκότητά τους, έτσι ώστε να καλυφθεί τόσο η αναπαράσταση του χειρισμού των μηνυμάτων όσο και η χρήση συνθηκών, αναθέσεων τιμών σε μεταβλητές και τροποποιήσεις περιεχομένων γεγονότων στη μνήμη εργασίας. Τέλος, σημειώνεται ότι η παρουσίαση όλων των κανόνων θα ήταν απαγορευτική από την άποψη της έκτασης που καταλαμβάνουν, εξ ου και η επιλογή των πιο ενδεικτικών: Παράδειγμα Πρώτο Κανόνας: send_call. (Αποστολή μηνυμάτων CFP από τον Initiator στους Participants.) Ο κανόνας γραμμένος σε R-RuleML έχει τη μορφή: <Rule> <oid> <Ind>send_call</Ind> </oid> <on> <Rel>initiator_state</Rel> <Ind>state</Ind> <Ind>start_state</Ind> <Ind>state_id</Ind> </on> <if> <Rel>call</Rel> <Ind>call_act</Ind> <Var>call_act</Var> <Ind>call_receiver</Ind> <Var>call_receiver</Var> <Ind>call_content</Ind> ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 107

108 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ <Var>call_content</Var> <Ind>in_cid</Ind> </if> <do> <Message mode="outbound" directive="call_act"> <oid> </oid> <protocol> <Ind>fipa-contract-net</Ind> </protocol> <receiver> <Var>call_receiver</Var> </receiver> <content> <Var>call_content</Var> </content> </Message> </do> </Rule> Όπως μπορεί κανείς να διαπιστώσει, σε συνδυασμό με την ανάλυση που έχει προηγηθεί για τη φύση των κανόνων, ο κανόνας είναι αντιδραστικός, της μορφής onif-do. Επίσης σημειώνεται ότι υλοποιεί τμήμα του πρωτοκόλλου FIPA Contract Net και όχι της στρατηγικής του πράκτορα. Συνεπώς ανήκει στους κανόνες πρωτοκόλλου. Το γεγονός που τον ενεργοποιεί, είναι η αλλαγή κατάστασης του slot: state του Atom (fact): Initiator_state η οποία έχει μεταβληθεί σε προηγούμενο κανόνα (στον prepare_call, βλ. παράρτημα ΙΙΙ). Η συνθήκη του κανόνα είναι ουσιαστικά τα περιεχόμενα του fact: call τα οποία έχουν φορτωθεί στη μνήμη στον προηγούμενο κανόνα (prepare_call). Το τμήμα ενέργειας του κανόνα (do) πραγματοποιεί την αποστολή του μηνύματος CFP (Call For Proposals). Το είδος της πράξης επικοινωνίας θα φορτωθεί στο πεδίο directive του μηνύματος, από τα περιεχόμενα της μεταβλητής call_act τα οποία είναι το αλφαριθμητικό CFP. To περιεχόμενο (content) του μηνύματος αυτού έχει «φορτωθεί» στο τμήμα συνθηκών του κανόνα στη μεταβλητή call_content, στην περίπτωσή μας είναι το αλφαριθμητικό: laptop και «περνάει» στις ενέργειες του κανόνα στο πεδίο content του μηνύματος. Παραλήπτης (receiver) του μηνύματος είναι το περιεχόμενο της μεταβλητής call_receiver άρα γίνεται αντιληπτό ότι θα γίνει αποστολή τριών μηνυμάτων με ίδιο content σε τρεις διαφορετικούς παραλήπτες. Ο xsl μετασχηματισμός θα μετατρέψει τον παραπάνω κανόνα (όπως και όλους τους κανόνες της συγκεκριμένης υλοποίησης) στην παρακάτω μορφή κανόνα του JESS: (defrule send_call on (initiator_state (state start_state) (state_id?cid)) (call (call_act?call_act) (call_receiver?call_receiver) (call_content?call_content) (in_cid?cid)) if => (send (assert (ACLMessage (communicative-act?call_act) (receiver?call_receiver) (content?call_content) (conversation-id?cid) (protocol fipa-contract-net)))) ) Από τη μορφή του, εύκολα κανείς μπορεί να καταλάβει την αντιστοιχία των δομών της R-RuleML υλοποίησης, με αυτές του JESS. do 108 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

109 ΚΕΦΑΛΑΙΟ 6: ΜΕΤΑΤΡΟΠΗ ΤΩΝ ΚΑΝΟΝΩΝ ΑΠΟ REACTION-RULEML ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ JESS Παράδειγμα Δεύτερο Κανόνας: define_cheaper_participant (Εντοπίζει και αποθηκεύει σε ενδιάμεσο fact τον Participant που έχει κάνει την προσφορά με την πιο χαμηλή τιμή). Ο κανόνας γραμμένος σε R-RuleML έχει τη μορφή: <Rule> <oid> <Ind>define_cheaper_Participant</Ind> </oid> <if> <And> <Rel>Initiator_state</Rel> <Ind>state</Ind> <Ind>qualification_state</Ind> <Ind>state_id</Ind> <Rel>incomingmessages</Rel> <Ind>in_act</Ind> <Ind>PROPOSE</Ind> <Ind>in_sender</Ind> <Var>wh</Var> <Ind>in_content</Ind> <Var>pr</Var> <Ind>in_cid</Ind> <Naf> <And> <Rel>incomingmessages</Rel> <Ind>in_sender</Ind> <Var>wh2</Var> <Ind>in_content</Ind> <Var>pr2</Var> <Ind>in_cid</Ind> <Expr> <Fun>and</Fun> <Expr> <Fun>neq</Fun> <Var>wh2</Var> <Var>wh</Var> ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 109

110 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ </Expr> <Expr> <Fun><</Fun> <Var>pr2</Var> <Var>pr</Var> </Expr> </Expr> </And> </Naf> <oid> <Var>qualification_state</Var> </oid> <Rel>Initiator_state</Rel> <Ind>state</Ind> <Ind>qualification_state</Ind> <Ind>state_id</Ind> </And> </if> <do> <Succession> <Assert> <Rel>intermediate</Rel> <Ind>interm_act</Ind> <Ind>INTERMEDIATE</Ind> <Ind>interm_content</Ind> <Var>pr</Var> <Ind>interm_receiver</Ind> <Var>wh</Var> <Ind>interm_cid</Ind> </Assert> <Update> <oid> <Var>qualification_state</Var> </oid> <Rel>Initiator_state</Rel> <Ind>state</Ind> <Ind>qualification_expensive_state</Ind> <Ind>state_id</Ind> </Update> </Succession> </do> </Rule> 110 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

111 ΚΕΦΑΛΑΙΟ 6: ΜΕΤΑΤΡΟΠΗ ΤΩΝ ΚΑΝΟΝΩΝ ΑΠΟ REACTION-RULEML ΣΕ ΣΥΝΟΛΑ ΚΑΝΟΝΩΝ JESS Ο xsl μετασχηματισμός θα μετατρέψει τον παραπάνω κανόνα (όπως και όλους τους κανόνες της συγκεκριμένης υλοποίησης) στην παρακάτω μορφή κανόνα του JESS: (defrule define_cheaper_participant ;Βρίσκει και αποθηκεύει σε ενδιάμεσο fact τον φθηνότερο - ΣΤΡΑΤΗΓΙΚΗ (Initiator_state (state qualification_state) (state_id?cid)) (incomingmessages (in_act PROPOSE) (in_sender?wh) (in_content?pr) (in_cid?cid)) (not (and (incomingmessages (in_sender?wh2) (in_content?pr2) (in_cid?cid)) (test (and (neq?wh2?wh) (<?pr2?pr))) ) )?qualification_state <- (Initiator_state (state qualification_state) (state_id?cid)) => (assert (intermediate (interm_act INTERMEDIATE) (interm_content?pr) (interm_receiver?wh) (interm_cid?cid))) (modify?qualification_state (state qualification_expensive_state) (state_id?cid)) do ) if Ο κανόνας ανήκει στους κανόνες στρατηγικής του πράκτορα και όπως έχει αναφερθεί στις προηγούμενες παραγράφους, είναι παραγωγικός (productive), της μορφής if-do όπως και όλοι οι κανόνες της στρατηγικής. Τμήμα συνθηκών του κανόνα Η πρώτη συνθήκη που πρέπει να ικανοποιείται στο τμήμα συνθηκών του κανόνα, είναι το fact Initiator_state να έχει τιμή qualification_state για το slot: state. Το συγκεκριμένο fact αποκτά αυτή την τιμή στον προηγούμενο κανόνα που εκτελείται (τον stop βλ. παράρτημα Ι και ΙΙΙ) εφόσον ο αριθμός εισερχόμενων μηνυμάτων φτάσει τον προκαθορισμένο αριθμό και τότε το πρωτόκολλο προσωρινά ανακόπτει τη λειτουργία του και εκτελούνται κανόνες στρατηγικής, με πρώτο στην αλληλουχία τον κανόνα που εξετάζεται αυτή τη στιγμή. Συνεχίζοντας την ανάλυση, ανακαλούνται από τη μνήμη εργασίας τα περιεχόμενα του fact: incomingmessages και σε συνδυασμό με τον έλεγχο που ακολουθεί, μόνο εκείνα για τα οποία το slot: in_act έχει την τιμή PROPOSE και το slot: in_content έχει τη χαμηλότερη τιμή. Στη συνέχεια το fact-index του fact: Initiator_state αποθηκεύεται στη μεταβλητή: qualification_state. Τμήμα ενεργειών του κανόνα Στο τμήμα ενεργειών του κανόνα, πραγματοποιείται η αποθήκευση στο fact: intermediate, όλων των πληροφοριών που αφορούν τον Participant που έκανε την πιο συμφέρουσα προσφορά, και αλλάζει η κατάσταση του fact: Initiator_state σε qualification_expensive_state. Σε επόμενο κανόνα της στρατηγικής, τα περιεχόμενα του fact: intermediate θα αξιολογηθούν και αν πληρούν τις προδιαγραφές της στρατηγικής του πράκτορα, τότε θα προετοιμαστεί η τελική αποστολή μηνυμάτων από το πρωτόκολλο (βλ. παράρτημα Ι και ΙΙΙ) ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 111

112

113 ΚΕΦΑΛΑΙΟ 7: ΥΛΟΠΟΙΗΣΗ ΤΟΥ ΣΕΝΑΡΙΟΥ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ Κ Ε Φ Α Λ Α Ι Ο 7 : ΥΛ Ο Π Ο Ι Η Σ Η Τ Ο Υ Σ Ε Ν Α Ρ Ι Ο Υ Α Λ Λ Η Λ Ε Π Ι Δ Ρ Α Σ Η Σ

114

115 ΚΕΦΑΛΑΙΟ 7: ΥΛΟΠΟΙΗΣΗ ΤΟΥ ΣΕΝΑΡΙΟΥ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΥΛΟΠΟΙΗΣΗ ΤΟΥ ΣΕΝΑΡΙΟΥ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ 7.1 Η ΜΗΧΑΝΗ ΚΑΝΟΝΩΝ JESS Το JESS 7 είναι μια ιδιαίτερα «ελαφριά», μικρή και πολύ γρήγορη μηχανή κανόνων η οποία είναι εξ ολοκλήρου γραμμένη σε Java και χρησιμοποιεί για τη λειτουργία της, την πλατφόρμα Java. Αναπτύχθηκε το 1995 από τον Ernest Friedman-Hill στα Sandia National Laboratories και βέβαια από τότε έχει εξελιχθεί σε μεγάλο βαθμό. Η μηχανή αυτή έχει τη δυνατότητα να εκτελεί ή να πυροδοτεί κανόνες και επίσης να αντιστοιχίζει τους κανόνες στα κατάλληλα γεγονότα με τη χρήση του αλγορίθμου RETE. Για να γίνει σωστή ενεργοποίηση/πυροδότηση των κανόνων που φορτώνονται στη μηχανή JESS, αυτοί πρέπει να ακολουθούν το συντακτικό της λεγόμενης JESS Rule Language[27]. 7.2 ΠΛΑΤΦΟΡΜΑ JADE - EMERALD Το JADE 8 (Java Agent Development Framework) είναι ένα software πλαίσιο εργασίας, εξ ολοκλήρου γραμμένο σε Java και στόχος του είναι η απλοποίηση της υλοποίησης πολυπρακτορικών συστημάτων. Παρέχει μια ευέλικτη πλατφόρμα για την αλληλεπίδραση πρακτόρων. Τα πλεονεκτήματά της πλατφόρμας είναι ότι δίνει τη δυνατότητα συμμόρφωσης των πρακτόρων με τις προδιαγραφές της FIPA, γίνεται να φορτώνονται πράκτορες σε περισσότερες της μίας μηχανές, είναι ανεξάρτητη Λειτουργικού Συστήματος, και παρέχει δυνατότητες απομακρυσμένου ελέγχου των πρακτόρων.[28] [29]. Η πλατφόρμα EMERALD 9 δημιουργήθηκε από την ομάδα LPIS του τμήματος Πληροφορικής του ΑΠΘ με στόχο να παρέχει ένα πλαίσιο για διαλειτουργικότητα μεταξύ των πρακτόρων του ΣΙ με τη χρήση αξιόπιστων εξωτερικών υπηρεσιών συλλογιστικής (reasoning). Το πλεονέκτημα αυτής της πλατφόρμας είναι ότι κάθε πράκτορας μπορεί να ανταλλάξει τα σύνολα κανόνων του με άλλους πράκτορες, χωρίς απαραίτητα οι άλλοι να πρέπει να συμμορφωθούν με το ίδιο είδος κανόνων ή λογικής [30]. Το EMERALD έχει δομηθεί για να δουλεύει με το JADE, ένα επίπεδο πάνω από αυτό. Ένα από τα βασικά του χαρακτηριστικά είναι ότι παρέχει υπηρεσίες συλλογιστικής μέσω ανεξάρτητων πρακτόρων, ο οποίοι ονομάζονται Reasoners. Επιπλέον, τόσο JADE όσο και τοemerald έχουν πλήρη συμβατότητα με τη μηχανή κανόνων JESS (δηλ την ενσωματώνουν πλήρως) ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

116 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Η ενσωμάτωση της μηχανής JESS μέσα στο EMERALD γίνεται πράξη με το πρακτορικό πρότυπο με όνομα: JessAgentRR 10, το οποίο βασίζεται στο JessAgent της πλατφόρμας JADE. Η ενσωμάτωση της μηχανής κανόνων JESS στην πλατφόρμα EMERALD και η μεταξύ τους συνεργασία στα πλαίσια ενός πλαισίου αλληλεπίδρασης πρακτόρων, περιγράφεται πολύ παραστατικά στην παρακάτω εικόνα: Εικόνα 25: Ένας Πράκτορας και το περιβάλλον του. 7.3 ΠΑΡΟΥΣΙΑΣΗ ΤΟΥ ΣΕΝΑΡΙΟΥ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΣΤΗΝ ΠΛΑΤΦΟΡΜΑ EMERALD Τα βήματα τα οποία ακολουθήθηκαν, και φυσικά αναλύθηκαν εκτενώς στις παραγράφους που προηγήθηκαν είναι τα εξής: 1. Δημιουργήθηκαν τα αρχεία κανόνων για τον Initiator και τους Participants (τόσο για τη στρατηγική όσο και για το πρωτόκολλο) σε μορφή Reaction_RuleML. 2. Δημιουργήθηκε για τη συγκεκριμένη υλοποίηση το αρχείο compiler.xslt το οποίο πραγματοποιεί το μετασχηματισμό από Reaction-RuleML σε κανόνες JESS. 3. Πραγματοποιήθηκε επέκταση της κλάσης JessAgent του JADE, υπό την ονομασία JessAgentRR, ώστε τα templates των γεγονότων (facts) που θα χρησιμοποιηθούν να είναι ορισμένα σε αυτή. 4. Ταυτόχρονα δημιουργήθηκε ένα νέο πρότυπο πράκτορα με όνομα JessAgentRR. Η λειτουργία του συνίσταται στα εξής βήματα: o Δέχεται σαν ορίσματα ένα αρχείο με τους R-RuleML κανόνες για τη στρατηγική και ένα για το πρωτόκολλο. o Μόλις ο πράκτορας εκκινήσει, καθένα αρχείο μετατρέπεται σε αρχείο κανόνων JESS (clp), με αυτόματη κλήση του xslt αρχείου. o Στη συνέχεια αυτά τα δύο αρχεία ενώνονται σε ένα και στο τέλος γράφονται οι γραμμές: (watch facts) (watch all) (reset) (run) ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

117 ΚΕΦΑΛΑΙΟ 7: ΥΛΟΠΟΙΗΣΗ ΤΟΥ ΣΕΝΑΡΙΟΥ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ 5. Έτσι δημιουργούνται τα σύνολα κανόνων και για τον Initiator και τους Participants σε μορφή που να μπορούν να «εκτελεστούν» από το JESS. Έτσι δημιουργούνται οι πράκτορες, JessAgentRR της πλατφόρμας, που έχουμε επιλέξει για την υλοποίηση και η αλληλεπίδραση εκτελείται. Στις εικόνες που ακολουθούν γίνεται μια παρουσίαση της δημιουργίας των πρακτόρων και της αλληλεπίδρασης μεταξύ τους. Εικόνα 26: Η πλατφόρμα JADE Στην προηγούμενη εικόνα παρουσιάζεται η διεπαφή της πλατφόρμας αλληλεπίδρασης πρακτόρων JADE/EMERALD Εικόνα 27: Στιγμιότυπο δημιουργίας πράκτορα Στην παραπάνω εικόνα αναπαρίσταται ένα στιγμιότυπο δημιουργίας του πράκτορα participant με όνομα: p στην πλατφόρμα. Σε αυτό μπορεί κανείς να διακρίνει ότι ο πράκτορας που δημιουργείται βασίζεται στο πρότυπο: JessAgentRR και επιπλέον στα ορίσματα (Arguments) φορτώνονται τα δύο αρχεία με το σύνολο κανόνων που διέπουν τη λειτουργία του πράκτορα. Ένα για το πρωτόκολλο: Participant_protocol_rules.xml και ένα για τη στρατηγική: Participant_strategy_rules.xml ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 117

118 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Εικόνα 28: Στιγμιότυπο της πλατφόρμας με όλους τους πράκτορες που συμμετέχουν Στο παραπάνω στιγμιότυπο με τη βοήθεια του εργαλείου sniffer του JADE αποτυπώνεται η ανταλλαγή ACL Μηνυμάτων μεταξύ των πρακτόρων και παρουσιάζεται στην εικόνα που ακολουθεί: Εικόνα 29: Η ανταλλαγή μηνυμάτων μεταξύ των πρακτόρων. Εδώ η αλληλεπίδραση έχει ολοκληρωθεί επιτυχώς και έχει επιλεγεί η προσφορά του Participant με όνομα p, ο οποίος όπως μπορεί να παρατηρήσει κανείς, έχει δεχθεί Accept- Proposal και απάντησε με Inform. Για να γίνει πιο καλά κατανοητή η αλληλεπίδραση, θα ήταν χρήσιμο να παρατεθούν ορισμένα στιγμιότυπα που απεικονίζουν τη μνήμη εργασίας και τη δημιουργία αποθήκευση μεταβολή των γεγονότων (facts) που λαμβάνει χώρα σε αυτή. 118 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

119 ΚΕΦΑΛΑΙΟ 7: ΥΛΟΠΟΙΗΣΗ ΤΟΥ ΣΕΝΑΡΙΟΥ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ Εικόνα 30: Πυροδότηση των κανόνων αρχικοποίησης του Initiator. Από την παραπάνω εικόνα φαίνεται ότι μόλις εκκινήσει ο πράκτορας Initiator, λαμβάνει χώρα η πυροδότηση των κανόνων: participant_assertion (ο οποίος εισάγει τις διευθύνσεις των participants στη μνήμη εργασίας του Initiator) conversation_id_assertion (ο οποίος εισάγει στη μνήμη το αναγνωριστικό διαλόγου με τιμή 1 και αρχικοποιεί το γεγονός initiator_state στην κατάσταση zero_state. strategy_facts_assertion (ο οποίος εισάγει στη μνήμη την τιμή του call εδώ laptop, την επιθυμητή τιμή στην οποία η στρατηγική του πράκτορα θα αποφασίσει για το αν θα δεχτεί ή όχι τις προσφορές από τους participants εδώ price = 300) protocol_facts_assertion (ο οποίος εισάγει στη μνήμη εργασίας τον αριθμό των participants που θα συμμετάσχουν στη διαπραγμάτευση και αρχικοποιεί τα facts «μετρητές»: COUNT_PROP και COUNT_REF και τέλος, αλλάζει το state το fact initiator_state σε start_state). Εικόνα 31 : Πυροδότηση κανόνων αρχικοποίησης participant: p2 Στην παραπάνω εικόνα μπορεί κανείς να τον τρόπο με τον οποίο, φορτώνονται στη μνήμη τα περιεχόμενα των αρχικών γεγονότων. Ενδεικτικά για τον participant με όνομα: p2 που παρουσιάζεται στην εικόνα: Πρώτα πυροδοτείται (FIRE) ο κανόνας: products_ini της στρατηγικής του. o Στη μνήμη εργασίας φορτώνεται το fact με τα προϊόντα που επιθυμεί να πουλήσει ο participant, εδώ laptop με τιμή 500. Ακολούθως πυροδοτείται ο κανόνας: ini του τμηματος πρωτοκόλλου του. o Αποτέλεσμα: η αρχικοποίηση της κατάστασης του fact participant_state σε start_state.) Ανάλογα και για τους άλλους δύο Participants με τη διαφορά στο ότι ο καθένας έχει διαφορετικές τιμές στα γεγονότα της στρατηγικής του. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML 119

120 ΧΡΗΣΤΟΣ ΠΑΠΑΒΑΣΙΛΕΙΟΥ Εικόνα 32: Προετοιμασία και Αποστολή CFP Στην τελευταία εικόνα επιλέχθηκε και παρουσιάζεται ένα κομμάτι της ανταλλαγής μηνυμάτων μεταξύ του Initiator και του participant με όνομα p3. Όπως μπορεί να διακρίνει κανείς (βλ. και παράρτημα ΙΙΙ), ο initiator: Στην αρχή προετοιμάζει την αποστολή cfp μηνύματος με την πυροδότηση του κανόνα: prepare_call. Στη συνέχεια πυροδοτείται ο κανόνας: send_call και το CFP μήνυμα αποστέλλεται στον participant: p3 Εικόνα 33: Λήψη CFP από participant και αποθήκευση σε fact. Σε συνέχεια των προηγουμένων, έπειτα ενεργοποιείται ο κανόνας receive_cfp (εικόνα 33), το αποτέλεσμα του οποίου είναι η αποθήκευση στο fact: callforp των στοιχείων cfp_content: laptop, και cfp_cid:1. Δηλ από το «ογκώδες» ACL μήνυμα, ο participant αποθηκεύει μόνο την πληροφορία που θεωρεί χρήσιμη. Στο σημείο αυτό ολοκληρώνεται η περιγραφή της πειραματικής υλοποίησης, με την πεποίθηση ότι η ανάλυση που προηγήθηκε και η επιλεκτική παρουσίαση με εικόνες, παρέχουν μια σαφή εικόνα του τρόπου με τον οποίο εκτελέστηκαν τα πειράματα. Εδώ ολοκληρώνεται και η ανπαπτυξη του ζητήματος της παρούσης διπλωματικής εργασίας, ενώ ακολουθούν τα συμπεράσματα από το σύνολο της ερευνητικής αυτής εμπειρίας, στο επόμενο κεφάλαιο. 120 ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΩΤΟΚΟΛΛΩΝ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΠΡΑΚΤΟΡΩΝ ΤΗΣ FIPA ΣΤΗΝ ΠΡΟΤΥΠΗ ΓΛΩΣΣΑ ΑΝΤΑΛΛΑΓΗΣ ΚΑΝΟΝΩΝ REACTION-RULEML

28 Πολυπρακτορικά Συστήµατα

28 Πολυπρακτορικά Συστήµατα ΚΕΦΑΛΑΙΟ 28 28 Πολυπρακτορικά Συστήµατα "There is no such thing as a single agent system". [Woodridge, 2002] Η παραπάνω ρήση από το βιβλίο του M.Wooldridge τονίζει, ίσως µε περισσή έµφαση, ότι είναι πλέον

Διαβάστε περισσότερα

Σημασιολογικό Ιστό, Ευφυείς Πράκτορες, Υπηρεσίες Ιστού

Σημασιολογικό Ιστό, Ευφυείς Πράκτορες, Υπηρεσίες Ιστού ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Intelligent Systems and Knowledge Processing (ISKP) Group Θέματα Διπλωματικών Εργασιών για το Ακαδημαϊκό Έτος 2010-2011 για το Μεταπτυχιακό Πρόγραμμα

Διαβάστε περισσότερα

Τεχνολογία Ευφυών Πρακτόρων (Intelligent Software Agents)

Τεχνολογία Ευφυών Πρακτόρων (Intelligent Software Agents) Τεχνολογία Ευφυών Πρακτόρων (Intelligent Software Agents) Ορισµός και θεωρητικές θεµελιώσεις Χαρακτηριστικά Αλληλεπίδραση µε το περιβάλλον Θέµατα αναπαράστασης και επικοινωνίας πρακτόρων Ευφυής Πράκτορας:

Διαβάστε περισσότερα

Θεωρητική προσέγγιση του Σημασιολογικού Ιστού στο χώρο της πολιτισμικής πληροφορίας: μία πρότυπη εφαρμογή στη βιβλιοθηκονομία

Θεωρητική προσέγγιση του Σημασιολογικού Ιστού στο χώρο της πολιτισμικής πληροφορίας: μία πρότυπη εφαρμογή στη βιβλιοθηκονομία Θεωρητική προσέγγιση του Σημασιολογικού Ιστού στο χώρο της πολιτισμικής πληροφορίας: μία πρότυπη εφαρμογή στη βιβλιοθηκονομία Σοφία Ζαπουνίδου, Αρχειονόμος Βιβλιοθηκονόμος, Πανεπιστήμιο Θεσσαλίας Κεντρική

Διαβάστε περισσότερα

Σχεδίαση και Ανάπτυξη Ιστότοπων

Σχεδίαση και Ανάπτυξη Ιστότοπων Σχεδίαση και Ανάπτυξη Ιστότοπων Ιστορική Εξέλιξη του Παγκόσμιου Ιστού Παρουσίαση 1 η 1 Βελώνης Γεώργιος Καθηγητής Περιεχόμενα Τι είναι το Διαδίκτυο Βασικές Υπηρεσίες Διαδικτύου Προηγμένες Υπηρεσίες Διαδικτύου

Διαβάστε περισσότερα

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΓΛΩΣΣΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ιπλωµατικές 2011-2012 των κ.κ. Βλαχάβα, Βασιλειάδη, Βράκα και Τσουµάκα Θέµατα κ. Ι.

Διαβάστε περισσότερα

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 1: Σημασιολογία και Μεταδεδομένα Μ.Στεφανιδάκης 10-2-2017 Η αρχή: Το όραμα του Σημασιολογικού Ιστού Tim Berners-Lee, James Hendler and Ora Lassila, The Semantic

Διαβάστε περισσότερα

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 1: Σημασιολογία και Μεταδεδομένα Μ.Στεφανιδάκης 5-2-2016. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

Διαβάστε περισσότερα

1.2 Jason BDI Αρχιτεκτονική

1.2 Jason BDI Αρχιτεκτονική 1.2 Jason 1.2.1 BDI Αρχιτεκτονική Το Belief-Desire-Intention (BDI) είναι ένα μοντέλο λογισμικού που έχει αναπτυχθεί για τον προγραμματισμό ευφυών πρακτόρων. Χαρακτηρίζεται από την υλοποίηση των πεποιθήσεων,

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων

Διαβάστε περισσότερα

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής ΗΥ 180 - Λογική Διδάσκων: Καθηγητής E-mail: dp@csd.uoc.gr Ώρες διδασκαλίας: Δευτέρα, Τετάρτη 4-6 μμ, Αμφ. Β Ώρες φροντιστηρίου: Πέμπτη 4-6 μμ, Αμφ. Β Ώρες γραφείου: Δευτέρα, Τετάρτη 2-4 μμ, Κ.307 Web site:

Διαβάστε περισσότερα

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Μεταπτυχιακό Δίπλωμα Ειδίκευσης Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Δρ. Κακαρόντζας Γεώργιος Επίκουρος Καθηγητής Τμ. Μηχανικών Πληροφορικής Τ.Ε. Μηχανική Λογισμικού για Διαδικτυακές

Διαβάστε περισσότερα

Συστήματα Γνώσης. Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής

Συστήματα Γνώσης. Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Άδειες

Διαβάστε περισσότερα

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. ΚΕΦΑΛΑΙΟ 9 Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966 αρχίζει ο σχεδιασμός του ARPANET, του πρώτου

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Ενότητα 1: Εισαγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Ενότητα 1: Εισαγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Λογική Ενότητα 1: Εισαγωγή Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην άδεια χρήσης Creative Commons

Διαβάστε περισσότερα

Ιχνηλασιμότητα η τροφίμων φμ με ανοικτό διαδικτυακό σύστημα:

Ιχνηλασιμότητα η τροφίμων φμ με ανοικτό διαδικτυακό σύστημα: Ιχνηλασιμότητα η τροφίμων φμ με ανοικτό διαδικτυακό σύστημα: οφέλη για επιχειρήσεις και καταναλωτές Μιχάλης Σαλαμπάσης αναπληρωτής καθηγητής Τμήμα Πληροφορικής Αλεξάνδρειο ΤΕΙ Θεσσαλονίκης Εναλλακτικός

Διαβάστε περισσότερα

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι Συστήματα Υποστήριξης Αποφάσεων Τα Συστήματα Υποστήριξης Αποφάσεων (Σ.Υ.Α. - Decision Support Systems, D.S.S.) ορίζονται ως συστήματα

Διαβάστε περισσότερα

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

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ: ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: Υπολογιστικά Συστήµατα & Τεχνολογίες Πληροφορικής ΣΥΓΓΡΑΦΕΑΣ: Γιώργος Γιαννόπουλος, διδακτορικός φοιτητής

Διαβάστε περισσότερα

Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0. Εφαρμογές Πληροφορικής Κεφ. 9 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0. Εφαρμογές Πληροφορικής Κεφ. 9 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0 Καραμαούνας Πολύκαρπος 1 9.1 Ιστορικά Στοιχεία Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο και ήταν απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966

Διαβάστε περισσότερα

Υποδείγματα Ανάπτυξης

Υποδείγματα Ανάπτυξης Υποδείγματα Ανάπτυξης περιεχόμενα παρουσίασης Αποσύνθεση Αφαίρεση Μοντελοποίηση Η δεδομένο λειτουργική προσέγγιση Η αντικειμενοστρεφής προσέγγιση αποσύνθεση Όταν επιχειρούμε τη λύση ενός προβλήματος, πρώτα

Διαβάστε περισσότερα

Ανάπτυξη Οντολογικής Γνώσης για Τεκμηρίωση Οπτικοακουστικού Περιεχομένου ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Ανάπτυξη Οντολογικής Γνώσης για Τεκμηρίωση Οπτικοακουστικού Περιεχομένου ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη Οντολογικής Γνώσης για Τεκμηρίωση Οπτικοακουστικού Περιεχομένου

Διαβάστε περισσότερα

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 02 & 03. Δρ. Γεώργιος Χρ. Μακρής

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 02 & 03. Δρ. Γεώργιος Χρ. Μακρής ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ στα ΔΙΚΤΥΑ και ΠΟΛΥΠΛΟΚΟΤΗΤΑ Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός Χειμερινό Εξάμηνο Σπουδών Διάλεξη 02 & 03 Δρ. Γεώργιος Χρ. Μακρής Αναπαράσταση

Διαβάστε περισσότερα

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

Πληροφορική 2. Τεχνητή νοημοσύνη Πληροφορική 2 Τεχνητή νοημοσύνη 1 2 Τι είναι τεχνητή νοημοσύνη; Τεχνητή νοημοσύνη (AI=Artificial Intelligence) είναι η μελέτη προγραμματισμένων συστημάτων τα οποία μπορούν να προσομοιώνουν μέχρι κάποιο

Διαβάστε περισσότερα

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 01 & 02. Δρ. Γεώργιος Χρ. Μακρής

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 01 & 02. Δρ. Γεώργιος Χρ. Μακρής ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ στα ΠΟΛΥΠΛΟΚΑ ΣΥΣΤΗΜΑΤΑ και ΔΙΚΤΥΑ Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός Χειμερινό Εξάμηνο Σπουδών Διάλεξη 01 & 02 Δρ. Γεώργιος Χρ. Μακρής Αναπαράσταση

Διαβάστε περισσότερα

Βασίλειος Κοντογιάννης ΠΕ19

Βασίλειος Κοντογιάννης ΠΕ19 Ενότητα3 Επικοινωνία και Διαδίκτυο Κεφ9: Διαδίκτυο, Web2.0, WebX.0 9.1 Ιστορικά στοιχεία Από πού, πότε με ποια μορφή και με ποια αφορμή ξεκίνησε η λειτουργία του Διαδικτύου; Ξεκίνησε στην Αμερική, το 1969,

Διαβάστε περισσότερα

Orchid: Integrating Schema Mapping and ETL ICDE 2008

Orchid: Integrating Schema Mapping and ETL ICDE 2008 Orchid: Integrating Schema Mapping and ETL ICDE 2008 Δομουχτσίδης Παναγιώτης Γενικά Data warehouse (DW): Είναι μία αποθήκη πληροφοριών οργανωμένη από ένα ενοποιημένο μοντέλο. Τα δεδομένα συλλέγονται από

Διαβάστε περισσότερα

Είδη Groupware. Λογισμικό Συνεργασίας Ομάδων (Groupware) Λογισμικό Groupware. Υπάρχουν διάφορα είδη groupware ανάλογα με το αν οι χρήστες εργάζονται:

Είδη Groupware. Λογισμικό Συνεργασίας Ομάδων (Groupware) Λογισμικό Groupware. Υπάρχουν διάφορα είδη groupware ανάλογα με το αν οι χρήστες εργάζονται: Μάθημα 10 Συστήματα Διάχυσης και Διαχείρισης Γνώσης Chapter 10 Knowledge Transfer In The E-world Chapter 13 Knowledge Management Tools and Knowledge Portals Συστήματα Διάχυσης και Διαχείρισης Γνώσης Λογισμικό

Διαβάστε περισσότερα

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ 2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,

Διαβάστε περισσότερα

Παραδοτέο Π.2.1. Υπερχώρος και διαχείριση μοντέλων

Παραδοτέο Π.2.1. Υπερχώρος και διαχείριση μοντέλων Έργο: Τίτλος Υποέργου: «ΘΑΛΗΣ: Ενίσχυση της Διεπιστημονικής ή και Διιδρυματικής έρευνας και καινοτομίας με δυνατότητα προσέλκυσης ερευνητών υψηλού επιπέδου από το εξωτερικό μέσω της διενέργειας βασικής

Διαβάστε περισσότερα

Μεταδεδομένα στο Ψηφιακό περιβάλλον

Μεταδεδομένα στο Ψηφιακό περιβάλλον Μεταδεδομένα στο Ψηφιακό περιβάλλον Μονάδα Αριστείας Ανοικτού Λογισμικού - Χαροκόπειο Πανεπιστήμιο Ψηφιακό Τεκμήριο Οτιδήποτε υπάρχει σε ηλεκτρονική μορφή και μπορεί να προσπελαστεί μέσω υπολογιστή Μεταδεδομένα

Διαβάστε περισσότερα

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρωτόκολλα και Αρχιτεκτονική Δικτύου Για να ανταλλάξουν δεδομένα δύο σταθμοί, εκτός από την ύπαρξη διαδρομής μεταξύ

Διαβάστε περισσότερα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

Διαβάστε περισσότερα

Προγραμματισμός διαδικτυακών εφαρμογών με PHP

Προγραμματισμός διαδικτυακών εφαρμογών με PHP ΕΣΔ516: Τεχνολογίες Διαδικτύου Προγραμματισμός διαδικτυακών εφαρμογών με PHP Ερωτήματα μέσω Περιεχόμενα Περιεχόμενα Λογισμικό για εφαρμογές Web Η τριεπίπεδη αρχιτεκτονική (3-tier architecture) Εισαγωγή

Διαβάστε περισσότερα

Ευφυείς Τεχνολογίες ----Πράκτορες

Ευφυείς Τεχνολογίες ----Πράκτορες Ευφυείς Τεχνολογίες ----Πράκτορες Ενότητα 5: Πολυπρακτορικά Συστήματα (Πολλαπλών Πρακτόρων) Δημοσθένης Σταμάτης demos@it.teithe.gr www.it.teithe.gr/~demos Μαθησιακοί Στόχοι της ενότητας 5 Η κατανόηση των

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Στόχος Θεματικής Ενότητας Οι μαθητές να περιγράφουν τους βασικούς τομείς της Επιστήμης των Υπολογιστών και να μπορούν

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Σημασιολογική Συσταδοποίηση Αντικειμένων Με Χρήση Οντολογικών Περιγραφών.

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διαχείριση Πολιτισμικών Δεδομένων Ενότητα 6: Εισαγωγή στις Βάσεις Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΛΟΓΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ (III) ΙΖΑΜΠΩ ΚΑΡΑΛΗ ΑΘΗΝΑ 2008 Σύγχρονεςανάγκες για αναπαράσταση γνώσης

Διαβάστε περισσότερα

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

Διαβάστε περισσότερα

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών Λίνα Μπουντούρη - Μανόλης Γεργατσούλης Ιόνιο Πανεπιστήμιο 15ο Πανελλήνιο Συνέδριο Ακαδημαϊκών Βιβλιοθηκών Διαδίκτυο και Επίπεδα ετερογένειας δεδομένων

Διαβάστε περισσότερα

Αρχές Προγραμματισμού Υπολογιστών

Αρχές Προγραμματισμού Υπολογιστών Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,

Διαβάστε περισσότερα

ΠΕΡΙΛΗΨΗ ΤΩΝ ΚΥΡΙΟΤΕΡΩΝ ΣΗΜΕΙΩΝ

ΠΕΡΙΛΗΨΗ ΤΩΝ ΚΥΡΙΟΤΕΡΩΝ ΣΗΜΕΙΩΝ ΠΕΡΙΛΗΨΗ ΤΩΝ ΚΥΡΙΟΤΕΡΩΝ ΣΗΜΕΙΩΝ MATHDebate - Η Φωνή των Φοιτητών - Ψάχνοντας την Αριστεία στην Εκπαίδευση Μαθηματικών μέσω της Αύξησης των Κινήτρων για Μάθηση (project 2016-2018) mathdebate.eu Σύντομη

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ Πτυχιακή εργασία ΠΡΟΣΔΙΟΡΙΣΜΟΣ ΔΕΙΚΤΩΝ ΚΑΤΑΝΑΛΩΣΗΣ ΕΝΕΡΓΕΙΑΣ ΣΤΑ ΑΝΤΛΙΟΣΤΑΣΙΑ ΤΟΥ ΤΜΗΜΑΤΟΣ ΑΝΑΠΤΥΞΕΩΣ ΥΔΑΤΩΝ Γεωργίου

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ: ΕΙΔΟΣ ΜΑΘΗΜΑΤΟΣ: Μικτό Γενικός σκοπός είναι να αποκτήσει ο καταρτιζόμενος τις αναγκαίες γνώσεις σχετικά με εργαλεία και τις τεχνικές για

Διαβάστε περισσότερα

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας 1. Εισαγωγή Σχολιασµός των εργασιών της 16 ης παράλληλης συνεδρίας µε θέµα «Σχεδίαση Περιβαλλόντων για ιδασκαλία Προγραµµατισµού» που πραγµατοποιήθηκε στο πλαίσιο του 4 ου Πανελλήνιου Συνεδρίου «ιδακτική

Διαβάστε περισσότερα

ΕΙΔΙΚΟ ΕΝΤΥΠΟ ΠΕΡΙΓΡΑΦΗΣ ΜΑΘΗΜΑΤΩΝ. Υποχρεωτικής επιλογής (Κατεύθυνσης)

ΕΙΔΙΚΟ ΕΝΤΥΠΟ ΠΕΡΙΓΡΑΦΗΣ ΜΑΘΗΜΑΤΩΝ. Υποχρεωτικής επιλογής (Κατεύθυνσης) ΕΙΔΙΚΟ ΕΝΤΥΠΟ ΠΕΡΙΓΡΑΦΗΣ ΜΑΘΗΜΑΤΩΝ Ακαδημαϊκή Μονάδα: Τομέας: Εργαστήριο/Σπουδαστήριο/Κλινική: Τίτλος Μαθήματος / Θέμα Εργασίας: Κωδικός Μαθήματος: Τύπος Μαθήματος: ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Πληροφοριακά Περιβάλλοντα

Διαβάστε περισσότερα

Τεχνολογία ανάπτυξης νέων ιστοσελίδων στο Semantic Web.

Τεχνολογία ανάπτυξης νέων ιστοσελίδων στο Semantic Web. Τεχνολογία ανάπτυξης νέων ιστοσελίδων στο Semantic Web. ΒΕΖΕΡΗΣ ΔΗΜΗΤΡΙΟΣ Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Η/Υ Δημοκρίτειο Πανεπιστήμιο Θράκης Λευκίππου 6, 67100 Ξάνθη ΕΛΛΑΔΑ leader@cosmos4u.com,

Διαβάστε περισσότερα

Η Πληροφορική ως γνώση και εργαλείο για τον σύγχρονο μηχανικό. Νικόλαος Μήτρου Καθηγητής, ΕΜΠ

Η Πληροφορική ως γνώση και εργαλείο για τον σύγχρονο μηχανικό. Νικόλαος Μήτρου Καθηγητής, ΕΜΠ Η Πληροφορική ως γνώση και εργαλείο για τον σύγχρονο μηχανικό Νικόλαος Μήτρου (mitrou@softlab.ntua.gr) Καθηγητής, ΕΜΠ ΗΜΕΡΙΔΑ Η ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ ΤΟΥ ΜΗΧΑΝΙΚΟΥ 8 Ιουλίου 2008 Περιεχόμενα Ο ρόλος

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018 Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

Διαβάστε περισσότερα

Θέματα Διπλωματικών Εργασιών. για το ΠΜΣ Πληροφορικής. Σημασιολογικό Ιστό και Ευφυείς Πράκτορες

Θέματα Διπλωματικών Εργασιών. για το ΠΜΣ Πληροφορικής. Σημασιολογικό Ιστό και Ευφυείς Πράκτορες Θέματα Διπλωματικών Εργασιών για το Ακαδημαϊκό Έτος 2016-2017 για το ΠΜΣ Πληροφορικής σχετικές με Σημασιολογικό Ιστό και Ευφυείς Πράκτορες Επιβλέπων: Ν. Βασιλειάδης Σημασιολογικός Ιστός 1. Ανακάλυψη «Επιστημονικών»

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #02 Ιστορική αναδρομή Σχετικές επιστημονικές περιοχές 1 Άδεια χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Διδάσκων: Γ. Χαραλαμπίδης,

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών 1 ίκτυα μικρά και μεγάλα Ένα δίκτυο υπολογιστών (computer network) είναι ένας συνδυασμός συστημάτων (δηλαδή, υπολογιστών),

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΔΙΟΙΚΗΣΗ της ΥΓΕΙΑΣ» ΑΞΙΟΛΟΓΗΣΗ ΑΠΟΔΟΣΗΣ ΠΡΟΣΩΠΙΚΟΥ: ΜΕΛΕΤΗ ΠΕΡΙΠΤΩΣΗΣ ΙΔΙΩΤΙΚΟΥ ΝΟΣΟΚΟΜΕΙΟΥ ΠΑΡΑΓΙΟΥΔΑΚΗ ΜΑΓΔΑΛΗΝΗ

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΔΙΟΙΚΗΣΗ της ΥΓΕΙΑΣ» ΑΞΙΟΛΟΓΗΣΗ ΑΠΟΔΟΣΗΣ ΠΡΟΣΩΠΙΚΟΥ: ΜΕΛΕΤΗ ΠΕΡΙΠΤΩΣΗΣ ΙΔΙΩΤΙΚΟΥ ΝΟΣΟΚΟΜΕΙΟΥ ΠΑΡΑΓΙΟΥΔΑΚΗ ΜΑΓΔΑΛΗΝΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΔΙΟΙΚΗΣΗ της ΥΓΕΙΑΣ» ΑΞΙΟΛΟΓΗΣΗ ΑΠΟΔΟΣΗΣ ΠΡΟΣΩΠΙΚΟΥ: ΜΕΛΕΤΗ ΠΕΡΙΠΤΩΣΗΣ ΙΔΙΩΤΙΚΟΥ ΝΟΣΟΚΟΜΕΙΟΥ ΠΑΡΑΓΙΟΥΔΑΚΗ ΜΑΓΔΑΛΗΝΗ Διπλωματική

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Αναπαράσταση Γνώσης Η περιγραφή ενός προβλήματος σε συνδυασμό με τους τελετές

Διαβάστε περισσότερα

Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ

Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ Ταυτότητα Σεναρίου Τίτλος: Προγραμματίζοντας ένα Ρομπότ Γνωστικό Αντικείμενο: Πληροφορική Διδακτική Ενότητα: Ελέγχω-Προγραμματίζω τον Υπολογιστή Τάξη: Γ Γυμνασίου

Διαβάστε περισσότερα

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού 1η διάλεξη Χαρακτηριστικά Μαθήματος Μάθημα προγραμματισμού (και όχι μόνον) Μπορεί να εξελιχθεί σε εφιάλτη αν δεν έχετε καλή γνώση και αρκετή εμπειρία προγραμματισμού (Java)

Διαβάστε περισσότερα

Ευφυείς Τεχνολογίες ----Πράκτορες

Ευφυείς Τεχνολογίες ----Πράκτορες Ευφυείς Τεχνολογίες ----Πράκτορες Ενότητα 7: Επικοινωνία Πρακτόρων στο περιβάλλον JADE Δημοσθένης Σταμάτης demos@it.teithe.gr www.it.teithe.gr/~demos Μαθησιακοί Στόχοι της ενότητας 7 Η κατανόηση του θεωρητικού

Διαβάστε περισσότερα

Ανάπτυξη Συστήματος Εκτέλεσης Διαδικτυακών

Ανάπτυξη Συστήματος Εκτέλεσης Διαδικτυακών ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Ανάπτυξη Συστήματος Εκτέλεσης Διαδικτυακών Κανόνων RuleML στο Σύστημα Παραγωγής CLIPS Διπλωματική Εργασία της Μόκας Ευαγγελίας

Διαβάστε περισσότερα

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Εισαγωγή-Σκοπός. Τρόποι δημιουργίας δυναμικών ιστοσελίδων. Dynamic Web Pages. Dynamic Web Page Development Using Dreamweaver. Τρόποι δημιουργίας δυναμικών

Διαβάστε περισσότερα

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας) Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016 Γεωργία Καπιτσάκη (Λέκτορας) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα συλλογής

Διαβάστε περισσότερα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Παιδαγωγικές δραστηριότητες μοντελοποίησης με χρήση ανοικτών υπολογιστικών περιβαλλόντων

Παιδαγωγικές δραστηριότητες μοντελοποίησης με χρήση ανοικτών υπολογιστικών περιβαλλόντων Παιδαγωγικές δραστηριότητες μοντελοποίησης με χρήση ανοικτών υπολογιστικών περιβαλλόντων Βασίλης Κόμης, Επίκουρος Καθηγητής Ερευνητική Ομάδα «ΤΠΕ στην Εκπαίδευση» Τμήμα Επιστημών της Εκπαίδευσης και της

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

Διαβάστε περισσότερα

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο 1 Γλώσσες Σήµανσης Γλώσσες σήµανσης: Αρχικά για τον καθορισµό εµφάνισης σελίδων, γραµµατοσειρών. Στη συνέχεια επεκτάθηκαν

Διαβάστε περισσότερα

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ. Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Βασικά θέματα Βάσεων Δεδομένων Ένα Σύστημα Βάσης Δεδομένων

Διαβάστε περισσότερα

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Διαπραγμάτευση μεταξύ Ευφυών Πρακτόρων Λογισμικού στο Περιβάλλον του Σημασιολογικού Ιστού Διπλωματική Εργασία της Καλλιόπης

Διαβάστε περισσότερα

Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας

Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας Σωτηρία Δριβάλου Εθνικό Μετσόβιο Πολυτεχνείο Μονάδα Εργονομίας Συστήματα διανομής ηλεκτρικής ενέργειας

Διαβάστε περισσότερα

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

Διαβάστε περισσότερα

Περί της Ταξινόμησης των Ειδών

Περί της Ταξινόμησης των Ειδών Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Φυσικής 541 24 Θεσσαλονίκη Καθηγητής Γεώργιος Θεοδώρου Tel.: +30 2310998051, Ιστοσελίδα: http://users.auth.gr/theodoru Περί της Ταξινόμησης

Διαβάστε περισσότερα

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 ELab Π Τ Υ Χ Ι Α

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Τεχνολογία Λογισμικού Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Τα σχέδια μαθήματος 1 Εισαγωγή

Τα σχέδια μαθήματος 1 Εισαγωγή Τα σχέδια μαθήματος 1 Εισαγωγή Τα σχέδια μαθήματος αποτελούν ένα είδος προσωπικών σημειώσεων που κρατά ο εκπαιδευτικός προκειμένου να πραγματοποιήσει αποτελεσματικές διδασκαλίες. Περιέχουν πληροφορίες

Διαβάστε περισσότερα

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Εξαγωγή γεωγραφικής πληροφορίας από δεδομένα παρεχόμενα από χρήστες του

Διαβάστε περισσότερα

Διαδίκτυο είναι ένα σύστημα διασυνδεδεμένων δικτύων και υπολογιστών που απλώνεται σε όλο τον κόσμο και έχουν πρόσβαση σε αυτό εκατομμύρια χρήστες.

Διαδίκτυο είναι ένα σύστημα διασυνδεδεμένων δικτύων και υπολογιστών που απλώνεται σε όλο τον κόσμο και έχουν πρόσβαση σε αυτό εκατομμύρια χρήστες. Διαδίκτυο είναι ένα σύστημα διασυνδεδεμένων δικτύων και υπολογιστών που απλώνεται σε όλο τον κόσμο και έχουν πρόσβαση σε αυτό εκατομμύρια χρήστες. Για να επιτευχθεί αυτό όλοι οι υπολογιστές και τα επιμέρους

Διαβάστε περισσότερα

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ

Διαβάστε περισσότερα

Πανεπιστήµιο Πατρών Τµήµα Μηχ/κών Η/Υ & Πληροφορικής ΜΠΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΥΦΥΗ ΣΥΣΤΗΜΑΤΑ ΑΠΟΦΑΣΕΩΝ. Ι.

Πανεπιστήµιο Πατρών Τµήµα Μηχ/κών Η/Υ & Πληροφορικής ΜΠΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΥΦΥΗ ΣΥΣΤΗΜΑΤΑ ΑΠΟΦΑΣΕΩΝ. Ι. Πανεπιστήµιο Πατρών Τµήµα Μηχ/κών Η/Υ & Πληροφορικής ΜΠΣ ΕΠΙΣΤΗΜΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΥΦΥΗ ΣΥΣΤΗΜΑΤΑ ΑΠΟΦΑΣΕΩΝ Ι. Χατζηλυγερούδης ΩΡΟΛΟΓΙΟ ΠΡΟΓΡΑΜΜΑ Τετάρτη/Τρίτη 5.00-7.00 µ.µ. (ΠΡΟΚΑΤ Τµήµατος

Διαβάστε περισσότερα

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

Διαβάστε περισσότερα

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών κεφάλαιο 1 Βασικές Έννοιες Επιστήμη 9 1Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ Στόχοι Στόχος του κεφαλαίου είναι οι μαθητές: να γνωρίσουν βασικές έννοιες και τομείς της Επιστήμης. Λέξεις κλειδιά Επιστήμη

Διαβάστε περισσότερα

2. ΔΙΑΠΙΣΤΕΥΣΕΙΣ: ΠΙΣΤΟΠΟΙΗΣΗ Ε.ΚΕ.ΠΙΣ. ΠΙΣΤΟΠΟΙΗΣΗ DQS DIN EN ISO 9001:2008

2. ΔΙΑΠΙΣΤΕΥΣΕΙΣ: ΠΙΣΤΟΠΟΙΗΣΗ Ε.ΚΕ.ΠΙΣ. ΠΙΣΤΟΠΟΙΗΣΗ DQS DIN EN ISO 9001:2008 2 1. ΕΙΣΑΓΩΓΗ Το Κέντρο Επαγγελματικής Κατάρτισης του Εθνικού και Καποδιστριακού Πανεπιστημίου Αθηνών σας καλωσορίζει στο Πρόγραμμα Συμπληρωματικής εξ Αποστάσεως Εκπαίδευσης και συγκεκριμένα στο εκπαιδευτικό

Διαβάστε περισσότερα

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 5: Resource Description Framework (RDF) Μ.Στεφανιδάκης 16-3-2015. Τα επίπεδα του Σημασιολογικού Ιστού RDF: Το κύριο πρότυπο του Σημασιολογικού Ιστού, χρησιμοποιεί

Διαβάστε περισσότερα

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων World Wide Web Παγκόσμιος Ιστός Internet - WWW Internet: παγκόσμιο δίκτυο υπολογιστών που βασίζεται στο πρωτόκολο επικοινωνίας TCP/IP και

Διαβάστε περισσότερα

Κεφάλαιο 8. Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής. Τεχνητή Νοηµοσύνη - Β' Έκδοση

Κεφάλαιο 8. Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής. Τεχνητή Νοηµοσύνη - Β' Έκδοση Κεφάλαιο 8 Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Αναπαράσταση Γνώσης Σύνολο συντακτικών

Διαβάστε περισσότερα

CRM για Εκπαιδευτικούς Φορείς

CRM για Εκπαιδευτικούς Φορείς Cosmos Business Systems S.A. Group CRM για Εκπαιδευτικούς Φορείς CRM Εκπαιδευτικών Φορέων Το CRM Εκπαιδευτικών Φορέων έχει αναπτυχθεί για να ικανοποιήσει τις ανάγκες διαχείρισης του υποψήφιου πελατολογίου

Διαβάστε περισσότερα

Υπηρεσίες ιστού και ιδιωτικότητα: Μια προσέγγιση βασισμένη στη δημιουργία προφίλ χρήστη για προσαρμοστικούς ιστότοπους

Υπηρεσίες ιστού και ιδιωτικότητα: Μια προσέγγιση βασισμένη στη δημιουργία προφίλ χρήστη για προσαρμοστικούς ιστότοπους Υπηρεσίες ιστού και ιδιωτικότητα: Μια προσέγγιση βασισμένη στη δημιουργία προφίλ χρήστη για προσαρμοστικούς ιστότοπους Η Μεταπτυχιακή Διατριβή παρουσιάστηκε ενώπιον του Διδακτικού Προσωπικού του Πανεπιστημίου

Διαβάστε περισσότερα

Κύρια σημεία. Η έννοια του μοντέλου. Έρευνα στην εφαρμοσμένη Στατιστική. ΈρευναστηΜαθηματικήΣτατιστική. Αντικείμενο της Μαθηματικής Στατιστικής

Κύρια σημεία. Η έννοια του μοντέλου. Έρευνα στην εφαρμοσμένη Στατιστική. ΈρευναστηΜαθηματικήΣτατιστική. Αντικείμενο της Μαθηματικής Στατιστικής Κύρια σημεία Ερευνητική Μεθοδολογία και Μαθηματική Στατιστική Απόστολος Μπουρνέτας Τμήμα Μαθηματικών ΕΚΠΑ Αναζήτηση ερευνητικού θέματος Εισαγωγή στην έρευνα Ολοκλήρωση ερευνητικής εργασίας Ο ρόλος των

Διαβάστε περισσότερα

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

Διαβάστε περισσότερα

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 1 ο : Εισαγωγή στην γλωσσική τεχνολογία. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος: 2012 2013

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 1 ο : Εισαγωγή στην γλωσσική τεχνολογία. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος: 2012 2013 ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ Μάθημα 1 ο : Εισαγωγή στην γλωσσική τεχνολογία Γεώργιος Πετάσης Ακαδημαϊκό Έτος: 2012 2013 ΤMHMA MHXANIKΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ, Πανεπιστήμιο Πατρών, 2012 2013 Τι είναι η γλωσσική τεχνολογία;

Διαβάστε περισσότερα

Ευφυείς Τεχνολογίες ----Πράκτορες

Ευφυείς Τεχνολογίες ----Πράκτορες Ευφυείς Τεχνολογίες ----Πράκτορες Ενότητα 3: Εισαγωγή στους Ευφυείς Πράκτορες Δημοσθένης Σταμάτης demos@it.teithe.gr www.it.teithe.gr/~demos Μαθησιακοί Στόχοι της ενότητας 3 H κατανόηση της φύσης των πρακτόρων

Διαβάστε περισσότερα