Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Επεξεργασία Σημασιολογικού Περιεχομένου με Τεχνολογίες XML/RDF.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Επεξεργασία Σημασιολογικού Περιεχομένου με Τεχνολογίες XML/RDF."— Μεταγράφημα παρουσίασης:

1 Επεξεργασία Σημασιολογικού Περιεχομένου με Τεχνολογίες XML/RDF

2 Γλώσσα XQuery XQuery: γλώσσα επεξεργασίας XML αρχείων W3C: Είναι συναρτησιακή γλώσσα: βασίζεται σε εκφράσεις που επιστρέφουν τιμές. Χρησιμοποιεί το XML μοντέλο δεδομένων. Οι εκφράσεις (expressions) XQuery επιστρέφουν μια (διατεταγμένη) σειρά από κόμβους ή τιμές. Σημαντικό κομμάτι της XQuery είναι οι εκφράσεις μονοπατιών (path expressions). Τα παραδείγματα που θα ακολουθήσουν βασίζονται στην αναφορά D. Chamberlin, XQuery: an XML Query Language. IBM Systems Journal, 41(4), 2002.

3 XML Μοντέλο Δεδομένων 3 Theo toy /5/

4 XML Μοντέλο Δεδομένων 4 George /5/

5 Εκφράσεις Μονοπατιών document(“items.xml) /items Βρες το root element items (“/”). 3 Theo toy /5/

6 Εκφράσεις Μονοπατιών document(“items.xml) /items/item Βρες όλα τα elements item που είναι παιδιά (‘/’) του root element items (“/”). 3 Theo toy /5/

7 Εκφράσεις Μονοπατιών document(“items.xml) //item Βρες όλα τα elements item (‘//’: απόγονος). 3 Theo toy /5/

8 Εκφράσεις Μονοπατιών document(“items.xml) //item/seller Βρες όλα τα elements seller που είναι παιδιά του item (‘//’: απόγονος). 3 Theo toy /5/

9 Εκφράσεις Μονοπατιών document(“items.xml) //item/* Βρες όλα τα elements που είναι παιδιά του item. 3 Theo toy /5/

10 -10- Εκφράσεις Μονοπατιών document(“items.xml) /item/* Βρες όλα τα elements που είναι παιδιά του root element item (NULL!). 3 Theo toy /5/

11 -11- Εκφράσεις Μονοπατιών document(“items.xml) //* Βρες όλα τα elements. 3 Theo toy /5/

12 -12- Εκφράσεις Μονοπατιών document(“items.xml) /*/*/seller Βρες όλα τα elements seller που έχουν 2 προγόνους. 3 Theo toy /5/

13 -13- Εκφράσεις Μονοπατιών document(“items.xml) /items/item[2] Βρες το 2ο item παιδί του element items. 3 Theo toy /5/

14 -14- Εκφράσεις Μονοπατιών document(“items.xml) Βρες όλα τα item elements που έχουν attribute status. 3 Theo toy /5/

15 -15- Εκφράσεις Μονοπατιών document(“items.xml) Βρες όλα τα item elements που έχουν attribute status με τιμή ‘new’. 3 Theo toy /5/

16 -16- Εκφράσεις Μονοπατιών document(“items.xml) //item[reserve-price>=100] Βρες όλα τα item elements που έχουν παιδί το reserve- price element και το οποίο έχει value > Theo toy /5/

17 -17- Κατασκευαστές Οι εκφράσεις μονοπατιών έχουν ένα σημαντικό μειονέκτημα: επιστρέφουν κόμβους. Θα θέλαμε να υπάρχει δυνατότητα κατασκευής καινούριων element, value, καθορισμού των σχέσεων μεταξύ elements (δηλαδή το αποτέλεσμα να μην είναι μεμονωμένοι κόμβοι, αλλά δέντρο κομμάτι του μοντέλου XML), κ.λ.π. Για το λόγο αυτό η XQuery παρέχει κατασκευαστές (constructors): {έκφραση XQuery} η έκφραση αποτιμάται και η {...} αντικαθίστανται από το αποτέλεσμα.

18 -18- Κατασκευαστές Παραδείγματα κατασκευαστών: {$i} {max($bids[itemno $i]/bid-amount)}

19 -19- Iterators (For) Παράδειγμα For iterator: FOR $m in (2, 3), $n in (5, 10) RETURN {$m} times {$n} is {$m * $n} Αποτέλεσμα 2 times 5 is 10 2 times 10 is 20 3 times 5 is 15 3 times 10 is 30

20 -20- Iterators (For), Δέσιμο Μεταβλητών Παράδειγμα For iterator με δέσιμο (binding) μεταβλητών: FOR $i in (1 to 3) LET $j := (1 to $i) Αποτέλεσμα $i = 1, $j = 1 $i = 2, $j = (1, 2) $i = 3, $j = (1, 2, 3) Το δέσιμο μεταβλητών σε For και Let δίνει την δυνατότητα στην XQuery να διασχίζει το μοντέλο δεδομένων XML και να ψάχνει για πολλαπλά ταιριάσματα.

21 -21- FLoWeRs! F: FOR L: LET W: WHERE R: RETURN FLWR (προφέρεται flower) expressions

22 -22- Παράδειγμα FLOWER 1 (lily) Βρες αντικείμενα στα οποία έχουν δοθεί δύο προσφορές. Ερώτηση: FOR $i in document(''items.xml'')/*/item LET $b := document(''bids.xml'')/*/bid[itemno = $i/itemno] WHERE count ($b) = 2 RETURN $i bind

23 -23- Παράδειγμα FLOWER 1 (lily) 1 George... 1 Theo... 2 George

24 -24- Παράδειγμα FLOWER 2 (dahlia) Για κάθε αντικείμενο στο οποίο έχουν δοθεί παραπάνω από δέκα προσφορές, φτιάξε ένα element popular-item που να περιέχει τον κωδικό του αντικειμένου, την περιγραφή και τον αριθμό των προσφορών. Ερώτηση: FOR $i in document(''items.xml'')/*/item LET $b := document(''bids.xml'')/*/bid[itemno = $i/itemno] WHERE count ($b) > 10 RETURN { $i/itemno, $i/description, {count ($b)} }

25 -25- Παράδειγμα FLOWER 3 (Chrysanthemum) Έχοντας μια σειρά από elements emp, αντικατέστησε τον μισθό, την προμήθεια και τα bonus με ένα καινoύριο element pay που να περιέχει το άθροισμα των values των αρχικών elements, και βάλε σε αύξουσα σειρά το αποτέλεσμα με βάση το άθροισμα αυτό. Ερώτηση: FOR $e in $emps RETURN { $e/name, {$e/salary + $e/commission + $e/bonus} } sortby (pay)

26 -26- Παράδειγμα FLOWER 4 (Blue Pansy) Φτιάξε ένα νέο element με όνομα recent-large-bids που να περιέχει όλα τα elements bid στο κείμενο bids.xml που έχουν αριθμό προσφορών πάνω από 1000 και ημερομηνία τελευταίας προσφοράς μετά την 1/1/2002. Ερώτηση: document(''bids.xml'')/*/bid[bid-amount > ] intersect document(''bids.xml'')/*/bid[bid-date > date('' '')]

27 -27- Παράδειγμα FLOWER 5 (Cream Pansy) Φτιάξε ένα νέο element με όνομα recent-large-bids που να περιέχει όλα τα elements bid στο κείμενο bids.xml που έχουν αριθμό προσφορών πάνω από 1000 και ημερομηνία τελευταίας προσφοράς μετά την 1/1/2002. Ερώτηση (με άλλον τρόπο): document(''bids.xml'')/*/bid[bid-amount > and bid-date > date('' '')]

28 -28- Παράδειγμα FLOWER 6 (Shasta Daisies) Βρες τα αντικείμενα στο αρχείο items.xml για τα οποία όλες οι προσφορές ήταν διπλάσιες από την τιμή εκκίνησης, και τοποθέτησέ τα μέσα σε ένα νέο element με όνομα underpriced-items. Ερώτηση: FOR $i in document(''items.xml'') WHERE every $b in document(''bids.xml'')/*/bid[itemno = $i/itemno] satisfies $b/bid-amount > 2 * $i/reserve-price RETURN $i

29 -29- Παράδειγμα FLOWER 7 (Hemerocallis) Όρισε μια συνάρτηση που να δέχεται ως παράμετρο ένα element item και μετά να βρίσκει το μεγαλύτερο ποσό προσφοράς που έχει καταγραφεί για το συγκεκριμένο αντικείμενο. Ορισμός συνάρτησης: define function highbid(element $item) returns decimal { max(document(''bids.xml'')//bid[itemno = $item/itemno]/bid- amount) } Χρήση: highbid(document(''items.xml'')//item[itemno = ''1234''])

30 άλλες δυνατότητες Συνθήκες τύπων $i instance of xs:integer το xs:integer έρχεται από το XML schema $k instance of element item $l instance of element* Switch εντολή typeswitch (expression) as $a case element of type A return $a/state... If εντολή... και πάρα πολλά άλλα.

31 -31- XML, RDF, OWL (σύνοψη προηγούμενης διάλεξης) Ας κάνουμε μία σύνοψη σχετικά με το ρόλο και την χρησιμότητα των τεχνολογιών XML, RDF/S, OWL στην ανάπτυξη του Σημασιολογικού Ιστού: XML. Παρέχει μόνο συντακτική πληροφορία. Δεν δίνει σημασιολογία. Διευκολύνει τον εντοπισμό και την επεξεργασία των δεδομένων, μαρκάροντάς τα με tags. XML Schema. Επεκτείνει την XML με χρήση τύπων δεδομένων. Δεν δίνει σημασιολογία. XQuery: πλήρης γλώσσα επεξεργασίας XML αρχείων. RDF. Δηλώνει ιδιότητες και σχέσεις για αντικείμενα στον Ιστό (resources), π.χ. Web σελίδες. Δίνει απλή σημασιολογία. RDF Schema. Eίναι τo σύστημα τύπων (type system) του RDF. Βασίζεται σε classes και properties. Ορίζει ιεραρχίες γενίκευσης. Δίνει ικανοποιητική σημασιολογία. Θεωρείται πολύ σημαντικό εργαλείο του Σημασιολογικού Ιστού. Έχει ήδη διαθέσιμες πολλές γλώσσες ερωτήσεων.

32 -32- XML, RDF, OWL (σύνοψη προηγούμενης διάλεξης) Ας κάνουμε μία σύνοψη σχετικά με το ρόλο και την χρησιμότητα των τεχνολογιών XML, RDF/S, OWL στην ανάπτυξη του Σημασιολογικού Ιστού: OWL. Παρέχει πλούσια σημασιολογική πληροφορία, αλλά... Το τίμημα είναι η δυσκολία σχεδιασμού γλωσσών ερωτήσεων. RDF/S: τουλάχιστον 4 ολοκληρωμένες γλώσσες ερωτήσεων. OWL: 1?? Δύσκολη κατασκευή OWL αναπαραστάσεων: μέσω SW-authoring tools (χειροκίνητη διαδικασία), μέσω ημι-αυτόματης επεξεργασίας υπαρχόντων HTML σελίδων (πολύ δύσκολο!) Προβλήματα στην επεκτασιμότητα. Συστήματα DL δουλεύουν σήμερα με ~100Κ κλάσεις, αλλά με πολύ απλή δομή.

33 -33- Όλα μαζί!  Data Exchange  Semantics+reasoning  Relational Data ??? Επικεντρωνόμαστε λοιπόν εδώ!

34 -34- *…από Karvounarakis G., Alexaki S., Christophides V. Plexousakis D., Scholl M: RQL, A Declarative Query Language for RDF, WWW’02 Conf (pres. slides). RDF/S (σύνοψη)

35 -35- RDF/S (σύνοψη) Property Subclass/Subproperty Literal Class creates ArtistArtifact Artist=domainOf(creates) Artifact=rangeOf(creates) RDF resource Painter &r5 &r5=instanceOf(Painter)

36 -36- Γλώσσες ερωτήσεων για RDF/S Τι χρειαζόμαστε: εκφράσεις μονοπατιών χρήση μεταβλητών για κόμβους αλλά και ακμές του γράφου RDF/S δυνατότητα για δέσιμο (binding) μεταβλητών... Mας τα δίνει και η XQuery (θυμηθείτε επίσης ότι το RDF/S έχει XML αναπαράσταση)! Ναι, αλλά το μοντέλο δεδομένων XML δεν έχει την ίδια σημασιολογία με το RDF/S. Όπως θα φανεί και σε παραδείγματα, η απάντηση σε ερωτήσεις περιλαμβάνει αρκετές φορές όχι μόνο τις άμεσα ανακτηθείσες κλάσεις αλλά και τις υποκλάσεις τους. Θέλουμε επίσης η γλώσσα μας να χειρίζεται με ενιαίο τρόπο και το κομμάτι των απλών RDF statements (τα resources) αλλά και των RDFS statements (τις κλάσεις, την ιεραρχία τους, κ.λ.π.).

37 -37- Γλώσσα ερωτήσεων RQL ΙΤΕ/FORTH Karvounarakis G., Alexaki S., Christophides V. Plexousakis D., Scholl M: RQL, A Declarative Query Language for RDF, WWW’02 Conf. Είναι συναρτησιακή γλώσσα ερωτήσεων. Θυμίζει στην σύνταξη την OQL. Επίσης τα select, where, from που χρησιμοποιεί θα σας θυμίσουν την SQL. Ξεκινάμε με τις αποκαλούμενες στην RQL basic queries...

38 -38- RQL basic queries Βρες τις άμεσες υποκλάσεις της class Artist: subClassOf^(Artist) Αποτέλεσμα: Sculptor, Painter Βρες τις υποκλάσεις της class Artist: subClassOf(Artist) Αποτέλεσμα: Sculptor, Painter και όλες τις υποκλάσεις τους (στο παράδειγμα δεν έχουν) Βρες τo domain του property creates: domain(creates) Αποτέλεσμα: Artist

39 -39- RQL basic queries Βρες τα resources που είναι instances της class Sculptor: ^Sculptor Αποτέλεσμα: &r5 Βρες τα resources που είναι instances της class Artist: ^Artist Αποτέλεσμα: κανένα!! Βρες τα resources που είναι instances της class Artist ή κάποιας υποκλάσης της: Artist Αποτέλεσμα: &r5

40 -40- RQL schema queries...συνεχίζουμε με schema queries, ερωτήσεις δηλαδή που αφορούν classes, properties, ιεραρχία από classes, κ.λ.π.

41 -41- RQL schema queries (1) Ποιές classes έχουν domain και range το property creates; SELECT $C1, $C2 FROM {$C1}creates{$C2} $...: μεταβλητή για κόμβους (classes) Αποτέλεσμα: (Artist, Artifact), (Artist, Painting), (Artist, Sculpture), (Painter, Artifact), (Painter, Painting), (Painter, Sculpture), (Sculptor, Artifact), (Sculptor, Painting), (Sculptor, Sculpture)

42 -42- RQL schema queries (2) Ποιά properties εμπλέκουν την class Painter (δηλαδή είναι domain ή range); FROM WHERE μεταβλητή για ακμές (properties) Αποτέλεσμα: creates, paints, lname, fname

43 -43- RQL schema queries (3) Βρες οτιδήποτε σχετίζεται με την class Painter (δηλαδή τα resources που ανήκουν σε αυτή, τις υπερκλάσεις της και τα property): seq(Painter, superclassof^(Painter), FROM {;Painter}: επιστρέφει την class Painter και όλες τις υπερκλάσεις της (εδώ την Artist) Αποτέλεσμα: (Painter, Artist, (paints, Painter, Painting), (creates, Artist, Artifact))

44 -44- RQL schema queries (4) Ποιά properties εμπλέκονται στις classes/literals που ανήκουν στο range του property creates; Βρες επίσης το domain και το range των properties αυτών. SELECT FROM ‘.’: κάνει join μεταξύ όλων των class ($Y) που ανήκουν στο range του property creates και όλων των properties Αποτέλεσμα: (Artifact, exhibited, Museum), (Painting, exhibited, Museum), (Sculpture, exhibited, Museum) (Painting, technique, string)

45 -45- RQL data queries...συνεχίζουμε με data queries, ερωτήσεις δηλαδή που αφορούν resources

46 -46- RQL data queries (5) Ποιά resources έχουν μεταβληθεί μετά το 2000; SELECT Χ FROM Museum{X}.last_modified{Y} WHERE Y >= X, Y: μεταβλητές για resources Αποτέλεσμα: &r4

47 -47- RQL data queries (6) Βρες τα oνόματα των καλλιτεχνών των οποίων τα έργα τέχνης εκτίθενται σε μουσεία, μαζί με τις ονομασίες των μουσείων. SELECT V, R, Y, Z FROM {X}creates.exhibited{Y}.title{Z}, {X}fname{V}, {X}lname{R}

48 -48- RQL mixed query...συνεχίζουμε με ένα παράδειγμα mixed query, ερώτησης δηλαδή που αφορά resources αλλά και classes, properties, ιεραρχία από classes, κ.λ.π.

49 -49- RQL mixed query (7) Βρες τις περιγραφές των resources των οποίων το URI περιέχει το ‘www.museum.es’. SELECT X, (SELECT $W, Y FROM FROM $W{X}) FROM Resource{X} WHERE X like "www.museum.es"

50 -50- RQL mixed query Βρες τις περιγραφές των resources των οποίων το URI περιέχει το ‘www.museum.es’. SELECT X, (SELECT $W, Y FROM FROM $W{X}) FROM Resource{X} WHERE X like "www.museum.es“ Για κάθε resource X, η μεταβλητή $W παίρνει τις classes των οποίων το Χ είναι instance. Για κάθε τέτοια class $W, η παίρνει όλα τα properties που έχουν $W στο domain και Χ ως source value (

51 -51- Βρες τις περιγραφές των resources των οποίων το URI περιέχει το ‘www.museum.es’. SELECT X, (SELECT $W, Y FROM FROM $W{X}) FROM Resource{X} WHERE X like "www.museum.es“ Για κάθε resource X, η μεταβλητή $W παίρνει τις classes των οποίων το Χ είναι instance. Για κάθε τέτοια class $W, η παίρνει όλα τα properties που έχουν $W στο domain και Χ ως source value &r4 Αποτέλεσμα

52 -52- RQL Δυo λόγια για την υλοποίηση: Validating RDF Parser (VRP): RDF Parser RDF Schema Specific DataBase (RSSDB): Object- Relational (SQL3) αναπαράσταση RDF/S (Postgres DBMS). RDF Query Language (RQL)

53 -53- Άλλες γλώσσες ερωτήσεων για RDF/S SeRQL παρόμοια (έως ίδια!) σύνταξη με την RQL ήδη μέρος της RQL έχει ενσωματωθεί στο σύστημα Sesame που υλοποιεί την SeRQL select-from-where σύνταξη

54 -54- Άλλες γλώσσες ερωτήσεων για RDF/S Triple Βασίζεται σε F-Logic Tα statements του RDF (R1,P,R2) (resource, property, resource) αναπαριστώνται με εκφράσεις του τύπου R1[P-->R2] Θυμίζει PROLOG: οι ερωτήσεις έχουν την μορφή κανόνων που έχουν μεταβλητές στις οποίες ανατίθενται τιμές και ελέγχεται αν ικανοποιούν τις εκφράσεις R1[P-->R2] που έχουν οριστεί. Παράδειγμα: FORALL X ’museum’] ), επιστρέφει όλα τα resources ‘museum’ FORALL C επιστρέφει όλες τις υποκλάσεις της class Artist

55 -55- Άλλες γλώσσες ερωτήσεων για RDF/S RDQL / W3C πρόταση select-where σύνταξη Παράδειγμα: select ?p where (?p,, ‘museum’ ) βρίσκει όλα τα resources ‘museum’ (η ?p είναι μεταβλητή). Δεν δουλεύει για RDF σχήματα!

56 -56- Η πλατφόρμα RDFScuplt RDFSculpt Z. Kaoudi, T. Dalamagas, T. Sellis, RDFSculpt: Managing RDF Schemas under Set-like Semantics, ESWC’05 Conf. Η πλατφόρμα παρέχει δυνατότητες για πράξεις πάνω σε RDFS σχήματα: επιλογή/προβολή ένωση τομή διαφορά

57 -57- Η πλατφόρμα RDFScuplt Παράδειγμα πράξης ‘επιλογή’ Επιλέγουμε τις κλάσεις: Actor, Producer, Movie

58 -58- Η πλατφόρμα RDFScuplt Παράδειγμα πράξης ‘επιλογή’ Αποτέλεσμα

59 -59- Η πλατφόρμα RDFScuplt Παράδειγμα πράξης ‘ένωση’ Σ1 Σ2 Σ1 U Σ2

60 -60- Η πλατφόρμα RDFScuplt Παράδειγμα πράξης ‘τομή’ Σ1  Σ2 Σ2 Σ1

61 -61- Η πλατφόρμα RDFScuplt Παράδειγμα πράξης ‘διαφορά’ Σ1 - Σ2 Σ2 Σ1

62 -62- Η πλατφόρμα RDFScuplt Οι πράξεις αντιμετωπίζουν τα RDF σχήματα ως πολίτες πρώτης τάξης. Χρησιμοποιείται σημασιολογία ένωσης, τομής και διαφοράς. Μπορούν να ενσωματωθούν σε οποιαδήποτε γλώσσα ερωτήσεων για RDF σχήματα. Έχει υλοποιηθεί πάνω στην RQL στο εργαστήριο. Εφαρμογές: Πύλες καταλόγων, π.χ. βρες το κομμάτι μιας ιεραρχίας RDFS που δεν υπάρχει στο δικό μου και ένωσέ το με το δικό μου ώστε να το έχω και εγώ.


Κατέβασμα ppt "Επεξεργασία Σημασιολογικού Περιεχομένου με Τεχνολογίες XML/RDF."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google