Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΕυγένιος Βλαστός Τροποποιήθηκε πριν 5 χρόνια
1
Διαχείριση και Εξόρυξη Γνώσης Knowledge Management and Data Mining
Γεώργιος Βούρος Γεώργιος Σαντιπαντάκης
2
Περιεχόμενα Ανασκόπηση Παραδείγματα RDF/RDFS στο Protégé
Εισαγωγή στην SPARQL
3
Ανασκόπηση (Τριπλέτα)
4
RDFS Ιδιότητες πηγή: RDF Schema 1.1 ( )
5
rdf:type
6
rdfs:Class rdfs:Class: Προσδιορίζει σύνολο ομοειδών οντοτήτων (οντότητες που μοιράζονται τις ίδιες ιδιότητες/χαρακτηριστικά) Για παράδειγμα: msc:Surgeon rdf:type rdfs:Class. msc:Staff rdf:type rdfs:Class. msc:Physician rdf:type rdfs:Class. msc:Patient rdf:type rdfs:Class.
7
rdfs:subClassOf rdfs:subClassOf: αφορά κλάσεις και δηλώνει σχέση υπαγωγής (κλάσης υπο-κλάσης). Κάθε στοιχείο της υπο-κλάσης είναι ταυτόχρονα και στοιχείο της κλάσης. Για παράδειγμα: (RDFS) msc:Pregnant rdfs:subClassOf msc:Female . msc:FemalePatient rdfs:subClassOf msc:Female. (RDF) msc:maria rdf:type msc:Pregnant . Τι σημαίνει : «Αν x βρίσκεται στο Α και το Α είναι υποσύνολο του Β, τότε το x ανήκει και στο B.»
8
rdfs:subPropertyOf rdfs:subPropertyOf: αφορά ιδιότητες (properties) και δηλώνει εξειδίκευση ιδιότητας: η περισσότερο εξειδικευμένη ιδιότητα είναι rdfs:subPropertyOf της γενικότερης. Τι σημαίνει: «Αν x P y και P subPropertyOf R, τότε ισχύει και x R y.» Για παράδειγμα: msc:hasChild rdfs:subPropertyOf msc:hasOfspring . msc:hasOfspring rdfs:subPropertyOf msc:BloodRelated . msc:BloodRelated rdfs:subPropertyOf msc:hasKin .
9
rdfs:subPropertyOf Παράδειγμα:
:freeLancesTo rdfs:subPropertyOf :contractsTo. :indirectlyContractsTo rdfs:subPropertyOf :contractsTo. :isEmployedBy rdfs:subPropertyOf :worksFor. :contractsTo rdfs:subPropertyOf :worksFor. Τί συμπεράσματα μπορούν να βγούν αν δώσουμε τις τριπλέτες: (RDF) msc:Marcus msc:contractsTo msc:UOA. msc:Spence msc:indirectlyContractsTo msc:UniPi. msc:Peter msc:isEmployedBy msc:NTUA .
10
rdfs:domain/rdfs:range
rdfs:domain: Αφορά ένα property και δηλώνει την κλάση των subjects στις τριπλέτες όπου το property αυτό θα χρησιμοποιείται ως predicate . rdfs:range: Αφορά ένα property και δηλώνει την κλάση των objects στις τριπλέτες όπου το property αυτό θα χρησιμοποιείται ως predicate . «Αν P rdfs:domain C και x P y, τότε x ανήκει στο C.» «Αν P rdfs:range D και x P y, τότε y ανήκει στο D.» Συμπληρώστε τα κενά: :suffersFromDisease ______ msc:Patient . :suffersFromDisease ______ msc:Disease .
11
Παράδειγμα Έστω, msc:PulmonaryPatient είναι ασθενείς της πνευμονολογικής κλινικής, msc:Injured ασθενείς της ορθοπεδικής κλινικής και msc:HeartPatient ασθενείς της καρδιολογικής κλινικής. Τί πρέπει να προσθέσουμε, ώστε να προκύπτουν τύποι ασθενών στις αντίστοιχες υπο-κλάσεις; Ποιά άλλα συμπεράσματα προκύπτουν; Πως θα κατηγοριοποιήσουμε αυτόματα τους γιατρούς (Doctor);
12
Τομή συνόλων (Set intersection)
Παράδειγμα: (RDFS) msc:Surgeon rdfs:subClassOf msc:Staff. msc:Surgeon rdfs:subClassOf msc:Physician. (RDF) msc:Kildare rdf:type msc:Surgeon.
13
Ένωση συνόλων (Set Union)
Πως μπορούμε να εκφράσουμε ότι η ένωση δύο κλάσεων (συνόλων) A, B είναι υποκλάση μιας τρίτης C; Για κάθε πόρο x που ανήκει είτε στην Α ή στην Β, συνάγεται ότι ανήκει επίσης στην C.
14
URIs/Literals
15
SPARQL Η SPARQL χρησιμοποιείται για την δημιουργία ερωτημάτων προς RDF δεδομένα. Το βασικό στοιχείο των SPARQL ερωτημάτων είναι ο πρότυπος γράφος (graph patterns): αποτελείται από πρότυπες τριπλέτες (triple pattern), οι οποίες μπορούν να έχουν σε οποιαδήποτε από τις τρείς θέσεις θέματος, κατηγορήματος και αντικειμένου μεταβλητές. Οι μεταβλητές εμφανίζονται ως σύμβολα στα οποία προηγείται ένα ερωτηματικό "?". SPARQL Specification:
16
SPARQL Πρότυπη τριπλέτα
Παραδείγματα: ?p msc:attendedBy msc:dimou . msc:panos ?r "Άσθμα" . msc:bill msc:hasPulmonaryD ?disease . ?p msc:attendedBy ?d. ?s ?p ?o . Τα αποτελέσματα ενός ερωτήματος μπορούν να επιστραφούν με διάφορους τρόπους. Τα ερωτήματα SPARQL μπορούν να χρησιμοποιηθούν και στην OWL.
17
SPARQL Πρότυπη τριπλέτα
Τα αποτελέσματα του ερωτήματος είναι τιμές τις οποίες πρέπει να πάρουν οι μεταβλητές, ώστε τα πρότυπα να ταιριάξουν με τριπλέτες στα δεδομένα. Για παράδειγμα: (RDF) msc:nikos msc:attendedBy msc:manos . Πρότυπες τριπλέτες: msc:nikos msc:attendedBy ?who . ?var msc:attendedBy msc:manos .
18
SPARQL Πρότυπος Γράφος
Πρότυπος γράφος: ένα σύνολο προτύπων τριπλετών όπου κάθε μεταβλητή που εμφανίζεται σε δύο ή περισσότερες τριπλέτες πρέπει να ταιριάζει με τον ίδιο πόρο στο γράφο. Οι πρότυποι γράφοι δίνονται ως μια λίστα από πρότυπες τριπλέτες που εσωκλείονται σε αγκύλες, { και }.
19
SPARQL Πρότυπος Γράφος
Παράδειγμα: {?patient msc:regDate "2/4/2016" . ?patient msc:attendedBy msc:dimou.} {?patient msc:hasInjury ?d . ?patient msc:attendedBy ?doctor.}
20
Ανατομία του ερωτήματος SPARQL
PREFIX rdf: < PREFIX rdfs: < PREFIX msc: < SELECT ?title WHERE { ?x rdf:type msc:SomeClass . ?dataset rdf:title ?title . FILTER(…) } Group By … Having … Order By … Limit … Offset … Bindings … Ορισμός Προθεμάτων Τύπος Ερωτήματος Μεταβλητές (τί θέλουμε να βρούμε) Πρότυπος γράφος (οι πρότυπες τριπλέτες που πρέπει να ικανοποιηθούν) και φίλτρα στις τιμές Προαιρετικοί τελεστές στα αποτελέσματα Περισσότερα προθέματα στο
21
Τύποι ερωτημάτων SPARQL
SELECT Επιστρέφει σε πίνακα τα αποτελέσματα X, Y, κλπ. που ικανοποιούν τον πρότυπο γράφο CONSTRUCT Εντοπίζει τα X, Y, κλπ. που ικανοποιούν τον πρότυπο γράφο και τα τοποθετεί σε νέο πρότυπο γράφο για την κατασκευή RDF τριπλετών (γράφου). DESCRIBE Εντοπίζει τριπλέτες που παρέχουν πληροφορία για συγκεκριμένους πόρους ASK Εξετάζει αν υπάρχουν X, Y, κλπ. στα δεδομένα, τέτοια ώστε να ικανοποιούν τον πρότυπο γράφο. Επιστρέφει yes ή no
22
SPARQL (SELECT) SELECT ?city WHERE { ?hospital msc:LocatedIn ?city }
versus: SELECT DISTINCT ? city WHERE {
23
SPARQL (SELECT) Παράδειγμα:
Ποιοί γιατροί με ειδικεύονται σε εσωτερικά όργανα (πνεύμονες, καρδιά κλπ): SELECT ?doctor WHERE { {?patient msc:hasPulmonaryD ?disease . ?patient msc:attendedBy ?doctor. } UNION {?p msc:hasHeartDisease ?disease . ?p msc:attendedBy ?doctor} }
24
SPARQL (SELECT) SELECT ?student WHERE { ?student msc:studies msc:CS901
MINUS {?student msc:studies msc:MED101} } A MINUS B: Ικανοποιεί το Α και το Β, και επιστρέφει μόνο τα αποτελέσματα που προκύπτουν από το A αλλά όχι το B
25
SPARQL (SELECT) SELECT ?student ?book WHERE {
?student msc:studies msc:CS901 OPTIONAL {?student msc:checkedOut ?book} } A OPTIONAL {B}: Επιστρέφει τα αποτελέσματα του Α και όποια από το Β, ικανοποιούνται
26
SPARQL (FILTERS) SELECT * WHERE {
Τα φίλτρα (FILTERS) στην SPARQL αφαιρούν αποτελέσματα που δεν ικανοποιούν τις συνθήκες που δηλώνονται στο FILTER(…). Τα φίλτρα τοποθετούνται μέσα στον πρότυπο γράφο: SELECT * WHERE { A . B . FILTER ( ...expr... ) }
27
SPARQL (FILTERS)
28
SPARQL (CONSTRUCT) CONSTRUCT { ?student msc:studyFriend ?friend }
WHERE { ?student msc:studies ?course . ?student foaf:knows ?friend . ?friend msc:studies ?course } } Εαν υπάρχουν περισσότερα από ένα αποτελέσματα, οι τριπλέτες από κάθε αποτέλεσμα συνδυάζονται.
29
SPARQL (ASK) Υπάρχουν φοιτητές που παρακολουθούν οποιοδήποτε μάθημα;
ASK { ?student msc:studies ?course} Υπάρχουν φοιτητές που παρακολουθούν το μάθημα MED101; ASK { ?student msc:studies msc:MED101 } Ο φοιτητής παρακολουθεί το μάθημα MED101; ASK { msc: msc:studies msc:MED101 } Γνωρίζει ο κάποιον που παρακολουθεί το MED101; ASK {msc: foaf:knows ?x . ?x msc:studies msc:MED101 } Υπάρχει φοιτητής άνω των 30 ετών που παρακολουθεί το MED101; ASK { ?s msc:studies msc:CS909 . ?s msc:hasAge ?age . FILTER (?age > 30) }
30
SPARQL (ORDER BY) SELECT ?name ?module WHERE {
?student msc:studies ?course . ?student foaf:name ?name . } ORDER BY ?name SELECT ?name ?age ?student msc:hasAge ?age . ORDER BY DESC (?age) ASC (?name)
31
SPARQL (LIMIT) SELECT ?name ?course WHERE {
?student msc:studies ?course . ?student foaf:name ?name . } LIMIT 15
32
SPARQL (OFFSET) SELECT ?name ?course WHERE { ?student msc:studies ?course . ?student foaf:name ?name . } ORDER BY ?name OFFSET 5 LIMIT 3
33
Εργασία για το σπίτι Δοκιμάστε ερωτήματα SPARQL στα
34
SPARQL (UPDATE)
35
Σύνοψη Το RDF χρησιμοποιείται για να εκφράσουμε δεδομένα.
Τα RDF δεδομένα εκφράζονται σε τριπλέτες: υποκείμενο (subject), κατηγόρημα (predicate), αντικείμενο (object). Το RDFS χρησιμοποιείται για να εκφράσει το σχήμα πάνω από τα δεδομένα. Η SPARQL είναι η γλώσσα που χρησιμοποιείται για την υποβολή ερωτημάτων σε δεδομένα RDF. Η SPARQL μπορεί να χρησιμοποιηθεί και για ενημέρωση (update) των RDF δεδομένων.
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.