RDF-SPARQL

Transcript

RDF-SPARQL
Prof. Massimo Ruffolo
Ing. Maurizio Colica
Capitolo 4
RDF: Resource Description Framework
…
Introduzione
…
Classi e Istanze
…
Proprietà
1
RDF: Resource
Description
Framework
Introduzione
RDF:
Resource Description
Framework
The Resource Description Framework (RDF)
è uno standard W3C per la descrizione delle
risorse Web, in termini di titolo, autore, data
modifica, e copyright.
2
Cos’è RDF?
„
RDF sta per Resource Description Framework
„
RDF è una piattaforma per la descrizione delle risorse sul web
„
RDF è costituito da un modello dei dati e da una sintassi separate
l’una dall’altra
„
RDF può essere interpretato da un computer
„
RDF non è nato per essere letto dall’uomo
dall uomo
„
RDF è scritto in XML
„
RDF fa parte delle attività del W3C per il “Web Semantico”
„
RDF è una “W3C Recommendation“
RDF – Esempi d’uso
„
„
„
„
„
Descrizione di proprietà di oggetti in vendita
come prezzo e disponibilità
Descrizione di informazioni relative a Pagine
Web: autore,modifica,copyright
Descrizione dei contenuti e classificazione di
immagini sul web
Descrizione di contenuti per facilitare il compito
dei motori di ricerca
Descrizione di librerie digitali
3
RDF è disegnato per essere
interpretato da un pc
„
RDF è stato disegnato per essere di
facile interpretazione da parte di
applicazioni che si occupano di trattare
contenuti.
„
RDF non è stato disegnato per essere
visualizzato sul web
RDF è scritto in XML
„
Il linguaggio XML usato da RDF è
chiamato RDF/XML.
„
Usando XML, le informazioni RDF
possono essere facilmente scambiate fra
p
che utilizzino differenti
computer
piattaforme e differenti linguaggi di
programmazione.
4
RDF ed il “Web Semantico"
„
Il linguaggio RDF fa parte del W3C's Semantic
W b Activity.
Web
A ti it W3C's
W3C' "S
"Semantic
ti W
Web
b Vi
Vision"
i "
mira ad un futuro in cui:
„
Le risorse web siano esattamente descritte
„
Le risorse Web possano essere estratte e
catalogate direttamente da un calcolatore
„
Le applicazioni possano automaticamente
incamerare e consumare contenuti eterogenei
distribuiti sul web.
RDF è un W3C Recommandation
„
„
„
RDF è diventato un W3C Recommendation nel
Febbraio 2004
2004.
Un “W3C Recommendation” è considerato all’interno
della comunità internazionale come uno standard. Un
W3C Recommendation è una specifica di un linguaggio
del quale W3C dopo un attenta revisione ne dichiara la
validità come standard.
La W3C Specification per RDF si trova a questo link:
http://www.w3.org/RDF/
5
RDF Risorse, Proprietà, e
valori di Proprietà
„
RDF identifica gli oggetti attraverso una URI e
descrive tali oggetti attraverso le proprietà
… Una
Risorsa è tutto ciò che è identificato da un Uri.
Es. "http://www.w3schools.com/RDF"
… Una
proprietà è una risorsa cui viene associato un
nome come “mail” ,“name”
… Il
valore di una proprietà esprime il valore che una
proprietà di una risorsa può assumere. Il valore di
una proprietà può essere un’altra risorsa.
RDF Risorse, Proprietà, e valori
di Proprietà: un esempio.
„
L’RDF seguente descrive ad esempio la
risorsa
"http://www.unical.it/employee/mcolica":
„
Notate come nell’esempio non è stato
considerato alcun Namespace
6
Esempio Visivo
Soggetto
Predicato
http://www.unical.it
Oggetto
homepage
http://www.unical.it/employee/mcolica
author
mcolica
RDF Asserzioni
„
„
„
„
La combinazione di una risorsa, una proprietà ed un valore di proprietà si
chiama asserzione.
In un asserzione la risorsa viene chiamata Soggetto, la proprietà
Predicato ed il valore Oggetto.
Nell’esempio precedente:
Asserzione: “L’autore di http://www.unical.it/employee/mcolica è Maurizio
Colica".
…
Il soggetto è: http://www.unical.it/employee/mcolica
Il predicato è: author
… L’oggetto è: Maurizio Colica
…
„
Assrezione: “L’homePage di http://www.unical.it/employee/mcolica è
http://www.unical.it ".
…
Soggetto: http://www.unical.it/employee/mcolica
Predicato: homepage
… Oggetto: http://www.unical.it
…
7
RDF Esempio
„
Collezione di CD:
Title
Artist
Country
Company
Price
Year
Pearl Days
Elisa
Italia
Columbia
12 euro
2006
Robbie Williams
Misunders
tood
UK
CBS Records
18 euro
2001
...
RDF Esempio: Rappresentazione
Grafica
Elisa
artist
company
Columbia
http:// www.mp3.it/cd/Pearl Days
price
i
12 euro
year
2006
8
RDF Esempi
RDF Esempi
„
„
„
„
„
La prima linea è la dichiarazione XML. Segue la root di un
documento RDF: <rdf:RDF>.
Il xmlns:rdf namespace, specifica che all’interno del documento
tutto ciò che porta il prefisso rdf fa riferimento al namespace
"http://www.w3.org/1999/02/22-rdf-syntax-ns#".
Il xmlns:cd namespace, specifica che all’interno del documento
tutto ciò che porta il prefisso cd fa riferimento al namespace
http://www.mp3.it/cd#“ .
Il tag <rdf:Description> specifica la descrione della risorsa
id ifi
identificata
dall’attibuto
d ll’ ib
rdf:about.
df b
Gli elementi: <cd:artist>, <cd:country>, <cd:company>, etc.
sono proprietà della risorsa.
9
L’elemento <rdf:RDF>
„
<rdf:RDF> è la root di qualsiasi documento RDF e lo
identifica: in esso può essere contenuto il riferimento al
namesapce RDF
„
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdfsyntax ns#">
syntax-ns#">
[descrizioni delle risorse]
</rdf:RDF>
L’ elemento <rdf:Description>
„
L’ <rdf:Description> identifica una risorsa ed i
suoii attributi
tt ib ti
„
L’ <rdf:Description> contiene elementi che
descrivono le sue proprietà
„
Gli elementi, artist, country, company, price, e
year, sono definiti nel namespace
http://www.mp3.it/cd#. Questo namespace
non ha nulla a che fare con RDF . RDF
definisce solo l’infrastruttura.
10
Proprietà
„
come Attributi
Le proprietà possono essere rappresentate come attributi
Proprietà come Risorse
„
I valori di proprietà possono essere
espressi come risorse:
„
La proprietà artista non ha un valore ma
un riferimento ad un’altra risorsa.
11
Proprietà come Risorse
name
Elisa
http:// www.mp3.it/artist/Elisa
artist
company
Columbia
http:// www.mp3.it/cd/Pearl Days
price
i
12 euro
year
2006
RDF Elementi contenitori
„
RDF containers: sono usati per descrivere
gruppi di cose. Ad esempio per elencare gli
autori di un disco o di una canzone.
„
Per descrivere questi gruppi si usano i tag:
<Bag>, <Seq>, e <Alt>.
12
L’elemento <rdf:Bag>
„
Rappresenta una lista di valori non ordinata.
„
Può contenere valori duplicati
duplicati.
…
Esempio
rdf:Bag
http:// www.mp3.it/song/Ostacoli del cuore
rdf:Bag
cd:artist
rdf:type
rdf:_1
Elisa
rdf:_2
df 2
Ligabue
13
L’elemento <rdf:Seq>
„
Rappresenta un lista di valori ordinata
„
Può contenere valori duplicati.
„
Esempio
rdf:Seq
http:// www.mp3.it/cd/Pearl Days
rdf:Seq
cd:song
rdf:type
01 Stay
rdf:_1
df 2
rdf:_2
rdf:_3
02 Gli Ostacoli del cuore
....
14
L’elemento <rdf:Alt>
„
Rappresenta una lista di alternative
„
Esempio
rdf:Alt
http:// www.mp3.it/song/Ostacoli del cuore
rdf:Alt
cd:format
rdf:type
CD
rdf:_1
df 2
rdf:_2
rdf:_3
Disco
MC
15
RDF Terms
„
Una lista di valori in RDF si chiamano
membri.
„
Quindi:
… Un
contenitore è una risorsa che contiene
altri oggetti
… Gli
oggetti contenuti si chiamano membri.
RDF Collections
„
RDF collections sono usati per descrivere
gruppi che contengono solo gli elementi
specificati.
16
L’attributo
rdf:parseType="Collection"
„
Un container dice che una risorsa contiene alcuni membri ma tale
affermazione non è chiusa: può contenerne anche altri.
„
RDF collections è usato per esprimere liste chiuse
„
Una collezione è descritta dall’attibuto rdf:parseType="Collection".
„
Example
RDF Schema (RDFS)
„
RDF Schema (RDFS) è un estensione di
RDF.
17
RDF Schema e Classi
„
RDF descrive risorse tramite classi,, proprietà
p p
e valori.
„
RDF ha bisogno di definire delle classi e proprietà
specifiche per un applicazione
„
Queste classi devono essere definite usando un
estensione di RDF
„
Tale estensione è RDF Schema
RDF Schema (RDFS)
„
RDF Schema non ha classi predefinite.
„
RDF Schema fornisce la piattaforma per desrcivere nuovi tipi di
classi.
„
Le classi in RDF Schema sono simili alle classi di un linguaggio di
programmazione ad oggetti
oggetti.
„
In RDF si possono rappresentare le risorse come istanze di classi
e definire sottoclassi e tipi.
18
RDFS Esempi
„
Classi e Sotto classi:
La classe horse viene dichiarata come sottoclasse della
classe Animal.
Esempio Abbreviato
„
RDFS Class è sotto classe della classe
rdf:Resource. Per questo motivo
possiamo evitare di usare rdf:Description
rdf:type ed usare direttamente rdf:class
19
RDF Classi e Proprietà
„
„
„
„
„
„
„
Namespace prefix:'rdfs'
URI:'http://www
URI:
http://www.w3.org/2000/01/rdf-schema#
w3 org/2000/01/rdf-schema#'
Le risorse possono essere istanze di una o più classi
La classe è indicata tramite l’attibuto rdf:type property
La risorsa http://www.unical.it/students/Maurizio è
rdf:type Student
La risorsa http://www.unicla.it/students/Maurizio è
rdf:type
df t
Person
P
Student è rdfs:subClassOf Person
Le proprietà vengono definite in funzione della classe di
risorse su cui si applicano
RDF Classi
„
rdfs:Resource – le risorse sono istanze di
questa classe
„
rdf:Property – le proprietà sono istanze di
questa classe.
„
rdfs:Class – una classe dei linguaggi
object oriented.
20
RDF Proprietà
„
„
„
„
„
rdf:type – indica che una risorsa è del tipo della
classe che viene specificata
rdfs:subClassOf – indica la relazione
classe/sottoclasse fra due classi
rdfs:subPropertyOf – indica che una proprietà e
specializzazione di un’altra.
rdfs:seeAlso – specifica che la risorsa è anche
descritta in altre parti
rdfs:isDefinedBy – indica la risorsa “soggetto
dell’asserzione” ovvero chi ha fatto l’asserzione
RDF Constraints
„
rdfs:range
… Indica
la classe dei valori ammissibili di una
proprietà.
… rdfs:range
„
è una classe rdf:Class
rdfs:domain
… Indica
la classe cui la proprietà si applica.
… Se
non è specificata indica che quella proprietà può
essere usata su qualsiasi classe.
21
Domain e Range
„
Legame tra classi e proprietà
„
RDF(S) ffornisce
i
anche
h un vocabolario
b l i per d
descrivere
i
come cii sii
aspetta che proprietà e classi si combinino tra di loro
„
Proprietà predefinite rdfs:domain ed rdfs:range
http://www.w3.org/1999/02/22-rdf-syntax-ns#Property
rdf:type
http:// www.mp3.it/cd/#singer
rdfs:domain
http:// www.mp3.it/cd/#Song
rdfs:range
http:// www.mp3.it/cd/#Artist
RDF Documentation
„
rdfs:comment – testo libero
„
rdfs:label – Riporta informazioni sulla versione
di una risorsa
22
RDF Schema Esempio (1)
RDF Schema Esempio (2)
23
RDF Schema Esempio (3)
Istanze – classi – metaclassi
rdfs:subClassOf
rdfs:Resource
rdfs:Class
rdf:type
rdf:type
rdf:type
terms:Person
terms:Course
rdfs:subClassOf
terms:Students
terms:Teacher
rdf:type
rdf:type
Massimo
terms:teacher
people:Ruffolo
course:BDSIW
terms:name
Mario
people:Bianchi
terms:name
24
Reasoning
rdfs:subClassOf
rdfs:Resource
rdfs:Class
rdf:type
rdf:type
rdf:type
terms:Person
rdfs:subClassOf
terms:Course
rdf:type
rdfs:subClassOf
terms:Students
terms:Teacher
rdf:type
rdf:type
Massimo
terms:teacher
people:Ruffolo
course:BDSIW
terms:name
Mario
people:Bianchi
terms:name
Modello generale
rdfs:Resource
t
terms:…
rdfs:subClassOf
rdf:type
rdfs:subClassOf
rdfs:Class
terms:…
rdf:type
terms:…
rdf:domain
terms:…
rdfs:range
rdfs:Property
rdf:type
terms:…
25
RDF Schema Esempio (4)
Interrogazione di file
RDF
SPARQL linguaggio di interrogazione dell
SPARQL,
dell' RDF
asceso da qualche mese al rango di W3C
Candidate Recommendation,
è
stato
accolto
entusiasticamente
come
l'agognato ultimo tassello per l'edificazione del
Web semantico
26
SPARQL Sintassi Turtle
SPARQL adotta la sintassi Turtle, un'estensione di N-Triples,
alternativa estremamente sintetica e intuitiva al tradizionale
RDF/XML.
Si considerino le seguenti triple RDF, che saranno utilizzate
nel corso della lezione come riferimento per le query
d'esempio:
RDF File cd.rdf
27
Query SPARQL
„
PREFIX cd: <http://example.org/cd/>
SELECT ?title ?artist ?year
FROM <cd.rdf>
WHERE {?title cd:artist ?artist.
?title cd:year ?year .
}
Risultato
Title
Artist
Year
Pearl Days
Elisa
2006
Restituisce tutte le risorse per le quali sia specificato sia
l’artista che l’anno
28
Clausola OPTIONAL
„
PREFIX cd: <http://example.org/cd/>
p
p
g
SELECT ?title ?artist ?year
FROM <cd.rdf>
WHERE {
?title cd:artist ?artist.
OPTIONAL {?title cd:year ?year.}
}
Risultato
Title
Artist
Year
Pearl Days
Elisa
2006
Misunderstood
Robbie
Williams
Restituisce tutte le risorse per le quali sia specificato l’artista e
opzionalmente l’anno
29
Clausola UNION
„
PREFIX cd: <http://example.org/cd/>
SELECT ?title ?artist ?price ?year
„
FROM <cd.rdf>
WHERE {
{?title cd:year ?year.}
UNION
{?title cd:price ?price.}
}
Risultato
Title
Artist
Pearl Days
Elisa
Robbie
Misunderstood Williams
Price
Year
2006
18 euro
Restituisce tutte le risorse per le quali sia specificato o il prezzo
o l’anno.
30
Clausola FILTER
„
PREFIX cd: <http://example.org/cd/>
p
p
g
SELECT ?title ?artist ?price ?year
„
FROM <cd.rdf>
WHERE {
{?title cd:year ?year.}
FILTER (?year > 2005)
}
Risultato
Title
Artist
Pearl Days
Elisa
Price
Year
2006
Restituisce tutte le risorse per le quali l’attributo anno è maggiore di
2005.
31
Clausola FILTER con REGEX
„
PREFIX cd: <http://example.org/cd/>
p
p
g
SELECT ?title ?artist
„
FROM <cd.rdf>
WHERE {
{?title cd:artist ?artist.}
FILTER regex(?artist, “^el”, “i” )
}
Risultato
Title
Artist
Pearl Days
Elisa
Restituisce tutte le risorse per le quali l’attributo artist comincia per “el”
ignorando la distinzione fra maiuscole e minuscole.
32
Costrutti speciali
„
SELECT DISTINCT ?title ?artist
„
ORDER BY DESC(?autore)
„
LIMIT 10
„
OFFSET 10
Esempio 2: Human Ontology
(Classes)
Animal
rdfs:subClassOf
rdfs:subClassOf
rdfs:subClassOf
Male
Person
Female
rdfs:subClassOf
rdfs:subClassOf
rdfs:subClassOf
rdfs:subClassOf
rdfs:subClassOf
rdfs:subClassOf
Man
Lecturer
Researcher
Woman
33
Esempio 2: Human Ontology
(ObjectProperty)
rdfs:domain
Animal
hasAncestor
rdfs:subPropertyOf
Animal
rdfs:range
hasParent
rdfs:range
rdfs:range
hasMother
Female
hasFather
rdfs:subPropertyOf
rdfs:domain
rdfs:subPropertyOf
rdfs:domain
Animal
h Si t
hasSister
Male
Animal
hasBrother
Female
rdfs:range
rdfs:domain
rdfs:range
rdfs:domain
Person
hasFriend
Male
Person
hasSpouse
rdfs:range
rdfs:range
Person
Person
Esempio 2: Human Ontology
(DataType Property)
rdfs:domain
rdfs:domain
Person
Animal
shirtSize
age
Integer
Integer
rdfs:range
rdfs:range
rdfs:domain
rdfs:domain
Person
trouserssize
Person
name
Integer
rdfs:range
String
rdfs:range
34
Istanze
isA
Lecturer
isA
Man
Eve
isA
Harry
hasFriend
isA
hasChild
Person
hasSpouse
John
hasSpouse
Alice
hasFriend
age
David
14
hasFriend
Sophie
shoeSize
37
isA
hasFather
hasFriend
Gastone
Researcher
Mark
age
16
shoeSize
39
hasChild
Jack
(…)
Query su Classi
SELECT ?x WHERE { ?x rdf:type rdfs:Class }
X
Animal
Male
Person
Female
man
Lecturer
Researcher
Woman
35
Sussunzioni
SELECT ?x ?y WHERE { ?x rdfs:subClassOf ?y }
X
Male
Person
Female
Man
Man
Man
Woman
Woman
Woman
Lecturer
Lecturer
…
Y
Animal
Animal
Animal
Animal
Male
Person
Animal
Female
Person
Animal
Person
…
Proprietà: Persone
Sposate
SELECT ?x ?y WHERE { ?x humans:hasSpouse ?y }
X
Harry
Eve
Y
Sophie
David
36
Uomini Sposati
SELECT * WHERE { ?x humans:hasSpouse ?y . ?x rdf:type humans:Male }
Answer
Numero di Persone di cui
Y è amico
SELECT ?x ?y count(?x) as ?conteggio group ?y
WHERE
{ ?x humans:hasFriend ?y }
Y
Gastone
Alice
John
COUNT
1
2
1
37
Persone con almeno un
parente
SELECT DISTINCT ?x
WHERE
{
{ ?y humans:hasChild ?x }
UNION
{ ?x humans:hasParent ?y }
}
Le persone e la loro età
(se nota)
SELECT ?person ?age
WHERE
{ ?person rdf:type humans:Person
OPTIONAL
{ ?person humans:age ?age }
}
38
Maggiorenni
SELECT ?x
WHERE { ?x humans:age ?age
FILTER ( xsd:integer(?age) >= 18 ) }
E’ Mark Maggiorenne?
ASK
WHERE
{
#Mark
humans:age ?age
FILTER
( xsd:integer(?age)
g ( g ) >= 18 )
}
39
Tutte le persone che non
sono ricercatori.
SELECT ?x
WHERE { ?x rdf:type humans:Person
OPTIONAL
{ ?x rdf:type ?t
FILTER ( ?t = humans:Researcher ) }
FILTER ( ! bound( ?t ) )
}
Antenati
SELECT ?x ?y
WHERE { ?x humans:hasAncestor ?y }
Questa query restituisce ovviamente, anche tutte le istanze delle
sottoproprietà hasFather ed HasParent
40
Bibliografia
„
RDF/RDFS SPECIFICATION
…
„
Semantic web tutorial: RDF, RDFS and SPARQL using CORESE
…
„
http://www.w3.org/RDF/
http://www-sop.inria.fr/acacia/soft/corese/tutorial.php
CORESE (Open Source Software per interrogare file RDF)
…
http://www-sop.inria.fr/teams/edelweiss/wiki/wakka.php?wiki=Corese
41

Documenti analoghi

Rappresentazione della Conoscenza nel Semantic Web

Rappresentazione della Conoscenza nel Semantic Web proprietà (soggetto soggetto,, predicato,, oggetto predicato oggetto,, tipo tipo)). Mario

Dettagli

Il_Desktop_semantico_con_Nepomuk

Il_Desktop_semantico_con_Nepomuk Una persona ha un’età e uno stato civile. Questa rappresentazione è sintetica perché ogni tipo di semantica non è esplicito, è sott’inteso. Queste informazioni sono (ancora) molto difficili da...

Dettagli

Semantic Web

Semantic Web n Finora abbiamo considerato proprietà aventi come valori stringhe n Anche un nodo del grafo (corrispondente a una risorsa) può essere il valore di una proprietà

Dettagli

Il linguaggio RDF - Dipartimento di Ingegneria Informatica e delle

Il linguaggio RDF - Dipartimento di Ingegneria Informatica e delle  RDFS definisce le proprietà (ovvero risorse di tipo rdfs:Property):

Dettagli

laurea magistrale in ingegneria del cinema e dei mezzi di - e-Lite

laurea magistrale in ingegneria del cinema e dei mezzi di - e-Lite e interpretazione automatizzata attraverso logiche inferenziali di tipo semantico. Con il Semantic Web saranno possibili ricerche più evolute e più ramificate grazie a relazioni e connessioni tra d...

Dettagli

Ontologie - Dipartimento di Ingegneria Informatica e delle

Ontologie - Dipartimento di Ingegneria Informatica e delle il primo livello (URI) offre solo uno strumento per la localizzazione delle risorse Il secondo livello (annotazione) permette di descrivere un documento, una sua parte, o una intera collezione; que...

Dettagli