Εισαγωγή στο RDF Σταύρος Πολυβίου Το Resource Description Framework (RDF) RDF: µία γλώσσα περιγραφής πληροφοριών (metadata) που αφορούν πόρους (resources) στο world wide web. Παραδείγµατα: ο τίτλος, ο συγγραφέας και η ηµεροµηνία τροποποίησης µίας σελίδας. Πόρος (web resource): ο,τιδήποτε το οποίο µπορεί να ταυτοποιηθεί µέσα στο web, χωρίς απαραίτητα να µπορεί να ανακτηθεί από αυτό. π.χ. ένα βιβλίο, CD, ένα πρόσωπο κ.ο.κ. 1
Στόχοι του RDF Το RDF προορίζεται για περιπτώσεις ώπου οι καταγραµµένες πληροφορίες ενδεχοµένως να τύχουν επεξεργασίας από κάποια εφαρµογή και όχι να διαβαστούν από κάποιο άνθρωπο. Παρέχει ένα κοινό πλαίσιο για την περιγραφή πληροφοριών κατα τρόπο που να επιτρέπει την ανταλλαγή τους µεταξύ εφαρµογών χώρις απώλεια νοήµατος. Οι πληροφορίες αυτές ενδεχοµένως να χρησιµοποιηθούν από εφαρµογές πέραν από αυτές για τις οποίες είχαν αρχικά δηµιουργηθεί. Συναφή ερευνητικά πεδία Το RDF βασίζεται σε ιδέες από τα ακόλουθα πεδία Αναπαράσταση γνώσης (knowledge representation) Τεχνητή νοηµοσύνη (artificial intelligence) ιαχείριση δεδοµένων (data management) Εννοιολογικούς γράφους (conceptual graphs) Σχεσιακές βάσεις (relational databases) 2
οµή Όλαταπράγµατα (πόροι - resources, ιδιότητες - properties) ταυτοποιούνται µε URIs. Οι πόροι περιγράφονται µε απλές ιδιότητες (simple properties) και τιµές ιδιοτήτων (property values). Οι δηλώσεις που αφορούν τους πόρους απεικονίζονται ως γράφοι Κόµβοι (nodes): πόροι (resources), τιµές (values) Ακµές (arcs): ιδιότητες (properties) Παράδειγµα Πόρος (πρόσωπο) Ιδιότητα Τιµή 3
ηλώσεις (statements) Συνθέτονται από τριάδες υποκειµένουκατηγορήµατος-αντικειµένου (subjectpredicate-object triples). Υποκείµενο: ταυτοποιεί αυτό στο οποίο αναφέρεται η δήλωση. Κατηγόρηµα (ρήµα): ταυτοποιεί την ιδιότητα ήτοχαρακτηριστικότουυποκειµένου το οποίο καθορίζει η δήλωση. Αντικείµενο: ταυτοποιεί την τιµή της ιδιότητας. Αναφορές σε URI Το RDF χρησιµοποιεί αναφορές σε URI για την ταυτοποίηση υποκειµένων, κατηγορηµάτων και αντικειµένων. Μία αναφορά σε URI δεν είναι τίποτε άλλο από ένα URI µε µία προαιρετική αναφορά σε τµήµα (fragment) στο τέλος (π.χ. http://www.w3.org/people/em/contact#me). Μπορεί να περιέχει οποιοδήποτε Unicode χαρακτήρα. Ένα λεξιλόγιο (vocabulary) στο RDF δεν είναι τίποτε άλλο από ένα σύνολο αναφορών σε URI (URIrefs). 4
Τρόποι αναπαράστασης RDF Μοντέλο γράφων (graph model) Σηµειογραφία τριάδων (triples notation) Ως XML έγγραφο (RDF/XML) Το µοντέλο γράφων του RDF Το υποκείµενο και αντικείµενο αναπαριστόνται ως κόµβοι (nodes). Το κατηγόρηµα αναπαριστάται ως ακµή η οποία κατευθύνεται από του υποκείµενο στο αντικείµενο. Τα αντικείµενα µπορεί να είναι είτε URIrefs είτε σταθερές τιµές (literals). Σταθερές τιµές δε µπορούν να χρησιµοποιηθούν ως υποκείµενα ή ως κατηγορήµατα σε RDF δηλώσεις. Οι κόµβοι-υποκείµενα και οι κόµβοι-αντικέιµενα που περιλαµβάνουν URIrefs αναπαριστόνται ως ελλείψεις. Οι κόµβοι αντικέιµενα που περιλαµβάνουν σταθερές τιµές αναπαριστόνται ως κουτιά. 5
Σηµειογραφία τριάδων Κάθε τριάδα ανταποκρίνεται σε µία ακµή σεέναrdf γράφο. Μία τριάδα αποτελείται από το Υποκέιµενο Κατηγόρηµα Αντικέιµενο σε αυτή ακριβώς τη σειρά. Οκάθεκόµβοςθαπρέπειναταυτοποιείται ξεχωριστάσεκάθεδήλωσηστηνοποίαεµφανίζεται. Κάθε URIref περικλείεται σε <>. Παράδειγµα τριάδων <http://www.w3.org/people/em/contact#me> <http://www.w3.org/2000/10/swap/pim/contact#fullname> Eric Miller <http://www.w3.org/people/em/contact#me> <http://www.w3.org/2000/10/swap/pim/contact#mailbox> <mailto:em@w3.org> <http://www.w3.org/people/em/contact#me> <http://www.w3.org/2000/10/swap/pim/contact#personaltitle> Dr <http://www.w3.org/people/em/contact#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/10/swap/pim/contact#person> 6
Σύγκριση δηλώσεων RDF µε άλλα µοντέλα Οι δηλώσεις RDF µοιάζουν µε: Εγγραφές σε ένα σύστηµα καταγραφής ή αρχειοθέτησης Πλειάδες σε µία σχεσιακή βάση ηλώσεις σε τυπική λογική οµηµένες τιµές (structured values) µε χρήση κενών κόµβων (blank nodes) Ορισµένες έννοιες που χρησιµοποιούνται για τη συνάθροιση τιµώνκαιοιοποίεςδεν τυγχάνουν καµµίας αναφοράς πέρα από τα πλαίσια ενός γράφου, µπορούν αν αναπαρασταθούν ως κενοί κόµβοι, δηλαδή κόµβοι χωρίς κάποιο URIref ή σταθερή τιµή. Στη σηµειολογία τριάδων τέτοιοι κόµβοι ταυτοποιούνται προθέτοντας το όνοµά τους µε τους χαρακτήρες _: Κάθε διακριτός κενός κόµβος σε ένα γράφο πρέπει να ταυτοποιείται µε διαφορετικό όνοµα. 7
οµηµένες τιµές (structured values) µε χρήση κενών κόµβων (blank nodes) (2) Οι κενοί κόµβοι µπορούν να εµφανιστούν µόνο ως υποκείµενα ή αντικείµενα σε µία δήλωση. Οι κενοί κόµβοι µπορούν να χρησιµοποιηθούν για την αναπαράσταση n-αδικών σχέσεων, αφού το RDF υποστηρίζει άµεσα µόνο δυαδικές σχέσεις. Σε περιπτώσεις ώπου ένας πόρος r δε µπορεί να ταυτοποιηθεί µε κάποιοuri, είναι προτιµότερο να χρησιµοποιηθεί ένας κενός κόµβος ως υποκείµενο παρά να χρησιµοποιηθεί το URL ενός πόρου που σχετίζεται µε τοr. Σε µία τέτοια περίπτωση ο κενός κόµβος διαβάζεται ως Υπάρχει κάποιος πόρος Παράδειγµα κενόυκόµβου 8
Τυποποιηµένα στοιχεία (typed literals) Ένα στοιχείο (literal) το οποίο εµφανίζεται ως το αντικέιµενο µίας δήλωσης µπορεί να συσχετιστεί µε κάποιο τύπο. Το τύπος ταυτοποιείται µε έναuriref. Τόσο στη σηµειογραφία τριάδων όσο και στο µοντέλο γράφων, το URIref του τύπου ακολουθεί το στοιχείο και χωρίζεται από αυτό µε ^^ Το ίδιο το RDF δεν έχει δικό του σύστηµα τύπων(µε εξαίρεση το rdf:xmlliteral το οποίο χρησιµοποιείται για την αναπαράσταση ενός XML εγγράφου ως στοιχείο). Τύποι δεδοµένων κατάλληλοι για χρήση µε τοrdf Ένας τύπος για να είναι κατάλληλος για χρήση µε το RDF θα πρέπει να περιλαµβάνει: Ένα πεδίο τιµών (value space): το σύνολο των τιµών τις οποίες αναπαριστούν τα στοιχεία (literals) του τύπου µε άλλα λόγια το νόηµα. Π.χ. µέρες της εβδοµάδας, βάρος, ταχύτητα Ένα πεδίο λέξεων (lexical space): ένα σύνολο Unicode συµβολοσειρών µε το οποίο ο τύπος αναπαριστά τις τιµές του. Π.χ. Mon, Tue, Wed, Thu, Fri, Sat, Sun Μία αντιστοιχία µεταξύ των λέξεων και των τιµών (lexical-tovalue mapping): καθορίζει την τιµή που αναπαριστά η κάθε λέξη του πεδίου λέξεων του τύπου. Π.χ. Mon Πρώτη μέρα της εβδομάδας... 9
Γενική µορφή RDF/XML εγγράφου <rdf:rdf xmlns:rdf= xml:base=> <rdf:description rdf:about= subject [relative] URIref > <rdf:type rdf:resource= subject class 1 URIref /> <rdf:type rdf:resource= subject class 2 URIref /> <property element>value literal</property element> <property element rdf:datatype= datatype URIref >typed literal</property element> <property element rdf:resource= object URIref /> <property element rdf:nodeid= blank node identifier /> Γενική µορφή RDF/XML εγγράφου (2) </rdf:description> <subject class element rdf:id= subject unique name > </subject class element> <rdf:description rdf:id= subject unique name > </rdf:description> <rdf:description rdf:nodeid= blank node identifier > </rdf:rdf> 10
οχεία RDF Το κατηγόρηµα rdf:type ορίζει τον τύπο ενός υποκειµένου. Τρία πιθανά αντικείµενα για το κατηγόρηµα αυτό επιτρέπουν την αναπαράσταση οµάδων πόρων ή στοιχείων: rdf:bag: Ησειράτων µελών δεν είναι σηµαντική. Ένδεχοµένως να περιέχει διπλότυπα µέλη (duplicate members). rdf:seq: Ησειράτων µελών είναι σηµαντική. Ένδεχοµένως να περιέχει διπλότυπα µέλη. rdf:alt: Τα µέλη αποτελούν ένα σύνολο εναλλακτικών επιλογών. Το υποκείµενο, το οποίο αναπαριστά ολόκληρη την οµάδα, µπορεί να είναι ένας κενός κόµβος ή ένας πόρος µε τοδικότουuriref. Τα µέλη είναι τα αντικείµενα κατηγορηµάτων µε ονόµατα rdf:_1, rdf_2 κ.ο.κ. Παράδειγµα δοχείου 11
RDF/XML έγγραφο µε δοχείο <rdf:rdf xmlns:rdf= xml:base=> <rdf:description rdf:about= subject [relative] URIref > <property element> <rdf:bag> <rdf:li rdf:resource= member 1 URIref > <rdf:li rdf:resource= member 2 URIref > <rdf:bag> </property element> <property element> <rdf:seq> <rdf:li rdf:resource= member 1 URIref > <rdf:li rdf:resource= member 2 URIref > <rdf:seq> </property element> </rdf:description> </rdf:rdf> Συλλογές RDF Τα δοχεία δε µπορούν να κλείσουν. ε µπορούµε να δηλώσουµε µε ένα δοχείο ότι δεν ύπάρχουν ενδεχοµένως και άλλα µέλη. Συλλογή RDF: µία οµάδα πραγµάτων η οποία αναπαριστάται ως µία λίστα. Η λίστα αυτή σχηµατίζεται µε τη χρήση ενός προκαθορισµένου λεξιλογίου συλλογών που αποτελέιται από: Το αντικέιµενο rdf:list για το κατηγόρηµα rdf:type Τα κατηγορήµατα: rdf:first: το υποκείµενό του αναπαριστά µία λίστα. rdf:rest: το υποκείµενό του αναπαριστά µία λίστα. Τον πόρο: rdf:nil: αναπαριστά µία άδεια λίστα. Οτύποςτου(rdf:type) είναι rdf:list. 12
Παράδειγµα συλλογής RDF/XML document with collection <rdf:rdf xmlns:rdf= xml:base=> <rdf:description rdf:about= subject [relative] URIref > <property element rdf:parsetype= Collection > <rdf:description rdf:about= member 1 [relative] URIref /> <rdf:description rdf:about= member 2 [relative] URIref /> </property element> </rdf:description> </rdf:rdf> 13
Χαρακτηρισµός δηλώσεων RDF (reification) Μία εφαρµογή RDF ενδεχοµένως να χρειαστεί να περιγράψει δηλώσεις RDF για να καταγράψει πληροφορίες όπως: Πότε έγινε η δήλωση Ποιός έκανε τη δήλωση κ.α. Η περιγραφή αυτή γίνεται χρησιµοποιόντας το RDF. To RDF παρέχει ένα προκαθορισµένο λεξιλόγιο για την περιγραφή RDF δηλώσεων. Λεξιλόγιο περιγραφής δηλώσεων RDF Περιλαµβάνει: Το αντικείµενο rdf:statement για το κατηγόρηµα rdf:type Τα κατηγορήµατα: rdf:subject rdf:predicate rdf:object 14
Τετράδα χαρακτηρισµού δήλωσης (reification quad) Μία δήλωση RDF συνήθως περιγράφεται µε τις ακόλουθες τέσσερις δηλώσεις statement URIref rdf:type rdf:statement. statement URIref rdf:subject subject URIref. statement URIref rdf:predicate predicate URIref. statement URIref rdf:object object URIref or (typed) literal. Έχοντας τα πιο πάνω στοιχεία, µπορούµε νασυσχετίσουµε τηδήλωσηµε το περιεχόµενό της. Στη συνέχεια µπορούµε ναπροβούµε σεπερεταίρωχαρακτηρισµούς της δήλωσης, χρησιµοποιόντας το statement URIref ως υποκείµενο των δηλώσεων αυτών. Το RDF schema Παρέχει διευκολύνσεις για: Την περιγραφή κλάσεων και ιδιοτήτων. Την υπόδειξη των κλάσεων και των ιδιοτήτων οι οποίες αναµένεται να χρησιµοποιούνται µαζί. εν παρέχει κάποιο λεξιλόγιο κλάσεων για µία συγκεκριµένη εφαρµογή. Είναι µία επέκταση του RDF. Ένα εξειδικευµένο και προκαθορισµένο σύνολο RDF πόρων. 15
Παράδειγµα: ιεραρχία οχηµάτων Επεκτάσεις RDF Schema που αφορούν κλάσεις Πόροι: rdfs:class rdfs:resource (παρόµοιο µε την κλάση Object της Java) Ιδιότητες (κατηγορήµατα): rdfs:subclassof (µεταβατική) Χρήση του rdf:type για τη δήλωση νέων κλάσεων. Ένα πόρος ενδεχοµένως να ανήκει σε περισσότερες από µία κλάσεις. 16
Επεκτάσεις του RDF Schema που αφορούν ιδιότητες Πόροι: rdfs:datatype: χρησιµοποιείται ως αντικείµενο για το rdf:type. ηλώνει ότι ο πόρος είναι ένας τύπος δεδοµένων. rdf:property : χρησιµοποιείται ως αντικείµενο για το rdf:type για να δηλώσει νέες ιδιοτητες. Παράδειγµα: foo:bar rdf:type rdf:property Ιδιότητες (κατηγορήµατα): rdfs:domain: ηλώνει σε ποιές κλάσεις µπορεί να αποδοθεί µία ιδιότητα. rdfs:range: Περιορίζει τις τιµές της ιδιότητας σε υποστάσεις (instances) µίας συγκεκριµένης κλάσης. rdfs:subpropertyof (µεταβατική) Χρησιµοποιεί το rdf:type για τη δήλωση νέων ιδιοτήτων. Άλλες διευκολύνσεις του RDF Schema Ιδιότητες (κατηγορήµατα): rdfs:comment Ένα σχόλιο για ανάγνωση από κάποιο άνθρωπο. rdfs:label Ένα όνοµα για κάποιο πόρο το οποίο µπορεί να διαβαστεί από κάποιο άνθρωπο. rdfs:seealso rdfs:isdefinedby 17
Η Web Ontology Language (OWL) Προχωρεί πέρα από το RDF Schema και επιτρέπει τη διατύπωση πιό εκφραστικών δηλώσεων. Παραδείγµατα: Επιτρέπει τον καθορισµό ελάχιστης και µέγιστης πληθυκότητας µεταξύ ιδιοτήτων και των κλάσεων που αφορούν. Επιτρέπει τη διάκριση µεταξύ ταυτόσηµων και ετερόσηµων κλάσεων. Επιτρέπει το χαρακτηρισµό ιδιοτήτων δηλώνοντας για παράδειγµα τιςσυναρτησιακέςεξαρτήσειςστιςοποίες µετέχουν, ή ιδιότητές τους όπως η µεταβατικότητα, η συµµετρία και η αντιστροφή. Επιτρέπει τον τοπικό περιορισµό των τιµών των ιδιοτήτων βάσει της κλάσης στην οποία αφορούν. 18
Ονοηµατικός ιστός (Semantic Web) Στόχος: η ανάπτυξηπροτύπωνκαι τεχνολογιών που να υποβοηθούν την κατανόηση περισσότερων πληροφοριών στον ιστό από τις µηχανές, έτσι ώστε αυτές µε τη σειρά τους να επιτύχουν την καλύτερη ανακάλυψη και ενσωµάτωση πληροφοριών και τη βελτίωση της πλοήγησης και της αυτοµατοποίησης διεργασιών. Βασικές αρχές 1. Τα πάντα ταυτοποιούνται µε URI's 2. Οι πόροι και οι σύνδεσµοι έχουν τύπους 3. Η ύπαρξη ελλειπών πληροφοριών είναι ανεκτή 4. εν υπάρχει ανάγκη για την εξακρίβωση της πλήρους αλήθειας 5. Υποστήριξη στην εξέλιξη 6. Μινιµαλιστικός σχεδιασµός 19
Τα επίπεδα του νοηµατικού ιστού 20