Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999 Capitolo 4:SQL 11/10/2001.
Prof. Riccardo Torlone Università Roma Tretorlone.dia.uniroma3.it/bd2/CBD-ES4.pdf · Possibile...
Transcript of Prof. Riccardo Torlone Università Roma Tretorlone.dia.uniroma3.it/bd2/CBD-ES4.pdf · Possibile...
ESERCITAZIONE SU RDF E SPARQL
Prof. Riccardo TorloneUniversità Roma Tre
Esercizio n. 1 Descrivere in RDF le seguenti affermazioni: “Il Dipartimento di Informatica e Automazione
dell’Università Roma Tre si trova in Via della Vasca Navale, 79 - Roma"
“Il sito Web http://www.w3.org/ contiene la home page delle attività del W3C sul Semantic Web"
a) Scrivere queste informazioni in RDF nella notazione N3 senza nodi vuoti, usando almeno tre triple per affermazione;
b) Scrivere queste informazioni in RDF nella notazione N3 con almeno un nodo vuoto, usando almeno tre triple per affermazione;
c) Rappresentare i dati RDF del punto (b) mediante triple, in XML e nella notazione grafica.
Possibile soluzione esercizio 1a@prefix ex: <http://dia.uniroma3.it#>. ex:dia ex:nome "Dipartimento di Informatica e Automazione".ex:dia ex:dipartimento ex:Uniroma3.ex:Uniroma3 ex:nome "Università Roma Tre".ex:dia ex:indirizzo ex:indirizzodia.ex:indirizzodia ex:via "Via Vasca Navale, 79".ex:indirizzodia ex:CAP "00146".ex:indirizzodia ex:citta "Roma".ex:indirizzodia ex:nazione "Italia".
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix : <http://example.com#> .<http://www.w3.org/> rdf:type :website .<http://www.w3.org/> :hosts :sw-activity .:sw-activity :has-homepage :sw-activity-homepage .:sw-activity-homepage rdf:type :homepage .:sw-activity-homepage :url "http://www.w3.org/".
Riccardo Torlone: Basi di Dati 2 3
Possibile soluzione esercizio 1b@prefix ex: <http://dia.uniroma3.it#>. ex:dia ex:nome "Dipartimento di Informatica e Automazione".ex:dia ex:dipartimento ex:Uniroma3.ex:Uniroma3 ex:nome "Universita' Roma Tre".ex:dia ex:indirizzo [ex:via "Via Vasca Navale, 79";
ex:CAP "00146";ex:citta "Roma";ex:nazione "Italia"].
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix : <http://www.example.com#> .<http://www.w3.org/> rdf:type :website .<http://www.w3.org/> :hosts :sw-activity .:sw-activity :has-homepage [rdf:type :homepage;
:url “http://www.w3.org/”].Riccardo Torlone: Basi di Dati 2 4
Possibile soluzione esercizio 1c
Riccardo Torlone: Basi di Dati 2 5
Subject Predicate Object
<http://dia.uniroma3.it#dia> <http://dia.uniroma3.it#indirizzo> _:A251885eeX3aX1304a88b1f0X3aXX2dX7fff
<http://dia.uniroma3.it#dia> <http://dia.uniroma3.it#nome> Dipartimento di Informatica e Automazione
<http://dia.uniroma3.it#dia> <http://dia.uniroma3.it#dipartimento> <http://dia.uniroma3.it#Uniroma3>
_:A251885eeX3aX1304a88b1f0X3aXX2dX7fff <http://dia.uniroma3.it#CAP> 146
_:A251885eeX3aX1304a88b1f0X3aXX2dX7fff <http://dia.uniroma3.it#nazione> Italia
_:A251885eeX3aX1304a88b1f0X3aXX2dX7fff <http://dia.uniroma3.it#via> Via Vasca Navale, 79
_:A251885eeX3aX1304a88b1f0X3aXX2dX7fff <http://dia.uniroma3.it#citta> Roma
<http://dia.uniroma3.it#Uniroma3> <http://dia.uniroma3.it#nome> Universita' Roma Tre
Possibile soluzione esercizio 1c<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"xmlns:ex="http://dia.uniroma3.it#" >
<rdf:Description rdf:about=" http://dia.uniroma3.it#dia"><ex:nome>Dipartimento di Informatica e Automazione</ex:nome><ex:dipartimento rdf:resource=" http://dia.uniroma3.it#Uniroma3"/>
</rdf:Description><rdf:Description rdf:about=" http://dia.uniroma3.it#Uniroma3">
<ex:nome>Universita' Roma Tre</ex:nome></rdf:Description><rdf:Description rdf:about=" http://dia.uniroma3.it#dia">
<ex:indirizzo rdf:resource="#_g0"/></rdf:Description><rdf:Description rdf:about="#_g0">
<ex:via>Via Vasca Navale, 79</ex:via><ex:CAP>00146</ex:CAP><ex:citta>Roma</ex:citta><ex:nazione>Italia</ex:nazione>
</rdf:Description></rdf:RDF>
Riccardo Torlone: Basi di Dati 2 6
Possibile soluzione esercizio 1c
Riccardo Torlone: Basi di Dati 2 7
Possibile soluzione esercizio 1c<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ex="http://www.example.com#"><ex:website rdf:about="http://www.w3.org/">
<ex:hosts><rdf:Description rdf:about="http://www.example.com#sw-activity">
<ex:has-homepage><rdf:Description rdf:about="http://www.example.com#sw-activity-homepage">
<rdf:type ex:url="http://www.w3.org/" /></rdf:Description>
</ex:has-homepage></rdf:Description>
</ex:hosts></ex:website>
</rdf:RDF>
Riccardo Torlone: Basi di Dati 2 8
Esercizio n. 2 Sia dato il seguente schema RDF-S
Descrivere un possibile insieme di dati in RDF con questo schema con uno studente, un professore e una università.
Si faccia uso della notazione grafica e di quella a triple.
ex:student-of
rdfs:domain
rdfs:range
ex:enrolled-in
rdfs:domain
rdfs:range
Possibile soluzione Esercizio 2 (in N3).@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.@prefix ex: <http://dia.uniroma3.it#>. ex:University rdf:type rdfs:Class.ex:Student rdf:type rdfs:Class.ex:Msc-student rdfs:subClassOf ex:Student.ex:Faculty rdf:type rdfs:Class.ex:student-of rdf:type rdf:Property.ex:student-of rdfs:domain ex:Student.ex:student-of rdfs:range ex:Faculty.ex:enrolled-in rdf:type rdf:Property.ex:enrolled-in rdfs:domain ex:Student.ex:enrolled-in rdfs:range ex:University.
ex:Uniroma3 ex:nome "Universita' Roma Tre".ex:Uniroma3 rdf:type ex:University.ex:mrossi ex:nome "Mario Rossi".ex:mrossi rdf:type ex:Msc-student.ex:abianchi ex:nome "Antonio Bianchi".ex:abianchi rdf:type ex:Faculty.ex:mrossi ex:s1 ex:abianchi.ex:s1 rdf:type ex:student-of.ex:mrossi ex:e1 ex:Uniroma3.ex:e1 rdf:type ex:enrolled-in.
Riccardo Torlone: Basi di Dati 2 10
Possibile soluzione Esercizio 2 (grafico).
Riccardo Torlone: Basi di Dati 2 11
Esercizio n. 3Si consideri il seguente insieme di triple RDF:
Disegnare il corrispondente grafo RDF
Subject Predicate Object
:P1 rdf:type :Person
:P1 :name "Pete"
:P1 :age "17"
:P1 :email "[email protected]"
:P2 rdf:type :Person
:P1 :knows :P2
:P2 :name "John"
:P2 :email "[email protected]"
:P2 :knows :P1
:P2 :knows :P3
:P1 :knows :P3
:P3 rdf:type :Person
:P3 :name "Sue"
:P3 :age “21"
Possibile soluzione esercizio 3
Riccardo Torlone: Basi di Dati 2 13
Esercizio n. 4 Descrivere graficamente in RDF/RDFS le
seguenti specifiche facendo uso di bag e sequenze:La AS Roma è una squadra di calcioLa sua ragione sociale è Società per AzioniUn’altra squadra di calcio è l’InterRoma e Inter fanno parte del CampionatoLa squadra ha sede a Roma, Italia.L’allenatore è ?mettere il nome?.Daniele De Rossi, Francesco Totti, Mirko
Vucinic sono giocatori della RomaDei giocatori è di interesse l’età e il ruolo.
Riccardo Torlone: Basi di Dati 2 14
Esercizio 5 Con riferimento ai dati RDF dell’esercizio 3 indicare la soluzione
delle seguenti interrogazioni SPARQL:
SELECT ?nWHERE { ?p rdf:type :Person. ?p :age ?age. ?p :name ?n.
FILTER (?age>20) } SELECT ?p ?age
WHERE { ?p rdf:type :Person. ?p :name ?name. OPTIONAL { ?p :age ?age } }
SELECT ?p ?age ?emailWHERE { { ?p rdf:type :Person. ?p :age ?age }
UNION {?p rdf:type :Person. ?p :email ?email } }
SELECT ?p WHERE { ?p rdf:type :Person.
OPTIONAL { ?p :email ?email }. FILTER (?age>20) }
Riccardo Torlone: Basi di Dati 2 15
Soluzioni esercizio 5.1 con Twinkle
Riccardo Torlone: Basi di Dati 2 16
Soluzioni esercizio 5.2 con Twinkle
Riccardo Torlone: Basi di Dati 2 17
Soluzioni esercizio 5.3 con Twinkle
Riccardo Torlone: Basi di Dati 2 18
Soluzioni esercizio 5.4 con Twinkle
Riccardo Torlone: Basi di Dati 2 19
Esercizio n. 6 Con riferimento alla seguente collezione di dati RDF:
Esprimere in SPARQL le seguenti interrogazioni:1. Il nome degli impiegati che guadagnano più di 152. Lo stipendio degli impiegati con meno di 30 anni.3. Il nome del manager di Bob4. Nome e email degli impiegati (se l’email non è disponibile lasciare in bianco il campo)5. Nome degli impiegati che guadagnano più del proprio manager6. Nome e stipendio di tutti i dipendenti (impiegati e manager)
Riccardo Torlone: Basi di Dati 2 20
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.@prefix : <http://example.com#>.:employee rdf:type rdfs:Class.:manager rdf:type rdfs:Class.:a :name "Alice" .:a :age 28.:a :manages :b.:a rdf:type :manager.:a :salary 16.:b :name "Bob".:b :mbox <mailto:[email protected]>.:b :age 32.:b :salary 18.:b rdf:type :employee.:c :name "Tim".:c :age 27.:c :salary 14.:c rdf:type :employee.
Soluzione Esercizio 6.1
Riccardo Torlone: Basi di Dati 2 21
Soluzione Esercizio 6.2
Riccardo Torlone: Basi di Dati 2 22
Soluzione Esercizio 6.3
Riccardo Torlone: Basi di Dati 2 23
Soluzione Esercizio 6.4
Riccardo Torlone: Basi di Dati 2 24
Soluzione Esercizio 6.5
Riccardo Torlone: Basi di Dati 2 25
Soluzione Esercizio 6.6
Riccardo Torlone: Basi di Dati 2 26