Σημασιολογική Ολοκλήρωση
Ολοκλήρωση Πληροφορίας Το πρόβλημα της ολοκλήρωσης πληροφορίας (information integration) προκύπτει από την ύπαρξη ετερογενών πηγών αποθήκευσης και επεξεργασίας δεδομένων. Η ετερογένεια οφείλεται στους διαφορετικούς πιθανούς τρόπους οργάνωσης των δεδομένων: διαφορετικά μοντέλα και σχήματα: κάποιες πηγές οργανώνουν δεδομένα σε σχεσιακό μοντέλο, ενώ κάποιες άλλες σε XML. διαφορές λεξιλογίου: μπορεί το χαρακτηριστικό ‘τιμή’ σε κάποιο σχήμα να υπάρχει ως ‘κόστος’ σε κάποιο άλλο. συντακτικές διαφορές: μπορεί σε κάποια πηγή ημιδομημένων δεδομένων οι οθόνες 17’ να παρέχονται διασχίζοντας το μονοπάτι οθόνη/17’, ενώ σε κάποια άλλη διασχίζοντας το μονοπάτι /17’/οθόνη. σημασιολογικές διαφορές: μπορεί μια πηγή να χρησιμοποιεί το σχεσιακό μοντέλο και κάποια άλλη το μοντέλο RDF. Η έννοια της υποκλάσης δεν ορίζεται στο σχεσιακό!
Ολοκλήρωση Πληροφορίας Συχνά, δεδομένα που συσχετίζονται μεταξύ τους (και άρα ενδιαφέρει η επεξεργασία τους) βρίσκονται σε τέτοιες διαφορετικές και ετερογενείς πηγές δεδομένων. Θα θέλαμε ενιαία πρόσβαση στη πληροφορία ανεξάρτητα από το πώς είναι αποθηκευμένη ή τι σύστημα την διαχειρίζεται. Ιδανικά, θα θέλαμε την εξής αρχιτεκτονική: Πηγή Π1 με Σχήμα Σ1: αποθηκεύει και επεξεργάζεται δεδομένα. Πηγή Π2 με Σχήμα Σ2: αποθηκεύει και επεξεργάζεται δεδομένα. Πηγή Πν..... Σχήμα Σ: είναι το σχήμα στο οποίο θα γίνονται οι ερωτήσεις σε κάποια από τις διαθέσιμες υψηλού επιπέδου γλώσσες (π.χ. SQL για το σχεσιακό) Στόχος: να διατυπώνουμε ερωτήσεις στο Σ και να παίρνουμε απαντήσεις από τα Π1, Π2,...Πν, χωρίς να μας απασχολεί ότι το Σ1 είναι διαφορετικό από το Σ2, το Σ2 από το Σ3, κ.ο.κ.
Mediators Ολοκλήρωση πληροφορίας με mediators Kαθολικό σχήμα (mediated schema, global schema): το σχήμα που γίνονται οι ερωτήσεις. Σχήματα πηγών. Κανόνες αντιστοίχισης (mapping rules) μεταξύ του καθολικού σχήματος και των σχημάτων των πηγών: Global as view (view definition): κάθε στοιχείο του καθολικού σχήματος εκφράζεται ως ερώτηση/όψη (query/view) πάνω στα σχήματα των πηγών. Local as view (view definition): κάθε στοιχείο του σχήματος μιας πηγής εκφράζεται ως ερώτηση/όψη (query/view) πάνω στο καθολικό σχήμα. Αυτό γίνεται για όλες τις πηγές. Δείτε και την Διάλεξη 4.
…προς τον Σημασιολογικό Ιστό Η ολοκλήρωση πληροφορίας με χρήση καθολικού σχήματος και GAV/LAV κανόνες αντιστοίχισης εφαρμόζεται και σε ημιδομημένα δεδομένα. Ενώ για παράδειγμα στα σχεσιακά συστήματα βάσεων δεδομένων, οι κανόνες αντιστοίχισης αφορούν πίνακες (tables) και χαρακτηριστικά (attributes), στα ημιδομημένα αφορούν κόμβους και μονοπάτια (θυμηθείτε τα μοντέλα αναπαράστασης ημιδομημένων δεδομένων π.χ. ΟΕΜ και το δενδρικό μοντέλο XML). Π.χ. στην περίπτωση ολοκλήρωσης XML δεδομένων: Global as view (view definition): κόμβοι/μονοπάτια ενός καθολικού XML δενδρικού μοντέλου εκφράζονται ως ερώτηση/όψη (query/view) πάνω στα XML αρχεία των πηγών. Local as view (view definition): κόμβοι/μονοπάτια του δενδρικού XML μοντέλου μιας πηγής εκφράζεται ως ερώτηση/όψη (query/view) πάνω στο καθολικό XML δενδρικό μοντέλο. Αυτό γίνεται για όλες τις πηγές.
…προς τον Σημασιολογικό Ιστό Για την επιλογή GAV ή LAV ισχύουν τα ίδια πλεονεκτήματα και μειονεκτήματα που αναφέρονται και στην ολοκλήρωση πληροφορίας στα παραδοσιακά συστήματα Βάσεων Δεδομένων. GAV: Εύκολη μετατροπή της ερώτησης που διατυπώνεται στο καθολικό σχήμα σε ερωτήσεις στις πηγές, χρησιμοποιώντας τους κανόνες αντιστοίχισης. Δύσκολη η εισαγωγή νέας πηγής. LAV: Δύσκολη μετατροπή της ερώτησης που διατυπώνεται στο καθολικό σχήμα σε ερωτήσεις στις πηγές, χρησιμοποιώντας τους κανόνες αντιστοίχισης. Εύκολη η εισαγωγή νέας πηγής. Ακριβώς λόγω της ευελιξίας στην εισαγωγή νεών πηγών η LAV προσέγγιση είναι δημοφιλής στην ολοκλήρωση δεδομένων στον Σημασιολογικό Ιστό. Συστήματα ολοκλήρωσης XML πληροφορίας: το πρώτο βήμα προς την ολοκλήρωση στο Σημασιολογικό Ιστό.
Το σύστημα Agora I. Manolescu, D. Florescu, D. Kossmann. “Answering XML Queries over Heterogeneous Data Sources”, VLDB Conf., Αρχιτεκτονική ολοκλήρωσης πηγών πληροφορίας χρησιμοποιώντας ένα καθολικό σχήμα. Ακολουθεί την LAV προσέγγιση. Πηγές: οργάνωση δεδομένων σε σχεσιακές βάσεις ή XML αρχεία. Σχήματα πηγών: σχεσιακά Καθολικό σχήμα: XML schema Γλώσσα ερωτήσεων: XQuery
Το σύστημα Agora ”123” ”cough” ”flu” ”1/10/90” Doe,John ”here” Doe,John ”here” pIDDateSymptomsDiagnosis 1231/9/90coughflu 1231/10/90headache... Πηγή Π1 Πηγή Π2 Πώς θέλει ο χρήστης να ‘βλέπει’ τα δεδομένα Πώς είναι τα δεδομένα στην πραγματικότητα ‘Iδεατό XML αρχείο’
Το σύστημα Agora ”123” ”cough” ”flu” ”1/10/90” Doe,John ”here” pIDDateSymptomsDiagnosis 1231/9/90coughflu 1231/10/90headache... Πηγή Π1 Πηγή Π2 Πώς θέλει ο χρήστης να ‘βλέπει’ τα δεδομένα Πώς είναι τα δεδομένα στην πραγματικότητα <!ELEMENT entry (date,symptoms....)..... ‘Iδεατό XML αρχείο’ DTD
-10- Το σύστημα Agora ”123” ”cough” ”flu” ”1/10/90” Doe,John ”here” pIDDateSymptomsDiagnosis 1231/9/90coughflu 1231/10/90headache... Πηγή Π1 Πηγή Π2 Πώς θέλει ο χρήστης να ‘βλέπει’ τα δεδομένα Πώς είναι τα δεδομένα στην πραγματικότητα ‘Iδεατό XML αρχείο’ Καθολικό σχήμα record patientSSnoentry datesymptoms
-11- Κανονικοποίηση XQuery ερωτήσεων το σύστημα Agora απαιτεί οι ερωτήσεις XQuery να έχουν συγκεκριμένη μορφή: FOR $p in document(“patient.xml”)//patient WHERE $p/address/city=“Palm Beach” RETURN (FOR $r in document(“records.xml”)//record WHERE $r/patientSSno=$p/Ssno return $r/entry) FOR $p in document(“patient.xml”)//patient, $r in document(“records.xml”)//record WHERE $p/address/city=“Palm Beach” and $r/patientSSno=$p/Ssno RETURN $r/entry Η 2η ερώτηση είναι η κανονικοποιημένη μορφή της 1ης. Προσέξτε για παράδειγμα ότι δεν περιέχονται φωλιάσματα από FOR στην 2η ερώτηση.
-12- Μετατροπή σε SQL Oι ερωτήσεις χρειάζεται να κανονικοποιηθούν για να είναι εφικτή η μετατροπή τους σε SQL ερώτηση. Η SQL αυτή ερώτηση θα διατυπωθεί σε καθολικό σχήμα βάσης της μορφής: Document(docID, docURI, rootID) Element(elID, elTag, elTypeID) Child(parentID, childID, childValID, childIndex) Attribute(attrID, attrElID, attrName, attrValID) Value(valID, value) TransClosure(anc, desc) Το σχήμα αυτό στην ουσία κωδικοποιεί την δομή ενός XML αρχείου.
-13- Μετατροπή σε SQL FOR $e in doc(“records.xml”)//entry WHERE $e/patientSSno=“123” RETURN $e/diagnosis SELECT docID, rootD FROM Document WHERE docURI=“records.xml” Document(docID, docURI, rootID) Element(elID, elTag, elTypeID) Child(parentID, childID, childValID, childIndex) Attribute(attrID, attrElID, attrName, attrValID) Value(valID, value) TransClosure(anc, desc)
-14- Μετατροπή σε SQL FOR $e in doc(“records.xml”)//entry WHERE $e/patientSSno=“123” RETURN $e/diagnosis SELECT e0.elID as $e, d0.docID, d0.rootID FROM Document d0, TransClosure tc0, Element e0 WHERE d0.docURI=“records.xml” and d0.rootID=tc.anc and tc.desc=e0.elID and e0.tag=“entry” Document(docID, docURI, rootID) Element(elID, elTag, elTypeID) Child(parentID, childID, childValID, childIndex) Attribute(attrID, attrElID, attrName, attrValID) Value(valID, value) TransClosure(anc, desc)
-15- Μετατροπή σε SQL FOR $e in doc(“records.xml”)//entry WHERE $e/patientSSno=“123” RETURN $e/diagnosis Read the paper! Document(docID, docURI, rootID) Element(elID, elTag, elTypeID) Child(parentID, childID, childValID, childIndex) Attribute(attrID, attrElID, attrName, attrValID) Value(valID, value) TransClosure(anc, desc)
-16- Μετατροπή σε SQL Δύσκολη διαδικασία! Δεν γίνεται όταν η XQuery έχει συναρτήσεις με αναδρομές. Δεν γίνεται όταν η XQuery χρησιμοποιεί instanceOf, typeswitch, κ.λ.π. Θυμηθείτε ότι η παραγόμενη SQL ερώτηση αφορά το καθολικό σχήμα βάσης! Οπότε χρειαζόμαστε τώρα να μετατρέψουμε την ερώτηση ώστε να μπορεί να διατυπωθεί στις πηγές. Δύο είδη πηγών: σχεσιακές βάσεις ή XML αρχεία.
-17- Μετατροπή σε SQL Έστω ότι η πηγή είναι σχεσιακή βάση: χρησιμοποιούμε αλγορίθμους που βασίζονται σε LAV κανόνες αντιστοίχισης για την μετατροπή της ερώτησης του καθολικού σχήματος στα σχήματα των πηγών. Έστω ότι η πηγή είναι XML: χρησιμοποιούμε πάλι την κωδικοποίηση της δομής ενός XML αρχείου σε σχήμα βάσης! εφαρμόζουμε αλγορίθμους που βασίζονται σε LAV κανόνες αντιστοίχισης, όπως και πριν.
-18- From: I. Manolescu, D. Florescu, D. Kossmann. “Answering XML Queries over Heterogeneous Data Sources”, VLDB Conf., 2001.
-19- Σύστημα Agora Σύνοψη: Σχήματα Πηγών: σχεσιακά ή XML. Καθολικό σχήμα: XML schema Γλώσσα ερωτήσεων: XQuery Επεξεργασία ερώτησης: Διατύπωση στο καθολικό XML schema Μετατροπή σε SQL ερώτηση πάνω σε ένα καθολικό σχήμα βάσης Μετατροπή της SQL ερώτησης πάνω σε σχήματα βάσης των πηγών. Μειονέκτημα: δεν απομακρύνεται ουσιαστικά από την φιλοσοφία των σχεσιακών βάσεων δεδομένων (αυστηρή οργάνωση, δομή, κ.λ.π.).
-20- Το σύστημα Xyleme S. Cluet, P. Veltri, D. Vodislav. “Views in a Large Scale XML Repository”, VLDB Conf., Αρχιτεκτονική ολοκλήρωσης πηγών πληροφορίας χρησιμοποιώντας ένα view schema (δηλ. καθολικό σχήμα). Ακολουθεί την LAV προσέγγιση. Πηγές: οργάνωση δεδομένων σε XML αρχεία. Καθολικό σχήμα: DTD Σχήματα πηγών: DTD Γλώσσα ερωτήσεων: ala OQL
-21- Το σύστημα Xyleme Πηγές View Κάθε πηγή έχει ως σχήμα μια δενδρική αναπαράσταση του DTD για τα XML αρχεία που αποθηκεύει. Concrete DTD Το σχήμα (view) στο οποίο διατυπώνονται οι ερωτήσεις είναι και αυτό μια δενδρική αναπαράσταση που αντιπροσωπεύει ένα ιδεατό DTD. Abstract DTD Από εδώ και πέρα λέγοντας concrete και abstract DTD θα αναφερόμαστε στην ουσία στις δενδρικές τους αναπαραστάσεις!
-22- Το σύστημα Xyleme Παράδειγμα ερώτησης: SELECT p/title FROM doc in culture, p in doc/painting, WHERE p/author contains \van Gogh" and p/museum contains \Orsay“....ή αλλιώς δείτε το query pattern tree:
-23- Kανόνες αντιστοίχισης στο Xyleme Είδη κανόνων αντιστοίχισης που μελετούνται στο Xyleme: tag-to-tag: από έναν κόμβο ενός concrete DTD σε έναν κόμβο του abstract DTD. DTD-to-DTD: από ένα (μέρος ενός) concrete DTD σε ένα (μέρος του) abstract DTD. path-to-path: από ένα μονοπάτι ενός concrete DTD σε ένα μονοπάτι του abstract DTD.
-24- Tag-to-tag αντιστοίχιση Η ερώτηση γίνεται στο abstract DTD. Για κάθε tag-to-tag κανόνα αντιστοίχισης μεταξύ ενός abstract node και ενός concrete node γίνεται η σχετική αντικατάσταση στην ερώτηση. Παράδειγμα: έστω ότι η ερώτηση είναι της μορφής /painting/title/* και ότι το μονοπάτι στο concrete DTD είναι /painting/caption. Ένας κανόνας αντιστοίχισης title-->caption θα μετασχηματίσει την ερώτηση σε /painting/caption/* Προβλήματα: Δεν μετασχηματίζεται η ερώτηση αν τα δύο μονοπάτια είναι διαφορετικού μήκους, όπως π.χ. όταν το μονοπάτι στο concrete DTD είναι /painting/description/caption. Χρειάζεται η εισαγωγή // για τον καθορισμό ancestor/descendent σχέσεων, γεγονός που αυξάνει τον χρόνο εκτέλεσης ερωτήσεων και αλλάζει πολλές φορές την σημασιολογία (π.χ. στην ερώτηση /painting//caption όταν το caption αφορά το exhibition - /painting/description/exhibition/caption).
-25- DTD-to-DTD αντιστοίχιση Η ερώτηση γίνεται στο abstract DTD. Οι κανόνες αντιστοίχισης είναι στην ουσία ερωτήσεις ala OQL πάνω στο concrete DTD. Πρόκειται για GAV μετασχηματισμό! Για κάθε DTD-to-DTD κανόνα αντιστοίχισης μεταξύ ενός abstract node και ενός concrete node γίνεται ο σχετικός μετασχηματισμός της ερώτησης (εύκολα γιατί έχουμε GAV μετασχηματισμό όπως είπαμε). Παράδειγμα:
-26- DTD-to-DTD αντιστοίχιση SELECT culture [ painting [ title : t, author : a, museum : m ] ]) FROM p in WorkOfArt, a in p/artist/name, t in p/title, m in p/gallery
-27- path-to-path αντιστοίχιση Η ερώτηση γίνεται στο abstract DTD. Οι κανόνες αντιστοίχισης εμπλέκουν μονοπάτια: Ας δούμε πώς γίνεται ο μετασχηματισμός ερωτήσεων...
-28- path-to-path αντιστοίχιση Συγκεντρώνονται όλα τα abstract paths που συμμετέχουν στην ερώτηση: (α) /culture/painting, (β) /culture/painting/title, (γ) /culture/painting/author, (δ) /culture/painting/museum. Εφαρμόζουμε τους κανόνες: /culture/painting --> painter/painting /culture/painting/title -->painter/painting/name /culture/painting/author -->painter /culture/painting/museum --> painter/painting/location Πηγές Ερώτηση View Κανόνες αντιστοίχισης
-29- path-to-path αντιστοίχιση Ενώνουμε τα καινούρια μονοπάτια που προέκυψαν και φτιάχνουμε ένα δέντρο, π.χ.: /culture/painting --> painter/painting /culture/painting/title -->painter/painting/name /culture/painting/author -->painter /culture/painting/museum --> painter/painting/location To δέντρο δεν θα πρέπει να έχει δομικές διαφορές με το δέντρο της ερώτησης. Πηγές Ερώτηση View Κανόνες αντιστοίχισης painter painting namelocation
-30- path-to-path αντιστοίχιση Ενώνουμε τα καινούρια μονοπάτια που προέκυψαν και φτιάχνουμε ένα δέντρο, π.χ.: /culture/painting --> painter/painting /culture/painting/title -->painter/painting/name /culture/painting/author -->painter /culture/painting/museum --> painter/painting/location Στην περίπτωση του παραδείγματος υπάρχουν δομικές διαφορές. Πηγές Ερώτηση View Κανόνες αντιστοίχισης painter painting namelocation
-31- path-to-path αντιστοίχιση Ας δούμε την ερώτηση που προκύπτει χρησιμοποιώντας τους άλλους κανόνες: /culture/painting --> WorkOfArt /culture/painting/title -->WorkOfArt/title /culture/painting/author -->WorkOfArt/artist/name /culture/painting/museum --> WorkOfArt/gallery Στην περίπτωση του παραδείγματος δεν υπάρχουν δομικές διαφορές. Πηγές Ερώτηση View Κανόνες αντιστοίχισης WorkOfArt title name galleryartist
-32- Το σύστημα Xyleme Σύνοψη: Σχήματα Πηγών: DTD Καθολικό σχήμα: DTD Γλώσσα ερωτήσεων: ala OQL Επεξεργασία ερώτησης: Διατύπωση στο abstract DTD Μετατροπή μέσω των path-to-path κανόνων αντιστοίχισης σε ερώτηση πάνω στα concrete DTDs. Μειονέκτημα: O περιορισμός ότι τo δέντρο της μετασχηματισμένης ερώτησης δεν θα πρέπει να έχει δομικές διαφορές με το δέντρο της ερώτησης.
η σημασιολογία που είναι?? Μέχρι τώρα, η ολοκλήρωση πληροφορίας στηρίζεται σε αντιστοιχίσεις συντακτικού τύπου. Επίσης, δεν λαμβάνεται υπ’όψη κάποιας ιδιαίτερης μορφής σημασιολογίας. Η αιτία είναι η χρήση των τεχνολογιών XML, και συγκεκριμένα του δενδρικού μοντέλου τους ως σχήμα (καθολικό σχήμα και σχήμα πηγών)....συνεχίζουμε με μια αρχιτεκτονική που εισάγει οντολογίες στο επίπεδο του καθολικού σχήματος.
-34- Ολοκλήρωση XML πηγών με χρήση οντολογιών B. Amann, C. Beeri, I. Fundulaki, M. Scholl. “Ontology-based integration of XML resources”, ISWC Conf., Αρχιτεκτονική ολοκλήρωσης πηγών πληροφορίας χρησιμοποιώντας μια οντολογία. Ακολουθεί την LAV προσέγγιση. Πηγές: οργάνωση δεδομένων σε XML αρχεία. Καθολικό σχήμα: οντολογία Σχήματα πηγών: XML Στην ουσία δεν υπάρχει κάποιο διαθέσιμο σχήμα, π.χ. DTD. Το δενδρικό μοντέλο των ίδιων των XML αρχείων που διαθέτει μια πηγή παίζει το ρόλο του σχήματος (θυμηθείτε ότι στα ημιδομημένα/XML δεδομένα η δομή και τα ίδια τα δεδομένα κωδικοποιούνται μαζί, χωρίς να υπάρχει σαφής διαχωρισμός). Γλώσσα ερωτήσεων: ala OQL
-35- Το καθολικό σχήμα (οντολογία) Συστατικά: concepts, attributes, roles, inverse roles, IS_A relationships. Μοιάζει με το αντικειμενοστρεφές μοντέλο αναπαράστασης δεδομένων. Είναι στην ουσία μια πολύ ‘ελαφριάς μορφής’ οντολογία.
-36- Το καθολικό σχήμα (οντολογία) Derived roles: π.χ. για τα concept Actor Man_Made_Object: carried_out.produced produced_by.carried_out_by Derived concepts: π.χ. Person.carried_out.produced είναι subconcept του Actor. carried_out.produced και του Activity.produced. Τα derived concepts και derived roles ορίζουνε μια derived ontology
-37- Path-to-path αντιστοίχιση Οι κανόνες αντιστοίχισης εμπλέκουν μονοπάτια, π.χ.: R1: as u1 ← Person R2: as u2 ← has_name R3: u1/Painting as u3 ← carried_out.produced R4: as u4 ← has_title μονοπάτι οντολογίας μονοπάτι XML αρχείου πηγής (εδώ αφορά το element Painting) μονοπάτι οντολογίας μονοπάτι XML αρχείου πηγής (εδώ αφορά το attribure title) Τα μονοπάτια στα XML αρχεία των πηγών προσδιορίζονται με εκφράσεις μονοπατιών (δείτε και την 6η διάλεξη)
-38- Path-to-path αντιστοίχιση Ο ρόλος των μεταβλητών είναι σημαντικός, π.χ.: S1: as v1 ← Man Made Object S2: as v2 ← produced by.carried out by S3: as v2 ← Person S4: as v3 ← has name S5: as v1 ← Man Made Object Δείτε ότι το concept Person αντιστοιχίζεται σε δύο μονοπάτια. Πρακτικά, η σύνθεση των κανόνων για το S1 και το S2, και ο κανόνας για το S3 δίνουν την αντιστοίχιση για το concept Person. Δεν χρειάζεται να δηλώσουμε επιπλέον κανόνες.
-39- Μετασχηματισμός ερωτήσεων Έστω η αρχική ερώτηση πάνω στην οντολογία: ‘βρες τους τίτλους από ότι έχει δημιουργήσει ο Van Gogh’. SELECT c FROM Person a, a.has_name b, a.carried out.produced.has_title c, WHERE b = “Van Gogh” Κανόνες αντιστοίχισης R1: as u1 ← Person R2: as u2 ← has_name R3: u1/Painting as u3 ← carried_out.produced R4: as u4 ← has_title Η ερώτηση μετασχηματίζεται στην παρακάτω: SELECT c FROM a, b, c, WHERE b = “Van Gogh”
-40- Μετασχηματισμός ερωτήσεων Αναλυτικά: SELECT c FROM Person a, a.has_name b, a.carried out.produced.has_title c, WHERE b = “Van Gogh” Κανόνες αντιστοίχισης R1: as u1 ← Person R2: as u2 ← has_name R3: u1/Painting as u3 ← carried_out.produced R4: as u4 ← has_title Μετασχηματισμός: SELECT c FROM a...
-41- Μετασχηματισμός ερωτήσεων Αναλυτικά: SELECT c FROM Person a, a.has_name b, a.carried out.produced.has_title c, WHERE b = “Van Gogh” Κανόνες αντιστοίχισης R1: as u1 ← Person R2: as u2 ← has_name R3: u1/Painting as u3 ← carried_out.produced R4: as u4 ← has_title Μετασχηματισμός: SELECT c FROM a, b,...
-42- Μετασχηματισμός ερωτήσεων Αναλυτικά: SELECT c FROM Person a, a.has_name b, a.carried out.produced.has_title c, WHERE b = “Van Gogh” Κανόνες αντιστοίχισης R1: as u1 ← Person R2: as u2 ← has_name R3: u1/Painting as u3 ← carried_out.produced R4: as u4 ← has_title Μετασχηματισμός: SELECT c FROM a, b, c,...
-43- Μετασχηματισμός ερωτήσεων H μετασχηματισμένη ερώτηση... SELECT c FROM a, b, c, WHERE b = “Van Gogh»...θα μπορούσε να γραφτεί και σε XQuery: FOR $a IN document(“ $b IN $c IN WHERE $b = “Van Gogh” RETURN $c
-44- Μετασχηματισμός ερωτήσεων Σε πολλές περιπτώσεις δεν μπορούμε να πάρουμε πλήρεις απαντήσεις από τις πηγές, π.χ.: SELECT d, f, g FROM Person a, a.name b, a.carried out.produced c, c.has title d, c.located_at e, e.museum name f, e.city g WHERE b = “Van Gogh” Δεν υπάρχει κανόνας αντιστοίχισης που να εμπλέκει το ‘located_at’. Στην περίπτωση αυτή μπορούμε να το αγνοήσουμε, αλλά οι απαντήσεις που θα πάρουμε δεν θα είναι πλήρεις incomplete answers
-45- Μετασχηματισμός ερωτήσεων Πού εμπέκεται η σημασιολογία που δίνει η οντολογία (π.χ. η IS_A σχέσεις)? Αν Person IS_A Actor, τότε μια ερώτηση που αναζητά Persons θα μπορούσε να αποτιμηθεί σε μια πηγή που δίνει πληροφορίες για Actor.
-46- Ολοκλήρωση XML πηγών με χρήση οντολογιών Σύνοψη: Σχήματα Πηγών: XML Καθολικό σχήμα: Οντολογία Γλώσσα ερωτήσεων: ala OQL Επεξεργασία ερώτησης: Διατύπωση στην οντολογία Μετατροπή μέσω των path-to-path κανόνων αντιστοίχισης σε ερώτηση πάνω στα XML αρχεία Μειονέκτημα: στην ουσία δεν πρόκειται για ‘οντολογία’ (πολύ περιορισμένη η σημασιολογία)
-47- XML, RDF, OWL (σύνοψη 5ης διάλεξης) Ας κάνουμε μία σύνοψη σχετικά με το ρόλο και την χρησιμότητα των τεχνολογιών XML, RDF/S, OWL στην ανάπτυξη του Σημασιολογικού Ιστού: XML. Παρέχει μόνο συντακτική πληροφορία. Δεν δίνει σημασιολογία. Διευκολύνει τον εντοπισμό και την επεξεργασία των δεδομένων, μαρκάροντάς τα με tags. XML Schema. Επεκτείνει την XML με χρήση τύπων δεδομένων. Δεν δίνει σημασιολογία. XQuery: πλήρης γλώσσα επεξεργασίας XML αρχείων. RDF. Δηλώνει ιδιότητες και σχέσεις για αντικείμενα στον Ιστό (resources), π.χ. Web σελίδες. Δίνει απλή σημασιολογία. RDF Schema. Eίναι τo σύστημα τύπων (type system) του RDF. Βασίζεται σε classes και properties. Ορίζει ιεραρχίες γενίκευσης. Δίνει ικανοποιητική σημασιολογία. Θεωρείται πολύ σημαντικό εργαλείο του Σημασιολογικού Ιστού. Έχει ήδη διαθέσιμες πολλές γλώσσες ερωτήσεων.
-48- Ολοκλήρωση πηγών με χρήση RDF/S An Ontology-based Framework for XML Semantic Integration I. Cruz, H. Xiao, F. Hsu. An Ontology-based Framework for XML Semantic Integration, IDEAS Symp Αρχιτεκτονική ολοκλήρωσης πηγών πληροφορίας χρησιμοποιώντας RDF/S. Πηγές: οργάνωση δεδομένων σε XML/RDF αρχεία. Καθολικό σχήμα: RDF/S Σχήματα πηγών: RDF/S Γλώσσα ερωτήσεων: RDQL
-49- Ολοκλήρωση πηγών με χρήση RDF/S
-50- Ορισμός τοπικού RDF/S για κάθε πηγή Κόμβοι: XML element (χωρίς subelements) ----> RDF/S property XML element (με subelements) ----> RDF/S class XML attribute ----> RDF/S property
-51- Ορισμός τοπικού RDF/S για κάθε πηγή Σχέσεις XML element με attribute ----> RDF/S class related to RDF/S literal XML element με subelements ----> RDF/S class related to RDF/S class
-52- Ορισμός καθολικού RDF/S σχήματος To καθολικό RDF/S σχήμα προκύπτει από την ένωση των τοπικών RDF/S σχημάτων με τις παρακάτω ενέργειες: Ένωση των class που είναι σημασιολογικά όμοιες. Ένωση των properties από class προς literals που είναι σημασιολογικά όμοια. Ένωση των properties από class προς class (σχέσεις δηλαδή μεταξύ των classes) που είναι σημασιολογικά όμοια. Δημιουργία superclass για classes από τις οποίες μπορούν να προκύψουν γενικότερες. Η διαδικασία υποστηρίζεται από εργαλεία οντολογιών (ο ntology merging, ontology alignment). Είναι σε μεγάλο βαθμό χειροκίνητη.
-53- Ορισμός καθολικού RDF/S σχήματος Καθολικό σχήμα
-54- Ορισμός καθολικού RDF/S σχήματος Καθολικό σχήμα Επειδή το καθολικό σχήμα έχει προκύψει από την ένωση των τοπικών σχημάτων, δεν υπάρχουν στην ουσία κανόνες αντιστοίχισης, αλλά 1-1 αντιστοιχίσεις από κόμβους του καθολικού RDF/S σχήματος στα τοπικά (book --> book, author --> author).
-55- Μετασχηματισμός ερωτήσεων Έστω η αρχική ερώτηση πάνω στο καθολικό RDF/S σχήμα: ‘βρες τους τίτλους βιβλίων’. SELECT ?title WHERE (?book,, ?title) USING go for
-56- Μετασχηματισμός ερωτήσεων Έστω η αρχική ερώτηση πάνω στο καθολικό RDF/S σχήμα: ‘βρες τους τίτλους βιβλίων’. SELECT ?title WHERE (?book,, ?title) USING go for P = RDF/S εκφράσεις μονοπατιών στην ερώτηση που αντιστοιχούν σε κάθε μεταβλητή που χρησιμοποιείται στην ερώτηση = {Book, Book.title}
-57- Μετασχηματισμός ερωτήσεων Έστω η αρχική ερώτηση πάνω στο καθολικό RDF/S σχήμα: ‘βρες τους τίτλους βιβλίων’. SELECT ?title WHERE (?book,, ?title) USING go for Το P={Book, Book.title} χωρίζεται στα σύνολα Ps και Pw Ps = RDF/S εκφράσεις από το P που συμμετέχουν στο SELECT = {Book.title} Pw = RDF/S εκφράσεις από το P που συμμετέχουν στο WHERE και αφορούν literal = { Book }
-58- Μετασχηματισμός ερωτήσεων Έστω η αρχική ερώτηση πάνω στο καθολικό RDF/S σχήμα: ‘βρες τους τίτλους βιβλίων’. SELECT ?title WHERE (?book,, ?title) USING go for Με βάση τον πίνακα αντιστοιχίσεων, τα P, Ps αλλάζουν: Παλιό P={Book, Book.title}, νέο P={Book, Book.booktitle} Παλιό Ps={Book.title}, νέο Ps={Book.booktitle}
-59- Μετασχηματισμός ερωτήσεων Έστω η αρχική ερώτηση πάνω στο καθολικό RDF/S σχήμα: ‘βρες τους τίτλους βιβλίων’. SELECT ?title WHERE (?book,, ?title) USING go for Η ερώτηση μετασχηματίζεται σε: SELECT ?booktitle WHERE (?book,, ?booktitle) USING go for
-60- Μετασχηματισμός ερωτήσεων Έστω η αρχική ερώτηση πάνω στο καθολικό RDF/S σχήμα: ‘βρες τους τίτλους βιβλίων’. SELECT ?title WHERE (?book,, ?title) USING go for Η ερώτηση μετασχηματίζεται σε: SELECT ?booktitle WHERE (?book,, ?booktitle) USING go for Βρίσκουμε ότι η έκφραση μονοπατιού στο XML αρχείο πηγής αντιστοιχεί στο Book.booktitle του αντίστοιχου τοπικού RDF/S σχήματος, οπότε το σύνολο P’s των εκφράσεων μονοπατιών που αντιστοιχεί στα στοιχεία του Ps={Book, Book.booktitle} είναι P’s = Μπορούμε τώρα να μετατρέψουμε την ερώτηση σε XQuery: LET $books := doc("books.xml") FOR $booktitle in RETURN $booktitle
-61- Μετασχηματισμός ερωτήσεων Η μετατροπή σε XQuery είναι απαραίτητη γιατί μεσολαβεί το ενδιάμεσο στάδιο του ορισμού των RDF/S σχημάτων!
-62- SELECT ?title WHERE (?book,, ?title) USING go for LET $books := doc("books.xml") FOR $booktitle in RETURN $booktitle Μετασχηματισμός Καθολικό RDF/S Πηγές
-63- Ολοκλήρωση πηγών με χρήση RDF/S Σύνοψη: Σχήματα Πηγών: RDF/S Καθολικό σχήμα: RDF/S Γλώσσα ερωτήσεων: RDQL Επεξεργασία ερώτησης: Διατύπωση στο καθολικό RDF/S Μετατροπή σε RDQL πάνω στα τοπικά RDF/S σχήματα, και μετά μετατροπή σε XQuery πάνω στα XML αρχεία
-64- XML, RDF, OWL (σύνοψη 5ης διάλεξης) OWL. Παρέχει πλούσια σημασιολογική πληροφορία, αλλά... Το τίμημα είναι η δυσκολία σχεδιασμού γλωσσών ερωτήσεων. RDF/S: τουλάχιστον 4 ολοκληρωμένες γλώσσες ερωτήσεων. OWL: 1?? Δύσκολη κατασκευή OWL αναπαραστάσεων: μέσω SW- authoring tools (χειροκίνητη διαδικασία), μέσω ημι- αυτόματης επεξεργασίας υπαρχόντων HTML σελίδων (πολύ δύσκολο!) Προβλήματα στην επεκτασιμότητα. Συστήματα DL δουλεύουν σήμερα με ~100Κ κλάσεις, αλλά με πολύ απλή δομή. Η ολοκλήρωση με OWL περιορίζεται σε επίπεδο αναπαράστασης γνώσης και κατασκευής καθολικών σχημάτων. Λείπουν πλήρη συστήματα επεξεργασίας ερωτήσεων πάνω σε πηγές που χρησιμοποιούν OWL.