Extended Emerald ΟΜΑΔΑ 1. Emerald. A Knowledge-based Framework for Semantic Web Agents. Ζωγραφιςτοφ Δήμητρα

Σχετικά έγγραφα
Semantic Web. from DR-Device to DR-Prolog. Mathioudakis Georgios Bouloukakis Georgios

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

Εισαγωγικές έννοιες. Αντώνησ Κ Μαώργιώτησ

ΜΑΘΗΜΑΤΙΚΑ Α Γυμνασίου

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

Θεςιακά ςυςτιματα αρίκμθςθσ

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

TIM Εικονικό Περιβάλλον Συνεργασίας Οδθγίεσ Χριςθσ

Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων

Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ

Ιδιότθτεσ πεδίων Γενικζσ.

Η γλώςςα προγραμματιςμού C

Λαμβάνοντασ υπόψη ότι κατά την πρόςθεςη δφο δυαδικϊν ψηφίων ιςχφει: Κρατοφμενο

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Βάςεισ Δεδομζνων Ι. Ενότητα 12: Κανονικοποίηςη. Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικών Πλθροφορικισ ΤΕ

Σφντομεσ Οδθγίεσ Χριςθσ

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1

Διαδικαςία Προγράμματοσ Ωρομζτρθςθσ. (v.1.0.7)

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

Πωσ δθμιουργώ φακζλουσ;

Περιεχόμενα. χολι Χοροφ Αντιγόνθ Βοφτου - Πολιτικι Διαχείριςθσ Cookie 1

Αςφάλεια και Προςταςία Δεδομζνων

8 τριγωνομετρία. βαςικζσ ζννοιεσ. γ ςφω. εφω και γ. κεφάλαιο

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO

Σφςτημα Κεντρικήσ Υποςτήριξησ τησ Πρακτικήσ Άςκηςησ Φοιτητών ΑΕΙ

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Κατά τθν ενεργοποίθςθ τθσ ιδιότθτασ αυτισ ενδζχεται να εμφανιςτεί ζνα μινυμα ςαν αυτό τθσ παρακάτω εικόνασ. Απλά επιβεβαιϊςτε πατϊντασ ΟΚ.

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

Ειδικά Θζματα Βάςεων Δεδομζνων

Εργαςτιριο Βάςεων Δεδομζνων

ΑΝΣΙΣΡΟΦΗ ΤΝΑΡΣΗΗ. f y x y f A αντιςτοιχίηεται ςτο μοναδικό x A για το οποίο. Παρατθριςεισ Ιδιότθτεσ τθσ αντίςτροφθσ ςυνάρτθςθσ 1. Η. f A τθσ f.

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ

Δϋ Δθμοτικοφ 12 θ Κυπριακι Μακθματικι Ολυμπιάδα Απρίλιοσ 2011

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

Αυτόνομοι Πράκτορες. Αναφορά Εργασίας Εξαμήνου. Το αστέρι του Aibo και τα κόκαλα του

ΥΡΟΝΣΙΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣΗ» ΔΙΑΓΩΝΙΜΑ ΘΕΜΑΣΑ Β ΛΤΚΕΙΟΤ ΥΕΒΡΟΤΑΡΙΟ 2018 ΑΕΠΠ

Θέματα διπλωματικών εργαςιών ςτην ανάλυςη εικόνασ

Ανάπτυξη Εφαρμογών με Σχεςιακέσ Βάςεισ Δεδομένων

ελ. 11/235, Περιεχόμενα Φακζλου "Σεχνικι Προςφορά"

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

Μονάδες 6. Μονάδες ΓΑΨΕ Δεν υπάρχει ρίηα 2. ΑΝ Α>0 ΤΟΤΕ 3. ΤΕΛΟΣ_ΑΝ 4. ΑΛΛΙΩΣ 5. ίηα Τ_(Α)

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων

Μάρκετινγκ V Κοινωνικό Μάρκετινγκ. Πόπη Σουρμαΐδου. Σεμινάριο: Αναπτφςςοντασ μια κοινωνική επιχείρηςη

groupsms Interface: Εργαλείο μαζικών αποζηολών SMS

ςυςτιματα γραμμικϊν εξιςϊςεων

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον

Οδηγίεσ για την πρόςβαςη των δικαιοφχων ςτο ΟΠΣΑΑ

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ.

Περιοριςμοί μιασ Β.Δ. ςτθν Access(1/3)

Διαδικαζία Διατείριζης Εκηύπωζης Ιζοζσγίοσ Γενικού - Αναλσηικών Καθολικών. (v )

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν

Μθχανολογικό Σχζδιο, από τθ κεωρία ςτο πρακτζο Χριςτοσ Καμποφρθσ, Κων/νοσ Βαταβάλθσ

Διδάςκων: Κωνςταντίνοσ τεφανίδθσ

Οντοκεντρικόσ Προγραμματιςμόσ

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ

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

Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν. Ειςαγωγι ςτθν Python

HY437 Αλγόριθμοι CAD

Οδηγίες Πρόζβαζης ζηο EndNote Web. Πρόζβαζη ζηο EndNote Web

Διαγωνιςμόσ "Μακθτζσ ςτθν Ζρευνα (ΜΕΡΑ) "

Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα:

Εγκατάσταση «Μισθός 2005»

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι

Ειδικά Θζματα Βάςεων Δεδομζνων

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΗ. του ΙΑΣΡΟΦΑΡΜΑΚΕΤΣΙΚΟΤ ΦΑΚΕΛΟΤ ΑΘΕΝΩΝ Για τον ΟΙΚΟ ΝΑΤΣΟΤ ΕΡΓΑΣΗΡΙΑΚΟΙ ΓΙΑΣΡΟΙ. iknowhow Πληροφορική A.E

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1

Internet a jeho role v našem životě Το Διαδίκτυο και ο ρόλοσ του ςτθ ηωι μασ

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Πειραματικι Ψυχολογία (ΨΧ66)

Web οδθγόσ "φνοψθ τθσ νομοκεςίασ τθσ ΕΕ" Ενότθτα 2

Γ' ΛΥΚΕΙΟΥ Η ΤΑΞΗ ΤΗΣ ΤΕΛΙΚΗΣ ΕΠΙΛΟΓΗΣ. Στθ ΓϋΛυκείου οι Ομάδεσ Προςανατολιςμοφ είναι τρεισ:

τατιςτικά ςτοιχεία ιςτότοπου Κ.Ε.Π.Α. Α.Ν.Ε.Μ, για τθν περίοδο 1/1/ /12/2014

Γράφοι. Δομζσ Δεδομζνων Διάλεξθ 9

Ενδεικτική Οργάνωςη Ενοτήτων. Α Σάξη. Διδ. 1 ΕΝΟΣΗΣΑ 1. 6 Ομαδοποίθςθ, Μοτίβα,

Ενθμζρωςθ και προςταςία των καταναλωτών από τουσ κινδφνουσ που απορρζουν από τα χθμικά προϊόντα

DIOSCOURIDES VERSION

ΚΥΚΛΩΜΑΤΑ VLSI. Ασκήσεις Ι. Γ. Τσιατούχας. Πανεπιςτιμιο Ιωαννίνων. Τμιμα Μθχανικϊν Η/Υ και Πλθροφορικισ 8/11/18

Μετατροπι Αναλογικοφ Σιματοσ ςε Ψθφιακό. Διάλεξθ 10

Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ

ΑΞΙΟΛΟΓΗΣΗ ΕΚΠΑΙΔΕΥΤΙΚΟΥ

Εγχειρίδιο Χρήςησ Αυτοματοποίηςησ Κυκλώματοσ Πληρωμών ΟΛΠ μζςω e-banking VERSION <Final>

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες)

17. Πολυδιάςτατοι πίνακεσ

Πωσ δημιουργώ μάθημα ςτο e-class του ΠΣΔ [επίπεδο 1]

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

ΥΡΟΝΣΙ ΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣ Η» ΔΙΑΓΩΝΙ ΜΑ ΑΕΠΠ

Transcript:

Extended Emerald A Knowledge-based Framework for Semantic Web Agents Emerald ΟΜΑΔΑ 1 Ζαμπετάκησ Σταμάτησ zabetak@csd.uoc.gr Ζωγραφιςτοφ Δήμητρα dzograf@csd.uoc.gr Κλειςαρχάκη Σοφία kleisar@csd.uoc.gr Κονςολάκη Κωςταντίνα konsolak@csd.uoc.gr Κουτράκη Μαρία kutraki@csd.uoc.gr Μαθιουδάκησ Γιώργοσ gmathiou@csd.uoc.gr Μαυρίδου Ευανθία mavridou@csd.uoc.gr Μπουλουκάκησ Γιώργοσ boulouk@csd.uoc.gr Παπατριανταφφλλ ου Άγγελοσ angelpap@csd.uoc.gr Συμεονίδου Δανάη simeon@csd.uoc.gr Τρουλλινοφ Γεωργία troulin@csd.uoc.gr Φαφαλιόσ Παφλοσ fafalios@csd.uoc.gr 1

Περιεχόμενα 1. Ειςαγωγι... 3 1.1 Ειςαγωγι ςτο Emerald... 3 2. Επεκτάςεισ & Υλοποίθςθ... 5 2.1 Πρότυπο RuleML... 5 2.2 Μετατροπι ruleml ςε DR-Prolog: RuleMLParser... 5 2.3 Μετατροπι RDF ςε DR-Prolop: RdfParser... 7 2.4 Μετατροπι αποτελεςμάτων ςε RDF: ResultParser... 8 2.5 Metaprogram... 10 2.5.1 Σφγκριςθ αρικμϊν και υπολογιςμόσ αρικμθτικϊν παραςτάςεων... 10 2.5.2 Κανόνασ naf... 11 2.6 Μθχανι... 11 3. Παραδοτζα... 12 2

1. Ειςαγωγή Η ανάπτυξθ του Παγκόςμιου Ιςτοφ (World Wide Web) κατζςτθςε το διαδίκτυο προςβάςιμο ςε εκατομμφρια χριςτεσ, επιτρζποντασ τθν απρόςκοπτθ δθμοςιοποίθςθ και πρόςβαςθ ςε ζγγραφα ςτο διαδίκτυο. Η εκρθκτικι ανάπτυξθ του Παγκόςμιου Ιςτοφ δθμιοφργθςε προβλιματα «πλθροφοριακισ υπερφόρτιςθσ». Η παγκόςμια ερευνθτικι κοινότθτα ζχει ςτραφεί εδϊ και λίγα χρόνια ςε μία νζα κατεφκυνςθ εξζλιξθσ του ιςτοφ, θ οποία ονομάηεται «Σθμαςιολογικόσ Ιςτόσ» (Semantic Web) και περιλαμβάνει τθ ςαφι αναπαράςταςθ του νοιματοσ των πλθροφοριϊν και των εγγράφων, επιτρζποντασ τθν αυτόματθ επεξεργαςία και ενοποίθςθ διαδικτυακϊν πόρων από «ζξυπνα» προγράμματα-πράκτορεσ. Ο Σθμαςιολογικόσ Ιςτόσ κα επιτρζψει τον γριγορο και ακριβι εντοπιςμό πλθροφοριϊν ςτον παγκόςμιο ιςτό κακϊσ και τθν ανάπτυξθ ευφυϊν διαδικτυακϊν πρακτόρων οι οποίοι κα διευκολφνουν τθν επικοινωνία μεταξφ πλθκϊρασ ετερογενϊν θλεκτρονικϊν ςυςκευϊν με πρόςβαςθ ςτο διαδίκτυο. 1.1 Ειςαγωγή ςτο Emerald Στθν περιοχι του semantic web και πιο ςυγκεκριμζνα ςτα πλαίςια τθσ επικοινωνίασ ετερογενϊν πρακτόρων, οι οποίοι εφαρμόηουν διαφορετικά πρότυπα και λογικι, δίνεται θ δυνατότθτα ςτουσ πράκτορεσ να ανταλλάςουν πλθροφορίεσ ϊςτε να περιγράψουν και να αιτιολογιςουν τθν κζςθ τουσ ςε ςυγκεκριμζνα ερωτιματα. Μια πλατφόρμα που υλοποιεί αυτι τθν ιδζα είναι το emerald. Πιο ςυγκεκριμζνα, τα δομικά ςυςτατικά αυτισ τθσ εφαρμογισ είναι ο πράκτορασ (agent) και ο DR-Reasoner. Κάκε πράκτορασ διακζτει ζνα πλικοσ χαρακτθριςτικϊν. Αρχικά, εμπεριζχει μια βάςθ γνϊςθσ θ οποία περιγράφει όλθ τθ διακζςιμθ γνϊςθ. Επίςθσ, θ περιγραφι τθσ γνϊςθσ για το περιβάλλον, το πρότυπο ςυμπεριφοράσ όπωσ επίςθσ και τθν ςτρατθγικι/πολιτικι επιτυγχάνεται μζςω τθσ βάςθσ κανόνων (rule bases). Το δεφτερο δομικό ςυςτατικό, ο reasoner, είναι μια ανεξάρτθτθ τρίτθ υπθρεςία που ζχει τθν ιδιότθτα, λαμβάνοντασ τθ βάςθ γνϊςθσ και τθ defeasible logic βάςθ κανόνων από τον πράκτορα, να τθν επεξεργάηεται και να εξάγει αποτελζςματα ςτθ μορφι RDF αρχείων. Πιο αναλυτικά, ρόλοσ του reasoner είναι να ακοφει διαρκϊσ για καινοφρια μθνφματα (ACL μθνφματα) και να φροντίηει ϊςτε να επικοινωνιςει με τθν κατάλλθλθ μθχανι και να ενθμερϊςει για τα τελικά αποτελζςματα. Ουςιαςτικά, αποτελεί το προφίλ τθσ reasoning μθχανισ ςτθν οποία κα εκτελεςτεί θ επερϊτθςθ του χριςτθ. Συνεπϊσ, για τθν επικοινωνία του πράκτορα με τον reasoner ανταλλάςςονται δυο κατθγορίεσ ACL μθνυμάτων, τα REQUEST και INFORM αντίςτοιχα. 3

4 Μζχρι τϊρα το Emerald υποςτθρίηει τζςςερα reasoning engines, τα οποία χρθςιμοποιοφν ζνα πλικοσ από λογικζσ. Συγκεκριμζνα: DR-DEVICE: (defeasible reasoning) R-DEVICE: (deductive, Datalog-like rules) SPINdle:(defeasible logic engine) Prova: (prolog-like rule engine)

2. Επεκτάςεισ & Υλοποίηςη Σκοπόσ τθσ παροφςασ δουλειάσ είναι να επεκτείνει το device reasoning, με κατάλλθλεσ τροποποιιςεισ, ϊςτε πλζον να υποςτθρίηει DR-Prolog επεκτείνοντασ ταυτόχρονα τθ λογικι και τισ δυνατότθτεσ των πρακτόρων. Οι αρμοδιότθτεσ τθσ δικισ μασ ομάδασ είναι οι εξισ: Καταςκευι προτφπου για τα ruleml αρχεία. Δθμιουργία βάςθ του παραπάνω προτφπου των αρχείων όπου εκφράηονται οι προτιμιςεισ και οι απαιτιςεισ του «πελάτθ», ςτο παράδειγμα broker customer. Καταςκευι αναλυτι (parser) με ςκοπό τθν μετατροπι των ruleml αρχείων ςε DR-Prolog ςφνταξθ. Καταςκευι αναλυτι (parser) με ςκοπό τθ μετατροπι τθσ βάςθσ γνϊςθσ από RDF ςε Prolog facts. Καταςκευι αναλυτι (parser) με ςκοπό τθ μετατροπι τθσ λίςτασ των τελικϊν αποτελεςμάτων που προκφπτουν από τθν επερϊτθςθ ςε RDF μορφι. Επζκταςθ του metaprogram ϊςτε να υποςτθρίηει αρικμθτικζσ παραςτάςεισ, ςυγκρίςεισ και τον κανόνα naf. Δθμιουργία μθχανισ για τθν εκτζλεςθ ερωτθμάτων και τθν επιςτροφι αποτελεςμάτων με βάςθ τισ προτιμιςεισ του «πελάτθ». Παρακάτω, περιγράφονται λεπτομζρειεσ τόςο τθσ λειτουργικότθτασ όςο και τθσ υλοποίθςθσ αυτϊν των κεμάτων. 2.1 Πρότυπο RuleML Οι κανόνεσ που εκφράηουν τισ απαιτιςεισ (carlo_1.ruleml) και προτιμιςεισ (carlo_2.ruleml) του πελάτθ εκφράςτθκαν με ζνα νζο πρότυπο που δθμιουργιςαμε το οποίο είναι επζκταςθ τθσ RuleML ςφνταξθσ. Για τθ δθμιουργία του προτφπου βαςιςτικαμε ςτο υπάρχον πρότυπο RuleML που χρθςιμοποιεί θ DR-Prolog και εν μζρθ ςτα RuleML αρχεία από το Αριςτοτζλειο Πανεπιςτιμιο Θεςςαλονίκθσ. Η ςφνταξθ που επιλζξαμε για το πρότυπο είναι τζτοια ϊςτε να είναι εφαρμόςιμθ ςτθν DR-Prolog, εφκολα αναγνϊςιμθ και επεκτάςιμθ. Το ςχιμα του προτφπου (DTD) επιςυνάπτεται ςτο φάκελο τθσ εργαςίασ (dr-prolog.dtd). 2.2 Μετατροπή ruleml ςε DR-Prolog: RuleMLParser Για τθν εξαγωγι των κανόνων DR-Prolog, δθμιουργικθκε ο μετατροπζασ RuleMLparser. Σκοπόσ του είναι από τα RuleML αρχεία να εξάγει τουσ DR-Prolog κανόνεσ. Ο μετατροπζασ ζχει γραφτεί εξ ολοκλιρου ςτθ γλϊςςα Java και αποτελείται από δφο κλάςεισ, τθν κεντρικι κλάςθ RuleMLparser.java και τθν βοθκθτικι κλάςθ Tagger.java. Δζχεται ςαν είςοδο ζνα αρχείο RuleML και δθμιουργεί ζνα νζο αρχείο.p με τουσ κανόνεσ εκφραςμζνουσ ςε DR-Prolog ςφνταξθ. Η κλάςθ RuleMLparser.java περιζχει τζςςερισ ςτατικζσ μεκόδουσ. Η πρϊτθ μζκοδοσ είναι θ void createrules(file ruleml). Αυτι θ μζκοδοσ διαβάςει το RuleML αρχείο και δθμιουργεί τουσ κανόνεσ. Πιο αναλυτικά, χωρίηει το αρχείο ςε διακριτά μζρθ ζτςι ϊςτε να ξεχωρίςει τουσ κανόνεσ. Στθ ςυνζχεια, χωρίηει κάκε κανόνα ςε επιμζρουσ τμιματα και καλεί τισ κατάλλθλεσ ςυναρτιςεισ για να τα επεξεργαςτοφν. Κάκε επιμζρουσ ςυνάρτθςθ δζχεται ζνα από τα παραπάνω τμιματα και παράγει το αντίςτοιχο μζροσ του κάκε κανόνα. Στο τζλοσ, όλα τα τμιματα ενϊνονται, 5

ςχθματίηοντασ ζτςι τουσ τελικοφσ κανόνεσ. Για παράδειγμα, από το παρακάτω κομμάτι RuleML ςφνταξθσ (εικόνα 1), παράγεται ο κανόνασ τθσ εικόνασ 2. <Implies ruletype="defeasiblerule"> <oid>r1</oid> <head> <Atom neg="no"> <Rel>acceptable</Rel> <Slot type="var">x</slot> <Slot type="var">υ</slot> <Slot type="var">ζ</slot> <Slot type="var">w</slot> </Atom> </head> <body> <part type="atom"> <Rel>name</Rel> <Slot type="var">x</slot> <Slot type="var">x</slot> </part> <part type="atom"> <Rel>price</Rel> <Slot type="var">x</slot> <Slot type="var">y</slot> </part> <part type="atom"> <Rel>size</Rel> <Slot type="var">x</slot> <Slot type="var">z</slot> </part> <part type="atom"> <Rel>gardenSize</Rel> <Slot type="var">x</slot> <Slot type="var">w</slot> </part> </body> </Implies> Εικόνα 1. Τμήμα ruleml αρχείου defeasible(r1,acceptable(x,y,z,w),[name(x,x),price(x,y),size(x,z),gardensize(x,w)]). Εικόνα 2. Κανόνασ ςε DR-Prolog ςφνταξη Η δεφτερθ μζκοδοσ είναι θ String getquery(file ruleml). Αυτι θ μζκοδοσ βρίςκει το ερϊτθμα (Query) ςτο RuleML, το μετατρζπει ςε DR-Prolog ςφνταξθ και επιςτρζφει ζνα αλφαρικμθτικό που το αναπαριςτά (εικόνα 3). defeasibly(acceptable(x,y,z,w)) %(apartment, price, size, gardensize) Εικόνα 3. Ερώτημα ςε DR-Prolog ςφνταξη 6

Η τρίτθ μζκοδοσ είναι θ String getquerymode(file ruleml). Αυτι θ μζκοδοσ επιςτρζφει τον τφπο του ερωτιματοσ. Ο τφποσ μπορεί να είναι είτε answer είτε proof. Η τελευταία μζκοδοσ είναι θ String getqueryvars(file ruleml). Η μζκοδοσ αυτι επιςτρζφει τισ μεταβλθτζσ του ερωτιματοσ. Σκοπόσ τθσ είναι θ εφρεςθ των μεταβλθτϊν του ερωτιματοσ για τθν καταςκευι τθσ δομισ τθσ επιςτρεφόμενθσ λίςτασ. Η κλάςθ Tagger.java είναι μία βοθκθτικι κλάςθ για τθν ανάγνωςθ XML κϊδικα. Περιζχει ζνα ςφνολο από ςυναρτιςεισ που βρίςκουν ετικζτεσ και εξάγουν το περιεχόμενο τουσ. Για παράδειγμα, θ ςυνάρτθςθ String getfirsttagdata(string thetag), δζχεται ζνα όνομα ετικζτασ, πχ Head και επιςτρζφει ζνα αλφαρικμθτικό με το περιεχόμενο αυτισ τθσ ετικζτασ. 2.3 Μετατροπή RDF ςε DR-Prolop: RdfParser Στα πλαίςια τθσ ενςωμάτωςθσ τθσ DR-Prolog ςτθ μθχανι του Emerald, κρίκθκε απαραίτθτθ θ μετατροπι τθσ βάςθσ γνϊςθσ που χρθςιμοποιεί, από τθ μορφι RDF ςτθν οποία βρίςκεται, ςε Prolog facts. Για το ςκοπό αυτό υλοποιικθκε θ κλάςθ RdfParser. Η κλάςθ αυτι είναι γραμμζνθ εξ ολοκλιρου ςε java και πραγματοποιεί αυτι τθ μετατροπι. Συγκεκριμζνα, θ μζκοδοσ toprolog δζχεται ωσ είςοδο το rdf αρχείο τθσ βάςθσ γνϊςθσ και το όνομα του παραγόμενου prolog αρχείου. Κάνοντασ χριςθ του μοντζλου Semantic Web Knowledge Μiddleware ανακτάται θ πλθροφορία υπό τθ μορφι τριπλετϊν και ςτθ ςυνζχεια, μζςω τθσ μεκόδου tostring γράφεται ςε Prolog facts. Ζνα παράδειγμα που περιγράφει τθν μετατροπι αυτι φαίνεται παρακάτω. Στθν πρϊτθ εικόνα παρουςιάηεται θ αρχικι μορφι τθσ βάςθσ γνϊςθσ ενϊ ςτθ δεφτερθ θ παραγόμενθ Prolog μορφι: <tour:hotel rdf:id="cretamareroyal"> <tour:resortid>1</tour:resortid> <tour:hotelname>creta Mare Royal</tour:hotelName> <tour:hotelstars>6</tour:hotelstars> <tour:hotelcategory>business</tour:hotelca tegory> <tour:parking>true</tour:parking> Εικόνα 4. RDF μορφή fact(type(cretamareroyal,hotel)). fact(resortid(cretamareroyal,1)). fact(hotelname(cretamareroyal,creta Mare Royal)). fact(hotelstars(cretamareroyal,6)). fact(hotelcategory(cretamareroyal,business )). fact(parking(cretamareroyal,true)). fact(swimmingpool(cretamareroyal,true)). fact(breakfast(cretamareroyal,true)). Εικόνα 5. DR-Prolog facts public static void toprolog (String fromfile, String tofile) Εικόνα 6. Υπογραφή Μεθόδου 7

2.4 Μετατροπή αποτελεςμάτων ςε RDF: ResultParser Ζνασ από τουσ ςτόχουσ τθσ εργαςίασ ιταν, παρά τθν ενςωμάτωςθ τθσ DR-Prolog ςτο Emerald, να μθν επθρεαςτεί θ αλλθλεπίδραςθ με το χριςτθ όςον αφορά τθ μορφι των μθνυμάτων που ανταλλάςςονται μεταξφ τουσ. Για το ςκοπό αυτό κρίκθκε αναγκαία θ δθμιουργία ενόσ μθχανιςμοφ ο οποίοσ κα μετατρζπει το αποτζλεςμα του query, το οποίο επιςτρζφεται υπό μορφι λίςτασ Prolog, ςε μορφι rdf. Δθμιουργιςαμε ζτςι τθν κλάςθ ResultParser, θ οποία είναι υπεφκυνθ γι αυτι τθ μετατροπι. Συγκεκριμζνα, θ μζκοδοσ tordf δζχεται ωσ ορίςματα το query, το όνομα του και τθ λίςτα των αποτελεςμάτων και επιςτρζφει ζνα αρχείο rdf με τα αποτελζςματα του query. Το τελικό rdf δεν περιζχει πλζον όλθ τθν πλθροφορία που διατθρείται ςτθ βάςθ για τα επιςτρεφόμενα αποτελζςματα, παρά μόνο αυτιν που ηθτείται μζςω του query. Για το λόγο αυτό χρειάηονται οι μεταβλθτζσ του query, οφτωσ ϊςτε να μπορεί να γίνει θ αντιςτοίχθςθ των τιμϊν των αποτελεςμάτων με αυτζσ. Στο παράδειγμα που ακολουκεί περιγράφεται θ παραπάνω λειτουργικότθτα: nondeterministicgoal(x, defeasibly(acceptable(x,y,z,w)), ListModel) Εικόνα 7. Query Results = [a3,350,65,0,a5,350,55,15] Εικόνα 8. Λίςτα αποτελεςμάτων ςε Prolog public void tordf(string query, String queryname, String result, String filename) Εικόνα 9 Υπογραφή Μεθόδου 8

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE rdf:rdf [<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntaxns#'> <!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'> <!ENTITY xsd 'http://www.w3.org/2001/xmlschema#'> <!ENTITY dr-device 'file:/c:/jade/emerald/conclusions/projectvo58.rdf#'> ]> <rdf:rdf xmlns:drdevice="file:/c:/jade/emerald/conclusions/projectvo58.rdf#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <rdfs:class rdf:about="acceptable"> <rdfs:label>acceptable</rdfs:label> </rdfs:class> <rdf:property rdf:about="#x"> <rdfs:domain rdf:resource="#acceptable"/> </rdf:property> <rdf:property rdf:about="#y"> <rdfs:domain rdf:resource="#acceptable"/> </rdf:property> <rdf:property rdf:about="#z"> <rdfs:domain rdf:resource="#acceptable"/> </rdf:property> <rdf:property rdf:about="#w"> <rdfs:domain rdf:resource="#acceptable"/> </rdf:property> <dr-device:acceptable rdf:about="#acceptable0"> <dr-device:x>a3</dr-device:x> <dr-device:y>350</dr-device:y> <dr-device:z>65</dr-device:z> <dr-device:w>0</dr-device:w> </dr-device:acceptable> <dr-device:acceptable rdf:about="#acceptable1"> <dr-device:x>a5</dr-device:x> <dr-device:y>350</dr-device:y> <dr-device:z>55</dr-device:z> <dr-device:w>15</dr-device:w> </dr-device:acceptable> </rdf:rdf> Εικόνα 10. Τελικό αποτζλεςμα ςε RDF 9

2.5 Metaprogram Η υπάρχουςα ζκδοςθ του metaprogram δεν υποςτιριηε κάποιεσ λειτουργίεσ που ιταν απαραίτθτεσ για τθν εκτζλεςθ των ερωτθμάτων. Γι αυτό το λόγο χρειάςτθκε να αναβακμιςτεί ϊςτε να υποςτθρίηει τισ παρακάτω λειτουργίεσ: Σφγκριςθ αρικμϊν και υπολογιςμόσ αρικμθτικϊν παραςτάςεων Υποςτιριξθ του κανόνα naf 2.5.1 Σύγκριςη αριθμών και υπολογιςμόσ αριθμητικών παραςτάςεων Για τθν ςφγκριςθ αρικμϊν ειςάγαμε τουσ παρακάτω 5 κανόνεσ: definitely(x<y):- compute([x,+,0],k), compute([y,+,0],m), K @< M. definitely(x>y):- compute([x,+,0],k), compute([y,+,0],m), K @> M. definitely(x>=y):- compute([x,+,0],k), compute([y,+,0],m), K @>= M. definitely(x=<y):- compute([x,+,0],k), compute([y,+,0],m), K @=< M. definitely(x\==y):- X \== Y. Ο πρϊτοσ κανόνασ ελζγχει αν το Χ είναι μικρότερο του Y. Ο δεφτεροσ αν ο Χ είναι μεγαλφτεροσ του Υ. Ο τρίτοσ αν ο Χ είναι μεγαλφτεροσ ι ίςοσ του Υ. Ο τζταρτοσ αν ο Χ είναι μικρότεροσ ι ίςοσ του Υ και ο τελευταίοσ αν ο Χ είναι διαφορετικόσ από το Υ. Κακϊσ μπαίνουμε ςτο κάκε κανόνα καλείται ο κανόνασ compute. H παρουςία του κανόνα compute είναι απαραίτθτθ και ο λόγοσ είναι ότι κζλουμε ταυτόχρονα να ςυγκρίνουμε και αρικμοφσ αλλά και αρικμθτικζσ παραςτάςεισ. Ο λόγοσ για τον οποίο καλοφμε τθ compute με λίςτα είναι ότι οι αρικμθτικζσ παραςτάςεισ πρζπει να ζχουν ςυγκεκριμζνθ μορφι. Για παράδειγμα μια απλι αρικμθτικι παράςταςθ είναι θ *100,+,200+ θ οποία εκφράηει τθν πρόςκεςθ δυο αρικμϊν, του 100 με το 200. Γενικϊσ, οι αρικμθτικζσ παραςτάςεισ κα πρζπει να εκφράηονται ςε μορφι λίςτασ και θ κάκε λίςτα εμφωλευμζνθ ι μθ κα πρζπει να ζχει τρία μζλθ: αριςτερό μζλοσ(αρικμόσ ι λίςτα), δεξί μζλοσ(αρικμόσ ι λίςτα) και μεςαίο μζλοσ(τελεςτισ πράξθσ). Για παράδειγμα αν κζλαμε να κάνουμε τθ πράξθ του πολλαπλαςιαςμοφ δυο αρικμϊν όπου ο δεφτεροσ αρικμόσ προκφπτει από τθ πρόςκεςθ άλλων δυο (κζλουμε να κρατιςουμε τθ προτεραιότθτα των πράξεων), τότε προκφπτει θ εξισ ζκφραςθ: **10,+,20+, *, 5+. Στθ περίπτωςθ που ζχουμε μόνο αρικμοφσ να ςυγκρίνουμε τότε καλείται πάλι θ compute. Επειδι όμωσ κα αντιμετωπίηαμε πρόβλθμα από τθ ςτιγμι που θ compute δζχεται μόνο λίςτεσ, ζτςι αναγκαςτικαμε να μετατρζψουμε τον αρικμό ςε λίςτα με ζναν πολφ απλό τρόπο: *Χ,+,0+, το οποίο κα επιςτρζφει πάντα Χ. Με αυτό το τρόπο παρακάμπτουμε τθν compute. Η υλοποίθςθ τθσ compute είναι απλι και βαςίηεται ςτθ λογικι τθσ επίςκεψθσ κάκε κόμβου ενόσ δζντρου. Από τθ ςτιγμι που μια αρικμθτικι παράςταςθ μπορεί να αποτελείται από πολλά επίπεδα εμφωλευμζνων πράξεων λιςτϊν είναι ςαν να δουλεφουμε πάνω ςε κάποιο δζντρο. Ο υπολογιςμόσ των πράξεων ξεκινάει από χαμθλά, από τα φφλλα του δζντρου και καταλιγει ςτθ ρίηα όπου και επιςτρζφεται το τελικό αποτζλεςμα. Παρακάτω παρατίκεται θ υλοποίθςθ τθσ: 10

compute([h1, H2, H3 _], K2) :- compute(h1, K), compute([k, H2, H3], K2). compute([x, Y, Z _], K) :- number(x), number(z), Y == *, K is X * Z. compute([x, Y, Z _], K) :- number(x), number(z), Y == /, K is X / Z. compute([x, Y, Z _], K) :- number(x), number(z), Y == +, K is X + Z. compute([x, Y, Z _], K) :- number(x), number(z), Y == -, K is X - Z. compute([h1, H2, H3 _], K2) :- compute(h3, K), compute([h1, H2, K], K2). 2.5.2 Κανόνασ naf Η τελευταία αναβάκμιςθ που ζγινε ιταν θ ειςαγωγι του κανόνα naf: definitely(naf(x,z,m)):- not(naf(x,z,m)). Ο παραπάνω κανόνασ χρειάςτθκε ςτο παράδειγμά μασ για τισ προτιμιςεισ του πελάτθ. 2.6 Μηχανή Για τον ζλεγχο των λειτουργιϊν που υλοποιιςαμε καταςκευάςαμε μία μθχανι θ οποία αρχικά φορτϊνει τισ απαιτιςεισ και προτιμιςεισ του πελάτθ (ruleml αρχεία), τθ βάςθ γνϊςθσ (facts.p) και τζλοσ το metaprogram. Στθ ςυνζχεια καλείται ο αναλυτισ ο οποίοσ παράγει τουσ κανόνεσ, τουσ αποκθκεφει ςε ξεχωριςτό αρχείο και ταυτόχρονα τουσ φορτϊνει ςτθ μθχανι. Με ςυναρτιςεισ του αναλυτι, εξάγουμε το ερϊτθμα, τον τφπο και τισ μεταβλθτζσ του κακϊσ και το τι αντιπροςωπεφει θ κάκε μεταβλθτι. Για παράδειγμα, θ μεταβλθτι X του ςχιματοσ 3 αντιπροςωπεφει το όνομα του διαμερίςματοσ. Τζλοσ, ςαν αποτζλεςμα επιςτρζφεται μία λίςτα θ οποία ζχει μορφι ανάλογθ των μεταβλθτϊν του ερωτιματοσ. Για παράδειγμα, για το ερϊτθμα του ςχιματοσ 3, θ απάντθςθ είναι: result=[a3,350,65,0,a5,350,55,15,a7,375,65,12] Το παραπάνω αποτζλεςμα αποκθκεφεται ςε ζνα αρχείο με όνομα result.txt. 11

3. Παραδοτέα 1. carlo_1.ruleml 2. carlo_2.ruleml 3. dr-prolog.dtd 4. amb_metaprogram_add.p 5. RdfParser.java 6. ResultArray.java 7. ResultParser.java 8. ResultType.java 9. Engine.java 10. RuleMLparser.java 11. Tagger.java 12