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

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

Embed Size (px)

DESCRIPTION

Επεξεργασία Σημασιολογικού Περιεχομένου με Τεχνολογίες XML / RDF. Γλώσσα XQuery. XQuery: γλώσσα επεξεργασίας XML αρχείων W3C: www.w3c.org Είναι συναρτησιακή γλώσσα: βασίζεται σε εκφράσεις που επιστρέφουν τιμές . Χρησιμοποιεί το XML μοντέλο δεδομένων. - PowerPoint PPT Presentation

Citation preview

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

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

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

-2-

Γλώσσα XQuery

XQuery: γλώσσα επεξεργασίας XML αρχείων W3C: www.w3c.org Είναι συναρτησιακή γλώσσα: βασίζεται σε εκφράσεις

που επιστρέφουν τιμές. Χρησιμοποιεί το XML μοντέλο δεδομένων. Οι εκφράσεις (expressions) XQuery επιστρέφουν μια

(διατεταγμένη) σειρά από κόμβους ή τιμές. Σημαντικό κομμάτι της XQuery είναι οι εκφράσεις

μονοπατιών (path expressions). Τα παραδείγματα που θα ακολουθήσουν βασίζονται στην

αναφορά D. Chamberlin, XQuery: an XML Query Language. IBM Systems Journal, 41(4), 2002.

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

-3-

XML Μοντέλο Δεδομένων

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 3 </itemno>

<seller> Theo </seller>

<description> toy </description>

<reserve-price> 100 </reserve-price>

<end-date> 20/5/2005 </end-date>

</item>

<item status=“new”>

...

</item>

</items>

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

-4-

XML Μοντέλο Δεδομένων

<?xml version = "1.0"?>

<bids>

<bid>

<itemno> 4</itemno>

<bidder> George </bidder>

<bid-amount> 150 </bid-amount>

<bid-date> 21/5/2005 </bid-date>

</bid>

<bid>

...

</bid>

</bids>

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

-5-

Εκφράσεις Μονοπατιών

document(“items.xml) /items Βρες το root element items (“/”).

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 3 </itemno>

<seller> Theo </seller>

<description> toy </description>

<reserve-price> 100 </reserve-price>

<end-date> 20/5/2005 </end-date>

</item>

<item status=“new”>

...

</item>

</items>

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

-6-

Εκφράσεις Μονοπατιών

document(“items.xml) /items/item Βρες όλα τα elements item που είναι παιδιά (‘/’) του root

element items (“/”).

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 3 </itemno>

<seller> Theo </seller>

<description> toy </description>

<reserve-price> 100 </reserve-price>

<end-date> 20/5/2005 </end-date>

</item>

<item status=“new”>

...

</item>

</items>

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

-7-

Εκφράσεις Μονοπατιών

document(“items.xml) //item Βρες όλα τα elements item (‘//’: απόγονος).

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 3 </itemno>

<seller> Theo </seller>

<description> toy </description>

<reserve-price> 100 </reserve-price>

<end-date> 20/5/2005 </end-date>

</item>

<item status=“new”>

...

</item>

</items>

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

-8-

Εκφράσεις Μονοπατιών

document(“items.xml) //item/seller Βρες όλα τα elements seller που είναι παιδιά του item

(‘//’: απόγονος).

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 3 </itemno>

<seller> Theo </seller>

<description> toy </description>

<reserve-price> 100 </reserve-price>

<end-date> 20/5/2005 </end-date>

</item>

<item status=“new”>

...

</item>

</items>

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

-9-

Εκφράσεις Μονοπατιών

document(“items.xml) //item/* Βρες όλα τα elements που είναι παιδιά του item.

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 3 </itemno>

<seller> Theo </seller>

<description> toy </description>

<reserve-price> 100 </reserve-price>

<end-date> 20/5/2005 </end-date>

</item>

<item status=“new”>

...

</item>

</items>

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

-10-

Εκφράσεις Μονοπατιών

document(“items.xml) /item/* Βρες όλα τα elements που είναι παιδιά του root element

item (NULL!).

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 3 </itemno>

<seller> Theo </seller>

<description> toy </description>

<reserve-price> 100 </reserve-price>

<end-date> 20/5/2005 </end-date>

</item>

<item status=“new”>

...

</item>

</items>

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

-11-

Εκφράσεις Μονοπατιών

document(“items.xml) //* Βρες όλα τα elements.

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 3 </itemno>

<seller> Theo </seller>

<description> toy </description>

<reserve-price> 100 </reserve-price>

<end-date> 20/5/2005 </end-date>

</item>

<item status=“new”>

...

</item>

</items>

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

-12-

Εκφράσεις Μονοπατιών

document(“items.xml) /*/*/seller Βρες όλα τα elements seller που έχουν 2 προγόνους.

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 3 </itemno>

<seller> Theo </seller>

<description> toy </description>

<reserve-price> 100 </reserve-price>

<end-date> 20/5/2005 </end-date>

</item>

<item status=“new”>

...

</item>

</items>

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

-13-

Εκφράσεις Μονοπατιών

document(“items.xml) /items/item[2] Βρες το 2ο item παιδί του element items.

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 3 </itemno>

<seller> Theo </seller>

<description> toy </description>

<reserve-price> 100 </reserve-price>

<end-date> 20/5/2005 </end-date>

</item>

<item status=“new”>

...

</item>

</items>

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

-14-

Εκφράσεις Μονοπατιών

document(“items.xml) //item[@status] Βρες όλα τα item elements που έχουν attribute status.

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 3 </itemno>

<seller> Theo </seller>

<description> toy </description>

<reserve-price> 100 </reserve-price>

<end-date> 20/5/2005 </end-date>

</item>

<item status=“new”>

...

</item>

</items>

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

-15-

Εκφράσεις Μονοπατιών

document(“items.xml) //item[@status=‘new’] Βρες όλα τα item elements που έχουν attribute status με

τιμή ‘new’.

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 3 </itemno>

<seller> Theo </seller>

<description> toy </description>

<reserve-price> 100 </reserve-price>

<end-date> 20/5/2005 </end-date>

</item>

<item status=“new”>

...

</item>

</items>

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

-16-

Εκφράσεις Μονοπατιών

document(“items.xml) //item[reserve-price>=100] Βρες όλα τα item elements που έχουν παιδί το reserve-

price element και το οποίο έχει value > 100.

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 3 </itemno>

<seller> Theo </seller>

<description> toy </description>

<reserve-price> 100 </reserve-price>

<end-date> 20/5/2005 </end-date>

</item>

<item status=“new”>

...

</item>

</items>

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

-17-

Κατασκευαστές

Οι εκφράσεις μονοπατιών έχουν ένα σημαντικό μειονέκτημα: επιστρέφουν κόμβους.

Θα θέλαμε να υπάρχει δυνατότητα κατασκευής καινούριων element, value, καθορισμού των σχέσεων μεταξύ elements (δηλαδή το αποτέλεσμα να μην είναι μεμονωμένοι κόμβοι, αλλά δέντρο κομμάτι του μοντέλου XML), κ.λ.π.

Για το λόγο αυτό η XQuery παρέχει κατασκευαστές (constructors):

{έκφραση XQuery} η έκφραση αποτιμάται και η {...} αντικαθίστανται

από το αποτέλεσμα.

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

-18-

Κατασκευαστές

Παραδείγματα κατασκευαστών:

<highbid status ''{$s}'‘> <itemno> {$i} </itemno> <bid-amount> {max($bids[itemno $i]/bid-amount)} </bid-amount></highbid>

<highbid>{$b/@status,$b/itemno,$b/bid-amount}</highbid>

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

-19-

Iterators (For)

Παράδειγμα For iterator:FOR $m in (2, 3), $n in (5, 10)

RETURN <fact> {$m} times {$n} is {$m * $n} </fact> Αποτέλεσμα

<fact> 2 times 5 is 10</fact>

<fact> 2 times 10 is 20</fact>

<fact> 3 times 5 is 15</fact>

<fact> 3 times 10 is 30</fact>

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

-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 και να ψάχνει για πολλαπλά ταιριάσματα.

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

-21-

FLoWeRs!

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

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

-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

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

-23-

Παράδειγμα FLOWER 1 (lily)

<?xml version = "1.0"?>

<bids>

<bid>

<itemno> 1</itemno>

<bidder> George </bidder>

...

</bid>

<bid>

<itemno> 1 </itemno>

<bidder> Theo </bidder>

...

</bid>

<bid>

<itemno> 2 </itemno>

<bidder> George </bidder>

...

</bid>

</bids>

<?xml version = "1.0"?>

<items>

<item status=“old”>

<itemno> 1 </itemno>

....

</item>

<item status=“old”>

<itemno> 2 </itemno>

....

</item>

<item status=“old”>

<itemno> 3 </itemno>

....

</item>

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

-24-

Παράδειγμα FLOWER 2 (dahlia)

Για κάθε αντικείμενο στο οποίο έχουν δοθεί παραπάνω από δέκα προσφορές, φτιάξε ένα element popular-item που να περιέχει τον κωδικό του αντικειμένου, την περιγραφή και τον αριθμό των προσφορών.

Ερώτηση:FOR $i in document(''items.xml'')/*/itemLET $b := document(''bids.xml'')/*/bid[itemno = $i/itemno]WHERE count ($b) > 10RETURN<popular-item>{

$i/itemno,$i/description,<bid-count> {count ($b)} </bid-count>

}</popular-item>

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

-25-

Παράδειγμα FLOWER 3 (Chrysanthemum)

Έχοντας μια σειρά από elements emp, αντικατέστησε τον μισθό, την προμήθεια και τα bonus με ένα καινoύριο element pay που να περιέχει το άθροισμα των values των αρχικών elements, και βάλε σε αύξουσα σειρά το αποτέλεσμα με βάση το άθροισμα αυτό.

Ερώτηση:FOR $e in $empsRETURN<emp>

{ $e/name, <pay> {$e/salary + $e/commission + $e/bonus} </pay>}

</emp>sortby (pay)

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

-26-

Παράδειγμα FLOWER 4 (Blue Pansy)

Φτιάξε ένα νέο element με όνομα recent-large-bids που να περιέχει όλα τα elements bid στο κείμενο bids.xml που έχουν αριθμό προσφορών πάνω από 1000 και ημερομηνία τελευταίας προσφοράς μετά την 1/1/2002.

Ερώτηση:

<recent-large-bids>

document(''bids.xml'')/*/bid[bid-amount > 1000.00]

intersect

document(''bids.xml'')/*/bid[bid-date > date(''2002-01-01'')]

</recent-large-bids>

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

-27-

Παράδειγμα FLOWER 5 (Cream Pansy)

Φτιάξε ένα νέο element με όνομα recent-large-bids που να περιέχει όλα τα elements bid στο κείμενο bids.xml που έχουν αριθμό προσφορών πάνω από 1000 και ημερομηνία τελευταίας προσφοράς μετά την 1/1/2002.

Ερώτηση (με άλλον τρόπο):

<recent-large-bids>

document(''bids.xml'')/*/bid[bid-amount > 1000.00 and

bid-date > date(''2002-01-01'')]

</recent-large-bids>

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

-28-

Παράδειγμα FLOWER 6 (Shasta Daisies)

Βρες τα αντικείμενα στο αρχείο items.xml για τα οποία όλες οι προσφορές ήταν διπλάσιες από την τιμή εκκίνησης, και τοποθέτησέ τα μέσα σε ένα νέο element με όνομα underpriced-items.

Ερώτηση:

<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

</underpriced-items>

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

-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''])

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

-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 εντολή ... και πάρα πολλά άλλα.

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

-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. Ορίζει ιεραρχίες γενίκευσης. Δίνει ικανοποιητική σημασιολογία.

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

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

-32-

XML, RDF, OWL (σύνοψη προηγούμενης διάλεξης)

Ας κάνουμε μία σύνοψη σχετικά με το ρόλο και την χρησιμότητα των τεχνολογιών XML, RDF/S, OWL στην ανάπτυξη του Σημασιολογικού Ιστού:

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

RDF/S: τουλάχιστον 4 ολοκληρωμένες γλώσσες ερωτήσεων. OWL: 1??

Δύσκολη κατασκευή OWL αναπαραστάσεων: μέσω SW-authoring tools (χειροκίνητη διαδικασία), μέσω ημι-αυτόματης επεξεργασίας υπαρχόντων HTML σελίδων (πολύ δύσκολο!)

Προβλήματα στην επεκτασιμότητα. Συστήματα DL δουλεύουν σήμερα με ~100Κ κλάσεις, αλλά με πολύ απλή δομή.

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

-33-

Όλα μαζί!

Data Exchange

Semantics+reasoning

Relational Data

???

???

???

Επικεντρωνόμαστε λοιπόν εδώ!

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

-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 (σύνοψη)

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

-35-

RDF/S (σύνοψη)

Property

Subclass/Subproperty

Literal

Class

createsArtist Artifact

Artist=domainOf(creates)Artifact=rangeOf(creates)

RDF resource

Painter&r5

&r5=instanceOf(Painter)

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

-36-

Γλώσσες ερωτήσεων για RDF/S

Τι χρειαζόμαστε: εκφράσεις μονοπατιών χρήση μεταβλητών για κόμβους αλλά και ακμές του γράφου

RDF/S δυνατότητα για δέσιμο (binding) μεταβλητών...

Mας τα δίνει και η XQuery (θυμηθείτε επίσης ότι το RDF/S έχει XML αναπαράσταση)!

Ναι, αλλά το μοντέλο δεδομένων XML δεν έχει την ίδια σημασιολογία με το RDF/S.

Όπως θα φανεί και σε παραδείγματα, η απάντηση σε ερωτήσεις περιλαμβάνει αρκετές φορές όχι μόνο τις άμεσα ανακτηθείσες κλάσεις αλλά και τις υποκλάσεις τους.

Θέλουμε επίσης η γλώσσα μας να χειρίζεται με ενιαίο τρόπο και το κομμάτι των απλών RDF statements (τα resources) αλλά και των RDFS statements (τις κλάσεις, την ιεραρχία τους, κ.λ.π.).

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

-37-

Γλώσσα ερωτήσεων RQL

ΙΤΕ/FORTH http://athena.ics.forth.gr:9090/RDF/ 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...

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

-38-

RQL basic queries

Βρες τις άμεσες υποκλάσεις της class Artist: subClassOf^(Artist) Αποτέλεσμα: Sculptor, Painter

Βρες τις υποκλάσεις της class Artist: subClassOf(Artist) Αποτέλεσμα: Sculptor, Painter και όλες τις υποκλάσεις τους (στο

παράδειγμα δεν έχουν) Βρες τo domain του property creates:

domain(creates) Αποτέλεσμα: Artist

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

-39-

RQL basic queries

Βρες τα resources που είναι instances της class Sculptor: ^Sculptor Αποτέλεσμα: &r5

Βρες τα resources που είναι instances της class Artist: ^Artist Αποτέλεσμα: κανένα!!

Βρες τα resources που είναι instances της class Artist ή κάποιας υποκλάσης της:

Artist Αποτέλεσμα: &r5

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

-40-

RQL schema queries

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

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

-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)

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

-42-

RQL schema queries (2)

Ποιά properties εμπλέκουν την class Painter (δηλαδή είναι domain ή range);

SELECT @PFROM {$C}@PWHERE $C=Painter

@...: μεταβλητή για ακμές (properties) Αποτέλεσμα: creates, paints, lname, fname

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

-43-

RQL schema queries (3)

Βρες οτιδήποτε σχετίζεται με την class Painter (δηλαδή τα resources που ανήκουν σε αυτή, τις υπερκλάσεις της και τα property):

seq(Painter,superclassof^(Painter),SELECT @P, domain(@P), range(@P) FROM {;Painter}@P)

{;Painter}: επιστρέφει την class Painter και όλες τις υπερκλάσεις της (εδώ την Artist)

Αποτέλεσμα: (Painter, Artist, (paints, Painter, Painting),(creates, Artist, Artifact))

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

-44-

RQL schema queries (4)

Ποιά properties εμπλέκονται στις classes/literals που ανήκουν στο range του property creates; Βρες επίσης το domain και το range των properties αυτών.

SELECT $Y, @P, range(@P),FROM creates{$Y}.@P

‘.’: κάνει join μεταξύ όλων των class ($Y) που ανήκουν στο range του property creates και όλων των properties (@P)

Αποτέλεσμα: (Artifact, exhibited, Museum), (Painting, exhibited, Museum), (Sculpture, exhibited, Museum) (Painting, technique, string)

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

-45-

RQL data queries

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

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

-46-

RQL data queries (5)

Ποιά resources έχουν μεταβληθεί μετά το 2000; SELECT Χ

FROM Museum{X}.last_modified{Y}WHERE Y >= 01-01-2000

X, Y: μεταβλητές για resources Αποτέλεσμα: &r4

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

-47-

RQL data queries (6)

Βρες τα oνόματα των καλλιτεχνών των οποίων τα έργα τέχνης εκτίθενται σε μουσεία, μαζί με τις ονομασίες των μουσείων.

SELECT V, R, Y, ZFROM {X}creates.exhibited{Y}.title{Z},

{X}fname{V}, {X}lname{R}

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

-48-

RQL mixed query

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

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

-49-

RQL mixed query (7)

Βρες τις περιγραφές των resources των οποίων το URI περιέχει το ‘www.museum.es’.

SELECT X, (SELECT $W, (SELECT @P, Y FROM {X;$W}@P{Y})

FROM $W{X})FROM Resource{X} WHERE X like "www.museum.es"

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

-50-

RQL mixed query

Βρες τις περιγραφές των resources των οποίων το URI περιέχει το ‘www.museum.es’.

SELECT X, (SELECT $W, (SELECT @P, Y FROM {X;$W}@P{Y})

FROM $W{X})FROM Resource{X}WHERE X like "www.museum.es“

Για κάθε resource X, η μεταβλητή $W παίρνει τις classes των οποίων το Χ είναι instance.

Για κάθε τέτοια class $W, η μεταβλητή @P παίρνει όλα τα properties που έχουν $W στο domain και Χ ως source value ({X;$W}@P{Y})

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

-51-

Βρες τις περιγραφές των resources των οποίων το URI περιέχει το ‘www.museum.es’.

SELECT X, (SELECT $W, (SELECT @P, Y FROM {X;$W}@P{Y})

FROM $W{X})FROM Resource{X}WHERE X like "www.museum.es“Για κάθε resource X, η μεταβλητή $W παίρνει τις classes των οποίων το Χ είναι

instance.Για κάθε τέτοια class $W, η μεταβλητή @P παίρνει όλα τα properties που έχουν $W

στο domain και Χ ως source value ({X;$W}@P{Y})

&r4Αποτέλεσμα

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

-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)

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

-53-

Άλλες γλώσσες ερωτήσεων για RDF/S

SeRQL http://www.openrdf.org/ παρόμοια (έως ίδια!) σύνταξη με την RQL ήδη μέρος της RQL έχει ενσωματωθεί στο σύστημα

Sesame που υλοποιεί την SeRQL select-from-where σύνταξη

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

-54-

Άλλες γλώσσες ερωτήσεων για RDF/S

Triple http://triple.semanticweb.org/ Βασίζεται σε F-Logic Tα statements του RDF (R1,P,R2) (resource, property, resource)

αναπαριστώνται με εκφράσεις του τύπου R1[P-->R2] Θυμίζει PROLOG: οι ερωτήσεις έχουν την μορφή κανόνων που

έχουν μεταβλητές στις οποίες ανατίθενται τιμές και ελέγχεται αν ικανοποιούν τις εκφράσεις R1[P-->R2] που έχουν οριστεί.

Παράδειγμα: FORALL X <- ( X[rdfs:label-->’museum’] ),

επιστρέφει όλα τα resources ‘museum’ FORALL C <- C[rdfs:subClassOf -> Artist]@rdfschema(museums),

επιστρέφει όλες τις υποκλάσεις της class Artist

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

-55-

Άλλες γλώσσες ερωτήσεων για RDF/S

RDQL http://www.w3.org/Submission/2004/SUBM-RDQL-

20040109/ W3C πρόταση select-where σύνταξη Παράδειγμα:

select ?p where (?p, <rdfs:label>, ‘museum’ ) βρίσκει όλα τα resources ‘museum’ (η ?p είναι μεταβλητή).

Δεν δουλεύει για RDF σχήματα!

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

-56-

Η πλατφόρμα RDFScuplt

RDFSculpt Z. Kaoudi, T. Dalamagas, T. Sellis, RDFSculpt: Managing

RDF Schemas under Set-like Semantics , ESWC’05 Conf. Η πλατφόρμα παρέχει δυνατότητες για πράξεις πάνω σε

RDFS σχήματα: επιλογή/προβολή ένωση τομή διαφορά

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

-57-

Η πλατφόρμα RDFScuplt

Παράδειγμα πράξης ‘επιλογή’

Επιλέγουμε τις κλάσεις: Actor, Producer, Movie

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

-58-

Η πλατφόρμα RDFScuplt

Παράδειγμα πράξης ‘επιλογή’

Αποτέλεσμα

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

-59-

Η πλατφόρμα RDFScuplt

Παράδειγμα πράξης ‘ένωση’

Σ1

Σ2

Σ1 U Σ2

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

-60-

Η πλατφόρμα RDFScuplt

Παράδειγμα πράξης ‘τομή’

Σ1 Σ2

Σ2

Σ1

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

-61-

Η πλατφόρμα RDFScuplt

Παράδειγμα πράξης ‘διαφορά’

Σ1 - Σ2

Σ2

Σ1

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

-62-

Η πλατφόρμα RDFScuplt

Οι πράξεις αντιμετωπίζουν τα RDF σχήματα ως πολίτες πρώτης τάξης.

Χρησιμοποιείται σημασιολογία ένωσης, τομής και διαφοράς.

Μπορούν να ενσωματωθούν σε οποιαδήποτε γλώσσα ερωτήσεων για RDF σχήματα.

Έχει υλοποιηθεί πάνω στην RQL στο εργαστήριο. Εφαρμογές:

Πύλες καταλόγων, π.χ. βρες το κομμάτι μιας ιεραρχίας RDFS που δεν υπάρχει στο δικό μου και ένωσέ το με το δικό μου ώστε να το έχω και εγώ.