1 Τεχνολογίες RDF για τον Ιστό Δεδοµένων The Semantic Web is Dead? Hardly! The reports of my death are greatly exaggerated. Mark Twain
Διαχείριση δεδοµένων στον Ιστό 2 Έστω ένας φανταστικός ιστός! html tags + statements Έστω και ένα εξαιρετικό πρόγραµµα-agent! Τι υπάρχει στον Ιστό για τον Liyang Yu; Αρχικό σηµείο εκκίνησης: http://www.liyangyu.com/ Στοιχεία (statements) για τον Liyang Yu ή αλλιώς τον πόρο LY: LY name "Liyang Yu". o πόρος (resource) LY έχει µια ιδιότητα (property) name µε τιµή (value) Liyang Yu
Διαχείριση δεδοµένων στον Ιστό 3 Στοιχεία για τον πόρο LY LY nickname "LaoYu". όµοια µε πριν: property-value LY author _x. o πόρος (resource) LY έχει µια ιδιότητα (property) author που τον συσχετίζει µε τον πόρο _x (_ = ανώνυµος) property-resource x ISBN "978-1584889335 x publisher http://www.crcpress.com x title Introduction to the Semantic Web and Semantic Web Services
4
Διαχείριση δεδοµένων στον Ιστό 5 Επόµενη στάση για τον agent: http://www.amazon.com
Διαχείριση δεδοµένων στον Ιστό 6 «O Liyang Yu, µε ιστοσελίδα http://www.liyangyu.com είναι συγγραφέας ενός βιβλίου του οποίου η τιµή πώλησης στο Amazon είναι 62.36» Δεν υπάρχει ως πληροφορία στο http://www.liyangyu.com Δεν υπάρχει ως πληροφορία στο http://www.amazon.com Μόνο µε ολοκλήρωση δεδοµένων προκύπτει!
7 sameas
Διαχείριση δεδοµένων στον Ιστό 8 Ο agent µπορεί τώρα να απαντήσει ερωτήσεις µε βάση την ολοκληρωµένη πληροφορία. «Ποιά είναι η τιµή του βιβλίου του ο οποίου ο συγγραφέας έχει ιστοσελίδα www.liyangyu.com;» Επόµενη στάση για τον agent: http://www.linkedin.com
sameas 9 sameas Αν το email του πόρου Α έχει την ίδια τιμή με το email του πόρου Β τότε οι δύο πόροι είναι οι ίδιοι
Διαχείριση δεδοµένων στον Ιστό 10 Ο agent µπορεί τώρα να απαντήσει περισσότερες ερωτήσεις! «Ποιά είναι η διεύθυνση του συγγραφέα;» «Ποιά είναι η ιστοσελίδα του χώρου εργασίας του;» Τι χρειάζεται για να είναι εφικτή η κατασκευή τέτοιων agents;?
Διαχείριση δεδοµένων στον Ιστό 11 Τι πρέπει να αλλάξει στις ιστοσελίδες; Statements: χρειάζεται ένα µοντέλο αναπαράστασης γνώσης εύκολα διαχειρίσιµο από τη µηχανή. Το µοντέλο πρέπει να είναι καθολικά αποδεκτό. Τα statements πρέπει να ενσωµατώνονται στις ιστοσελίδες: χειροκίνητα ή αυτόµατα, Τα statements πρέπει να έχουν κοινό λεξιλόγιο, τουλάχιστον σε κάθε πεδίο γνώσης. Πρέπει να υπάρχει ένας τρόπος ορισµού του λεξιλογίου για τα statements.
Διαχείριση δεδοµένων στον Ιστό 12 Τι πρέπει να αλλάξει στα προγράµµατα-agents; Nα καταλαβαίνουν τα statements. Να εκτελούν συλλογιστικές: «αν το email του πόρου Α έχει την ίδια τιµή µε το email του πόρου Β τότε οι δύο πόροι είναι οι ίδιοι» Να εκτελούν ερωτήσεις στα statements.
Σηµασιολογικός Ιστός/Ιστός δεδοµένων 13 Βελτίωση λειτουργιών διαχείρισης δεδοµένων Ιστού Αναζήτηση δεδοµένων (search) αναζητήσεις κειµένων στη λογική του να περιέχουν λέξεις κλειδιά είναι περιοριστικές Ολοκλήρωση δεδοµένων (data integration) Εξόρυξη γνώσης (Web mining) Συλλογή (crawl) δεδοµένων Ιστού και µαζική επεξεργασία για την εξαγωγή προτύπων (patterns).
Τεχνολογίες 14 Απαιτήσεις ιστοσελίδων Statements: χρειάζεται ένα µοντέλο αναπαράστασης γνώσης εύκολα διαχειρίσιµο από τη µηχανή. Το µοντέλο πρέπει να είναι καθολικά αποδεκτό. Τα statements πρέπει να ενσωµατώνονται στις ιστοσελίδες: χειροκίνητα ή αυτόµατα, Τα statements πρέπει να έχουν κοινό λεξιλόγιο, τουλάχιστον σε κάθε πεδίο γνώσης. Πρέπει να υπάρχει ένας τρόπος ορισµού του λεξιλογίου για τα statements. Τεχνολογία Σημασιολογικού Ιστού Resource Description Framework (RDF) Resource Description Framework (RDF) Semantic markups, RDFa microformats Οντολογίες RDF Schema, Ontology Web Language (OWL)
Τεχνολογίες 15 Απαιτήσεις προγραμμάτων Nα καταλαβαίνουν τα statements. Να εκτελούν συλλογιστικές: «αν το email του πόρου Α έχει την ίδια τιµή µε το email του πόρου Β τότε οι δύο πόροι είναι οι ίδιοι» Να εκτελούν ερωτήσεις στα statements. Τεχνολογία Σημασιολογικού Ιστού Επεξεργασία οντολογιών Συλλογιστική (reasoning) SPARQL
RDF: Resource Description Framework 16 Συλλογή reviews για φωτογραφικές µηχανές NIKON πολλές ιστοσελίδες διαφορετικός τρόπος παρουσίασης διαφορετικό λεξιλόγιο δυσκολία επεξεργασίας φυσικής γλώσσας Ανάγκη για ενιαίο τρόπο διατύπωσης των reviews
17
18
RDF 19 W3C (http://www.w3.org/) RDF is a standard published by W3C, and it can be used to represent distributed information/knowledge in a way that computer applications can use and process in a scalable manner. To µοντέλο RDF είναι το βασικό συστατικό δηµιουργίας του Σηµασιολογικού Ιστού (HTML Web) vs (RDF Semantic Web)
RDF: #1 statements 20 Στο RDF η γνώση εκφράζεται µε τριπλέτες - triples - statements subject predicate object subject: πόρος (resource) object: resource ή τιµή (value/literal) predicate: σχέση (propery)
RDF: #1 statements 21 Στο RDF η γνώση εκφράζεται µε τριπλέτες - triples - statements subject predicate object resource resource resource value value value resource
RDF: #2 URIs 22 Τα ονόµατα των resources πρέπει να είναι καθολικά αναγνωρίσιµα. Uniform Resource Identifier: URI URL vs URI URL: χρησιµοποιείται για την ανάκτηση ιστοσελίδας URI: δεν αναφέρεται πάντα σε ιστοσελίδα (π.χ. προιόν, πρόσωπο, κ.λ.π.) hash URI vs slash URI
23 RDF: #2 URIs
RDF: #2 URIs 24 Namespaces µείωση µεγέθους URI prefix + local name
RDF: #2 URIs 25 Namespaces µείωση µεγέθους URI prefix + local name
26 RDF: #2 URIs URIs και για τα predicates!
27
RDF 28 Με το RDF µοντελοποιούµε δυαδικές σχέσεις. Για n-σχέσεις χρησιµοποιούµε τους ανώνυµους κόµβους (blank nodes).
29 blank node
30 RDF RDF representation in XML
RDF: turtle format 31 <subject> <predicate> <object>. κάθε statement τελειώνει σε. κάθε subject είναι ένα URI κάθε object είναι ένα URI ή ένα literal κάθε predicate είναι ένα URI τα URIs περικλείονται σε <>
RDF 32 Θυµηθείτε! Συλλογή reviews για φωτογραφικές µηχανές NIKON πολλές ιστοσελίδες διαφορετικός τρόπος παρουσίασης διαφορετικό λεξιλόγιο δυσκολία επεξεργασίας φυσικής γλώσσας Ανάγκη για ενιαίο τρόπο διατύπωσης των reviews Πώς θα το υλοποιούσαµε µε τη βοήθεια του RDF;
RDF 33 Βήµα 1: Δηµιουργούµε το σύνολο των URIs για τα προϊόντα http://www.liyangyu.com/camera#nikon_d300 http://www.liyangyu.com/camera#nikon_d90 http://www.liyangyu.com/camera#nikon_d60 Βήµα 2: Δηµιουργούµε το λεξιλόγιο που θα χρησιµοποιούν οι reviewers, π.χ. http://www.liyangyu.com/camera#model http://www.liyangyu.com/camera#weight
RDF 34 Βήµα 3: Βεβαιωνόµαστε ότι οι reviewers θα χρησιµοποιήσουν τα URIs και το λεξιλόγιο που διαθέτουµε για να φτιάξουν τα reviews. Βήµα 4: Υλοποιούµε την εφαρµογή που θα µαζεύει τα statements των reviews.
35 review 1 review 2
RDF 36 Οι reviewers πρέπει να συµφωνήσουν στη χρήση RDF, να συµφωνήσουν στη χρήση των δοθέντων URI (αντί να φτιάξουν τα δικά τους). Οι reviewers µπορούν να προσθέσουν τα δικά τους predicates! αρκεί να το δηλώσουν ώστε να είναι προσβάσιµα και από τους άλλους
37 RDFa: RDF µέσα σε HTML subject predicate object (resource) subject predicate object (value)
38 RDFs Γλώσσα ορισµού λεξιλογίου για RDF ορισμός κλάσεων και τύπων των resources με βάση την κλάση που ανήκουν ορισμός των property που συνδέουν subject - object
39 RDFs Ορισµός κλάσης Camera
40 RDFs Ορισµός κλάσης Camera
RDFs 41 Ορισµός property owned_by domain: τι τύπου resources επιτρέπονται ως subjects (εδώ DSLR) range: τι τύπου resources επιτρέπονται ως objects (εδώ Photographer)
42 RDF in action Demo...
SPARQL in action 43 Η SPARQL για το RDF είναι ότι η SQL για τις ΒΔ. Triple patterns: βασικό συστατικό µιας ερώτησης SPARQL select?name from http://danbri.org/foaf.rdf where { <http://danbri.org/foaf.rdf#danbri> foaf:name?name. } βρες triples x y z, όπου x το URI http://danbri.org/foaf.rdf#danbri, y το property foaf:name, και επέστρεψε το z?...: µεταβλητές
SPARQL in action 44 select * from http://danbri.org/foaf.rdf where {?x?y?z. } Βρες όλες τις RDF triples!
SPARQL in action 45 select * from http://danbri.org/foaf.rdf where { <#danbri> foaf:knows?friend.?friend foaf:depiction?picture.?picture dc:format?imageformat. }
SPARQL in action 46 select * from http://danbri.org/foaf.rdf where { <#danbri> foaf:knows?friend. optional {?friend foaf:name?name. } optional {?friend foaf:mbox?email. } optional {?friend foaf:homepage?homepage. } } Αν υπάρχει όνοµα, ή/και email ή ή/και ιστοσελίδα, θα εµφανιστούν
SPARQL in action 47 select distinct?friend?name?email?homepage from http://danbri.org/foaf.rdf where { <#danbri> foaf:knows?friend. optional {?friend foaf:name?name. } optional {?friend foaf:mbox?email. } optional {?friend foaf:homepage?homepage. } } order by asc(?name) limit 10
SPARQL in action 48 select?person?v from http://danbri.org/foaf.rdf where {?person foaf:name Tim Berners-Lee.?person?p?v. } Τι έχει ειπωθεί για τον Tim Berners-Lee; Demo!
SPARQL in action 49 select?person?v from http://danbri.org/foaf.rdf where {?person foaf:name?y.?person?p?v. filter regex(str(?y), tim berners-lee, i ). } str(?y): µετατρέπει το περιεχόµενο της?y σε string regex: ελέγχει αν?y= tim berners-lee αγνοώντας πεζά/ κεφαλαία ( i ).
SPARQL in action 50 select?person?v from http://danbri.org/foaf.rdf where {?person foaf:name?y.?person?p?v. filter regex(str(?y), tim berners-lee, i ). } str(?y): µετατρέπει το περιεχόµενο της?y σε string regex: ελέγχει αν?y= tim berners-lee αγνοώντας πεζά/ κεφαλαία ( i ).
SPARQL in action 51 select?name?dob from http://danbri.org/foaf.rdf where {?person a foaf:person.?person foaf:name?name.?person foaf:dateofbirth?dob. filter ( xsd:date(str(?dob)) >= "1970-01-01"ˆˆxsd:date &&xsd:date(str(?dob)) < "1980-01-01"ˆˆxsd:date ) } Βρες άτοµα µε ηµεροµηνία γέννησης από 1/1/1970 έως 1/1/1980
SPARQL in action 52 ask from http://danbri.org/foaf.rdf where {?person a foaf:person.?person foaf:name?name.?person foaf:dateofbirth?dob. filter ( xsd:date(str(?dob)) >= "1970-01-01"ˆˆxsd:date &&xsd:date(str(?dob)) < "1980-01-01"ˆˆxsd:date ) } Υπάρχουν άτοµα µε ηµεροµηνία γέννησης από 1/1/1970 έως 1/1/1980; TRUE/FALSE
SPARQL in action 53... { }... {?person foaf:mbox?m.} UNION {?person my:mbox?m.} Βρες triples που ταιριάζουν είτε µε το ένα είτε µε το άλλο triple pattern.
SPARQL in action 54 select distinct?name?email from named <http://www.liyangyu.com/foaf.rdf> from named <http://danbri.org/foaf.rdf> where { graph <http://www.liyangyu.com/foaf.rdf> {?person a foaf:person.?person foaf:mbox?email. optional {?person foaf:name?name. } }....
55 SPARQL in action select distinct?name?email from named <http://www.liyangyu.com/foaf.rdf> from named <http://danbri.org/foaf.rdf> where { graph <http://www.liyangyu.com/foaf.rdf> graph <http://danbri.org/foaf.rdf> { {?person1 a foaf:person.?person a foaf:person.?person1 foaf:mbox?email.?person foaf:mbox optional?email. {?person1 foaf:name?name. } optional {?person }. foaf:name?name. } }. }
SPARQL in action 56 construct {?person a foaf:person.?person foaf:name?name.?person foaf:mbox?email. } from <http://danbri.org/foaf.rdf> where {?person a foaf:person.?person foaf:name?name.?person foaf:mbox?email. } Construct: Δηµιουργεί RDF ως αποτέλεσµα
SPARQL 57 Πρόβληµα µε: insert, delete, update min, max, avg, sum (group by) SPARQL 1.1! select count(*) from <http://danbri.org/foaf.rdf> where {?x a foaf:person.?x foaf:mbox?mbox. }
SPARQL 58 select?name from http://danbri.org/foaf.rdf where {?x foaf:givenname?name. optional {?x foaf:mbox?mbox }. filter (!bound(?mbox)) } Άρνηση: άτοµα µε όνοµα αλλά χωρίς email