SlideShare une entreprise Scribd logo
1  sur  86
Télécharger pour lire hors ligne
Querying 
Linked 
Data 
Presented 
by: 
Barry 
Norton
Motivation: 
Music! 
2 
Visualiza6on 
Module 
Metadata 
Physical 
Wrapper 
Streaming 
providers 
Downloads 
Access 
Data 
acquisi6on 
LD 
Wrapper 
D2R 
Transf. 
Musical 
Content 
Applica6on 
Analysis 
& 
Mining 
Module 
LD 
Dataset 
LD 
Wrapper 
RDF/ 
XML 
Integrated 
Dataset 
Vocabulary 
Interlinking 
Cleansing 
Mapping 
SPARQL 
Endpoint 
Publishing 
RDFa 
Other 
content
Agenda 
1. Introduc+on 
to 
SPARQL 
2. Querying 
Linked 
Data 
with 
SPARQL 
3. SPARQL 
Algebra 
4. Upda+ng 
Linked 
Data 
with 
SPARQL 
1.1 
5. SPARQL 
Protocol 
6. Reasoning 
over 
Linked 
Data 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
3
INTRODUCTION 
TO 
SPARQL 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
4
SPARQL 
Seman6c 
Web 
Stack 
Berners-­‐Lee 
(2006) 
* 
Protocol 
and 
RDF 
Query 
Language 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
5 
Declara6ve 
query 
language
SPARQL 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
6 
• SPARQL 
Query 
– Declara6ve 
query 
language 
for 
RDF 
data 
– hp://www.w3.org/TR/rdf-­‐sparql-­‐query/ 
• SPARQL 
Algebra 
– Standard 
for 
communica6on 
between 
SPARQL 
services 
and 
clients 
– hp://www.w3.org/2001/sw/DataAccess/rq23/rq24-­‐algebra.html 
• SPARQL 
Update 
– Declara6ve 
manipula6on 
language 
for 
RDF 
data 
– hp://www.w3.org/TR/sparql11-­‐update/ 
• SPARQL 
Protocol 
– Standard 
for 
communica6on 
between 
SPARQL 
services 
and 
clients 
– hp://www.w3.org/TR/sparql11-­‐protocol/
SPARQL 
Query 
1.1 
• Aggregates, 
Subqueries, 
Nega6on, 
Expressions 
in 
the 
SELECT 
clause, 
Property 
paths, 
assignment, 
short 
form 
for 
CONSTRUCT, 
expanded 
set 
of 
func6ons 
and 
operators 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
7 
• SPARQL 
1.0 
only 
allows 
accessing 
the 
data 
(query) 
• SPARQL 
1.1 
introduces: 
Query 
extensions 
Updates 
• Data 
management: 
Insert, 
Delete, 
Delete/Insert 
• Graph 
management: 
Create, 
Load, 
Clear, 
Drop, 
Copy, 
Move, 
Add 
Federa6on 
extension 
• Service, 
values, 
service 
variables 
(informa6ve) 
CH 
5
SPARQL 
Basics 
dbpedia:The_Beatles 
foaf:name 
"The 
Beatles" 
. 
dbpedia:The_Beatles 
foaf:made 
?album. 
?album 
mo:track 
?track 
. 
?album 
?p 
?o 
. 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
8 
• RDF 
triple: 
Basic 
building 
block, 
of 
the 
form 
subject, 
predicate, 
object. 
Example: 
• RDF 
triple 
paNern: 
Contains 
one 
or 
more 
variables. 
Examples: 
• RDF 
quad 
paNern: 
Contains 
graph 
name: 
URI 
or 
variable. 
Examples: 
GRAPH 
<:g> 
{:s 
:p 
:o 
.} 
GRAPH 
?g 
{dbpedia:The_Beatles 
foaf:name 
?o.}
SPARQL 
Basics 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
9 
• RDF 
graph: 
Set 
of 
RDF 
asser6ons, 
manipulated 
as 
a 
labeled 
directed 
graph. 
• RDF 
data 
set: 
set 
of 
RDF 
triples. 
It 
is 
comprised 
of: 
• One 
default 
graph 
• Zero 
or 
more 
named 
graphs 
• SPARQL 
protocol 
client: 
HTTP 
client 
that 
sends 
requests 
for 
SPARQL 
Protocol 
opera6ons 
(queries 
or 
updates) 
• SPARQL 
protocol 
service: 
HTTP 
server 
that 
services 
requests 
for 
SPARQL 
Protocol 
opera6ons 
• SPARQL 
endpoint: 
The 
URI 
at 
which 
a 
SPARQL 
Protocol 
service 
listens 
for 
requests 
from 
SPARQL 
clients
QUERYING 
LINKED 
DATA 
WITH 
SPARQL 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
10
SPARQL 
Query 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
11 
Main 
idea: 
PaNern 
matching 
• Queries 
describe 
sub-­‐graphs 
of 
the 
queried 
graph 
• Graph 
paNerns 
are 
RDF 
graphs 
specified 
in 
Turtle 
syntax, 
which 
contain 
variables 
(prefixed 
by 
either 
“?” 
or 
“$”) 
• Sub-­‐graphs 
that 
match 
the 
graph 
paerns 
yield 
a 
result 
dbpedia: 
?album 
The_Beatles 
foaf:made
SPARQL 
Query 
foaf:made 
foaf:made 
dc:6tle 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
12 
dbpedia: 
?album 
The_Beatles 
foaf:made 
dbpedia: 
foaf:made 
The_Beatles 
<hp:// 
musicbrainz.org 
/record/...> 
<hp:// 
musicbrainz.org 
/record/...> 
Data: 
Graph 
paern: 
Results: 
"Help!" 
"Let 
It 
Be" 
dc:6tle 
dc:6tle 
<hp:// 
musicbrainz.org 
/record/...> 
"Abbey 
Road" 
?album 
<hp://musicbrainz.org...> 
<hp://musicbrainz.org...> 
<hp://musicbrainz.org...>
SPARQL 
Query 
foaf:made 
dc:6tle 
?album 
foaf:made 
dc:6tle 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
13 
dbpedia: 
The_Beatles 
dbpedia: 
foaf:made 
The_Beatles 
<hp:// 
musicbrainz.org 
/record/...> 
<hp:// 
musicbrainz.org 
/record/...> 
Data: 
Graph 
paern: 
Results: 
"Help!" 
"Let 
It 
Be" 
dc:6tle 
dc:6tle 
<hp:// 
musicbrainz.org 
/record/...> 
"Abbey 
Road" 
?album 
?+tle 
<hp://...> 
"Help!" 
<hp://...> 
"Abbey 
Road" 
<hp://...> 
"Let 
It 
Be" 
?6tle
SPARQL 
Query 
?album 
foaf:made 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
14 
dbpedia: 
The_Beatles 
dbpedia: 
foaf:made 
The_Beatles 
<hp:// 
musicbrainz.org 
/record/...> 
<hp:// 
musicbrainz.org 
/track/...> 
Data: 
Graph 
paern: 
Results: 
"Help!" 
"Help!" 
dc:6tle 
dc:6tle 
mo:track 
a 
mo:Record 
mo:Track 
mo:Record 
?album 
<hp://musicbrainz.org...>
SPARQL 
Query: 
Components 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
SELECT 
?album 
FROM 
<http://musicbrainz.org/20130302> 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
a 
mo:Record 
; 
dc:title 
?title 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
15 
} 
ORDER 
BY 
?title 
Prologue: 
• 
Prefix 
defini6ons 
• 
Subtly 
different 
from 
Turtle 
syntax 
-­‐ 
the 
final 
period 
is 
not 
used
SPARQL 
Query: 
Components 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
SELECT 
?album 
FROM 
<http://musicbrainz.org/20130302> 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
a 
mo:Record 
; 
dc:title 
?title 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
16 
} 
ORDER 
BY 
?title 
Query 
form: 
• ASK, 
SELECT, 
DESCRIBE 
or 
CONSTRUCT 
• SELECT 
retrieves 
variables 
and 
their 
bindings 
as 
a 
table
SPARQL 
Query: 
Components 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
SELECT 
?album 
FROM 
<http://musicbrainz.org/20130302> 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
a 
mo:Record 
; 
dc:title 
?title 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
17 
} 
ORDER 
BY 
?title 
Data 
set 
specifica+on: 
• This 
clause 
is 
op6onal 
• FROM 
or 
FROM 
NAMED 
• Indicates 
the 
sources 
for 
the 
data 
against 
which 
to 
find 
matches
SPARQL 
Query: 
Components 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
SELECT 
?album 
FROM 
<http://musicbrainz.org/20130302> 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
a 
mo:Record 
; 
dc:title 
?title 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
18 
} 
ORDER 
BY 
?title 
Query 
paNern: 
• Defines 
paerns 
to 
match 
against 
the 
data 
• Generalises 
Turtle 
with 
variables 
and 
keywords 
– 
N.B. 
final 
period 
op6onal
SPARQL 
Query: 
Components 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
SELECT 
?album 
FROM 
<http://musicbrainz.org/20130302> 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
a 
mo:Record 
; 
dc:title 
?title 
Solu+on 
modifier: 
• Modify 
the 
result 
set 
• ORDER 
BY, 
LIMIT 
or 
OFFSET 
re-­‐organise 
rows; 
• GROUP 
BY 
combines 
them 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
19 
} 
ORDER 
BY 
?title
Query 
Forms 
SPARQL 
supports 
different 
query 
forms: 
• ASK 
tests 
whether 
or 
not 
a 
query 
paern 
has 
a 
solu6on. 
Returns 
yes/no 
• SELECT 
returns 
variables 
and 
their 
bindings 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
20 
directly 
• CONSTRUCT 
returns 
a 
single 
RDF 
graph 
specified 
by 
a 
graph 
template 
• DESCRIBE 
returns 
a 
single 
RDF 
graph 
containing 
RDF 
data 
about 
resource
Query 
Form: 
ASK 
Is 
Paul 
McCartney 
member 
Results: 
Results: 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
21 
• Namespaces 
are 
added 
with 
the 
‘PREFIX’ 
direc6ve 
• Statement 
paerns 
that 
make 
up 
the 
graph 
are 
specified 
between 
brackets 
(“{}”) 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
dbpedia-­‐ont: 
<http://dbpedia.org/ontology/> 
PREFIX 
mo: 
http://purl.org/ontology/mo/ 
ASK 
WHERE 
{ 
dbpedia:The_Beatles 
mo:member 
dbpedia:Paul_McCartney.} 
Query: 
of 
‘The 
Beatles’? 
true 
Query: 
Is 
Elvis 
Presley 
member 
of 
‘The 
Beatles’? 
false 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
dbpedia-­‐ont: 
<http://dbpedia.org/ontology/> 
PREFIX 
mo: 
http://purl.org/ontology/mo/ 
ASK 
WHERE 
{ 
dbpedia:The_Beatles 
mo:member 
dbpedia:Elvis_Presley.}
Query 
Form: 
SELECT 
What 
albums 
and 
tracks 
did 
‘The 
Beatles’ 
make? 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
22 
• The 
solu6on 
modifier 
projec+on 
nominates 
which 
components 
of 
the 
matches 
should 
be 
returned 
• “*” 
means 
all 
components 
should 
be 
returned 
Query: 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
SELECT 
?album_name 
?track_title 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
dc:title 
?album_name 
; 
mo:track 
?track 
. 
?track 
dc:title 
?track_title 
.}
Query 
Form: 
SELECT 
(2) 
Filter 
expressions 
• Different 
types 
of 
filters 
and 
func6ons 
may 
be 
used 
Filter: 
Comparison 
and 
logical 
operators 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
SELECT 
?album_name 
?track_title 
?date 
?duration 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
dc:title 
?album_name 
; 
mo:track 
?track 
. 
?track 
dc:title 
?track_title 
; 
mo:duration 
?duration; 
FILTER 
(?duration>300000 
&& 
?duration<400000) 
} 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
23 
Query: 
Retrieve 
the 
albums 
and 
tracks 
recorded 
by 
‘The 
Beatles’, 
where 
the 
duraCon 
of 
the 
song 
is 
more 
than 
300 
secs. 
and 
no 
longer 
than 
400 
secs.
Query 
Form: 
SELECT 
(3) 
Elimina+on 
of 
duplicates 
Retrieve 
the 
name 
of 
the 
albums 
recorded 
by 
‘The 
Beatles’ 
which 
have 
at 
least 
Query: 
two 
different 
songs. 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
SELECT 
Results: 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
24 
MODIFIER 
?album_name 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
dc:title 
?album_name 
. 
mo:track 
?track1 
. 
mo:track 
?track2 
. 
FILTER 
(?track1 
!= 
?track2) 
} 
?album 
“Revolver” 
“Sessions” 
“Abbey 
Road” 
?album 
“Revolver” 
“Revolver” 
“Revolver” 
“Sessions” 
“Abbey 
Road” 
“Abbey 
Road” 
DISTINCT 
REDUCED 
MODIFIER= 
MODIFIER=
Query 
Form: 
SELECT 
(4) 
Aggregates 
• Calculate 
aggregate 
values: 
COUNT, 
SUM, 
MIN, 
MAX, 
AVG, 
GROUP_CONCAT 
and 
SAMPLE 
• Built 
around 
the 
GROUP 
BY 
operator 
• Prune 
at 
group 
level 
(cf. 
FILTER) 
using 
HAVING 
Retrieve 
the 
duraCon 
of 
the 
albums 
recorded 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
SELECT 
?album 
(SUM(?track_duration) 
AS 
?album_duration) 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
mo:track 
?track 
. 
?track 
mo:duration 
?track_duration 
. 
} 
GROUP 
BY 
?album 
HAVING 
(SUM(?track_duration) 
> 
3600000) 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
25 
Query: 
by 
‘The 
Beatles’.
Query 
Form: 
DESCRIBE 
Takes 
the 
resources 
within 
the 
solu6on, 
and 
provides 
informa6on 
about 
them 
as 
RDF 
statements. 
They 
can 
be 
iden6fied 
by: 
• Specifying 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
DESCRIBE 
dbpedia:Paul_McCartney 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
26 
explicit 
IRIs 
• Bindings 
of 
variables 
in 
the 
WHERE 
clause 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
DESCRIBE 
?member 
WHERE 
{ 
dbpedia:The_Beatles 
mo:member 
?member 
.}
Query 
Form: 
CONSTRUCT 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
27 
• CONSTRUCT 
WHERE: 
In 
order 
to 
query 
for 
a 
subgraph, 
without 
change, 
it 
is 
no 
longer 
necessary 
to 
repeat 
the 
graph 
paern 
in 
the 
template 
Example: 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
CONSTRUCT 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
mo:track 
?track 
.}
Query 
Form: 
CONSTRUCT 
(2a) 
dbpedia: 
foaf:made 
foaf:made 
dc:6tle 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
28 
foaf:made 
The_Beatles 
<hp:// 
musicbrainz.org 
/record/...> 
<hp:// 
musicbrainz.org 
/record/...> 
Data: 
Query: 
Result: 
"Help!" 
"Let 
It 
Be" 
dc:6tle 
dc:6tle 
<hp:// 
musicbrainz.org 
/record/...> 
"Abbey 
Road" 
CONSTRUCT 
{ 
?album 
dc:creator 
dbpedia:The_Beatles 
.} 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
.} 
dbpedia: 
The_Beatles 
<hp:// 
musicbrainz 
…> 
<hp:// 
musicbrainz 
…> 
<hp:// 
musicbrainz 
…> 
dc:creator 
dc:creator 
dc:creator
Query 
Form: 
CONSTRUCT 
(2b) 
Create 
the 
dc:creator 
descripCons 
for 
albums 
and 
their 
tracks 
recorded 
by 
‘The 
Beatles’. 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
29 
• Returns 
RDF 
statements 
created 
from 
variable 
bindings 
• Template: 
graph 
paern 
with 
variables 
from 
the 
query 
paern 
Query: 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
CONSTRUCT 
{ 
?album 
dc:creator 
dbpedia:The_Beatles 
. 
?track 
dc:creator 
dbpedia:The_Beatles 
.} 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
mo:track 
?track 
.}
Query 
Form: 
CONSTRUCT 
(3) 
Create 
the 
dc:creator 
descripCons 
for 
the 
10 
most 
recent 
albums 
and 
their 
tracks 
recorded 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
30 
Subsets 
of 
results 
• It 
is 
possible 
to 
combine 
the 
query 
with 
solu+on 
modifiers 
(ORDER 
BY, 
LIMIT, 
OFFSET) 
Query: 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
CONSTRUCT 
{ 
?album 
dc:creator 
dbpedia:The_Beatles 
. 
?track 
dc:creator 
dbpedia:The_Beatles 
.} 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
mo:track 
?track 
; 
dc:date 
?date 
. 
} 
ORDER 
BY 
DESC(?date) 
LIMIT 
10 
by 
‘The 
Beatles’.
Query 
Form: 
CONSTRUCT 
(4) 
Union 
Graph 
PaNern 
• Allows 
the 
specifica6on 
of 
alterna6ves 
(disjunc6ons) 
Create 
the 
dc:creator 
descripCons 
for 
the 
albums 
recorded 
by 
‘The 
Beatles’ 
in 
‘Abbey 
Road 
Studios’ 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
http://xmlns.com/foaf/0.1/ 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
CONSTRUCT 
{ 
?album 
dc:creator 
dbpedia:The_Beatles 
. 
?track 
dc:creator 
dbpedia:The_Beatles 
.} 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
dc:title 
?album_name 
. 
{?album 
dbpedia-­‐ont:recordedIn 
dbpedia:Abbey_Road_Studios 
.} 
UNION 
{?album 
dbpedia-­‐ont:recordedIn 
dbpedia:Trident_Studios 
.}} 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
31 
Query: 
or 
‘Trident 
Studios’
Query 
Form: 
CONSTRUCT 
(5) 
Filter 
expressions 
• Different 
types 
of 
filters 
and 
func6ons 
may 
be 
used 
Filter: 
Regular 
expressions 
over 
strings 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
CONSTRUCT 
{?album 
dc:creator 
dbpedia:The_Beatles 
.} 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
dc:title 
?album_name 
; 
FILTER 
(REGEX(?album_name, 
".*love.*", 
i)) 
} 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
32 
Query: 
Create 
the 
dc:creator 
descripCons 
of 
the 
albums 
recorded 
by 
‘The 
Beatles’ 
whose 
Ctle 
contains 
the 
word 
‘love 
.
Query 
Form: 
CONSTRUCT 
(6) 
Type 
of 
func+on 
Func+on 
Result 
type 
Func6onal 
Forms 
bound 
IF 
COALESCE 
NOT 
EXISTS, 
EXISTS 
or, 
and 
RDFTerm-­‐equal 
(=), 
sameTerm 
IN, 
NOT 
IN 
xsd:boolean 
rdfTerm 
rdfTerm 
xsd:boolean 
xsd:boolean 
xsd:boolean 
boolean 
Func6ons 
on 
RDF 
Terms 
isIRI, 
isBlank, 
isLiteral, 
isNumeric 
str, 
lang, 
datatype 
IRI 
BNODE 
xsd:boolean 
simple 
literal 
iri 
iri 
blank 
node 
Func6ons 
on 
Numerics 
ABS, 
ROUND, 
CEIL, 
FLOOR 
RAND 
numeric 
xsd:double 
Filter 
expressions 
Source:hp://www.w3.org/TR/sparql11-­‐query/#SparqlOps 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
33
Query 
Form: 
CONSTRUCT 
(7) 
Type 
of 
func+on 
Func+on 
Result 
type 
Func6ons 
on 
Strings 
STRLEN 
SUBSTR, 
UCASE, 
LCASE 
STRSTARTS, 
STRENDS, 
CONTAINS 
STRBEFORE, 
STRAFTER 
ENCODE_FOR_URI 
CONCAT 
langMatches 
REGEX 
REPLACE 
xsd:integer 
string 
literal 
xsd:boolean 
literal 
simple 
literal 
string 
literal 
xsd:boolean 
xsd:boolean 
string 
literal 
Func6ons 
on 
Dates 
and 
Times 
now 
year, 
month, 
day, 
hours, 
minutes 
seconds 
6mezone 
tz 
xsd:dateTime 
xsd:integer 
xsd:decimal 
xsd:dayTimeDura6on 
simple 
literal 
Filter 
expressions 
Source:hp://www.w3.org/TR/sparql11-­‐query/#SparqlOps 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
34
Query 
Form: 
CONSTRUCT 
(8) 
Op+onal 
Graph 
PaNern 
• OPTIONAL 
clause 
encloses 
the 
op6onal 
parts 
• If 
variables 
in 
the 
construct 
clause 
are 
not 
bound 
in 
the 
op6onal, 
the 
triple 
paerns 
with 
these 
variables 
are 
not 
generated 
Create 
the 
dc:creator 
and 
dc:depicts 
descripQuery: 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
PREFIX 
dbpedia-­‐owl: 
<http://dbpedia.org/ontology/> 
CONSTRUCT 
{ 
?album 
dc:creator 
?artist 
. 
?picture 
dc:depicts 
?artist 
. 
} 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
35 
WHERE 
{ 
?artist 
foaf:made 
?album 
. 
OPTIONAL 
{?artist 
foaf:depiction 
?picture 
.}} 
Cons 
of 
arCsts.
Query 
Form: 
CONSTRUCT 
(9) 
Op+onal 
Graph 
PaNern 
• Can 
test 
if 
variables 
are 
bound 
in 
filter 
expressions 
• Solu6ons 
that 
meet 
the 
OPTIONAL 
clause 
can 
be 
filtered 
out 
by 
using 
the 
logical 
filter 
NOT 
(!) 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
PREFIX 
dbpedia-­‐owl: 
<http://dbpedia.org/ontology/> 
CONSTRUCT 
{ 
?album 
dc:creator 
?artist 
. 
} 
WHERE 
{ 
?artist 
foaf:made 
?album 
. 
OPTIONAL 
{?artist 
dbpedia-­‐owl:deathPlace 
?place_of_death 
.} 
FILTER 
(!BOUND(?place_of_death)) 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
36 
} 
Create 
the 
dc:creator 
descripCons 
of 
those 
arCsts 
who 
are 
not 
dead. 
Query: 
NOT 
EXISTS 
{?artist 
dbpedia-­‐owl:deathPlace 
?place_of_death 
.}
Query 
Form: 
CONSTRUCT 
(10) 
Assigning 
Variables 
• The 
value 
of 
an 
expression 
can 
be 
added 
to 
a 
solu6on 
mapping 
by 
binding 
a 
new 
variable 
(which 
can 
be 
further 
used 
and 
returned) 
• The 
BIND 
form 
allows 
to 
assign 
a 
value 
to 
a 
variable 
from 
a 
BGP 
Calculate 
the 
duraCon 
of 
the 
tracks 
from 
ms 
to 
s, 
and 
store 
the 
value 
using 
the 
dbpedia-­‐ont:runCme 
property 
. 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
PREFIX 
dbpedia-­‐ont: 
<http://dbpedia.org/ontology/> 
CONSTRUCT 
{ 
?track 
dbpedia-­‐ont:runtime 
?secs 
.} 
WHERE 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
mo:track 
?track 
. 
?track 
mo:duration 
?duration 
. 
BIND((?duration/1000) 
AS 
?secs) 
.} 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
37 
Query:
Query 
Form: 
CONSTRUCT 
(11) 
Sub-­‐queries 
and 
Aggregate 
Values 
• To 
combine 
the 
CONSTRUCT 
query 
form 
with 
aggregate 
values, 
a 
sub-­‐query 
should 
be 
created 
inside 
the 
WHERE 
clause 
Materialize 
the 
duraCon 
of 
the 
albums 
recorded 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
PREFIX 
mo: 
<http://purl.org/ontology/mo/> 
CONSTRUCT 
{?album 
music-­‐ont:duration 
?album_duration 
.} 
WHERE 
{ 
SELECT 
?album 
(SUM(?track_duration) 
AS 
?album_duration) 
{ 
dbpedia:The_Beatles 
foaf:made 
?album 
. 
?album 
mo:track 
?track 
. 
?track 
mo:duration 
?track_duration 
. 
} 
GROUP 
BY 
?album 
HAVING 
(SUM(?track_duration) 
> 
3600000)} 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
38 
Query: 
by 
‘The 
Beatles’.
UPDATING 
LINKED 
DATA 
WITH 
SPARQL 
1.1 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
39
Data 
Management 
SPARQL 
1.1 
provides 
data 
update 
opera6ons: 
• INSERT 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
40 
data: 
adds 
some 
triples, 
given 
inline 
in 
the 
request, 
into 
a 
graph 
• DELETE 
data: 
removes 
some 
triples, 
given 
inline 
in 
the 
request, 
if 
the 
respec6ve 
graphs 
contains 
those 
• DELETE/INSERT 
data: 
uses 
in 
parallel 
INSERT 
and 
DELETE 
CH 
1 
CH 
1
Data 
Management 
(2) 
Insert 
the 
following 
albums 
recorded 
by 
The 
Beatles 
into 
the 
graph 
http://musicbrainz.org/20130209-­‐004702 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
41 
INSERT 
data 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
INSERT 
DATA 
{ 
GRAPH 
{ 
<http://musicbrainz.org/20130302> 
<http://musicbrainz.org/artist/b10bbbfc-­‐cf9e-­‐42e0-­‐be17-­‐e2c3e1d2600d> 
foaf:made 
<http://musicbrainz.org/release/3a685770-­‐7326-­‐34fc-­‐9f18-­‐e5f5626f3dc5> 
, 
< 
http://musicbrainz.org/release/cb6f8798-­‐d51e-­‐4fa5-­‐a4d1-­‐2c0602bfe1b6 
> 
. 
<http://musicbrainz.org/release/3a685770-­‐7326-­‐34fc-­‐9f18-­‐e5f5626f3dc5> 
dc:title 
"Please 
Please 
Me". 
< 
http://musicbrainz.org/release/cb6f8798-­‐d51e-­‐4fa5-­‐a4d1-­‐2c0602bfe1b6 
> 
dc:title 
"Something 
New". 
} 
} 
CH 
1
Data 
Management 
(3) 
DELETE 
data 
Delete 
all 
the 
information 
about 
the 
album 
Casualities 
of 
The 
Beatles. 
PREFIX 
dc: 
<http://purl.org/dc/elements/1.1/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
DELETE 
{ 
?album 
?predicate 
?object 
. 
} 
WHERE 
{ 
<http://musicbrainz.org/artist/b10bbbfc-­‐cf9e-­‐42e0-­‐be17-­‐e2c3e1d2600d> 
foaf:made 
?album 
. 
?album 
dc:title 
"Casualities". 
?album 
?predicate 
?object 
.} 
CH 
1 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
42
Data 
Management 
(4) 
DELETE/INSERT 
data 
Delete 
the 
status 
of 
‘Peter 
Best’ 
as 
current 
member 
of´The 
Beatles´, 
and 
insert 
his 
status 
as 
former 
member 
of 
the 
band. 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
db-­‐ont: 
<http://dbpedia.org/ontology/> 
PREFIX 
foaf: 
<http://xmlns.com/foaf/0.1/> 
DELETE 
{ 
dbpedia:The_Beatles 
db-­‐ont:currentMember 
?x 
. 
} 
INSERT 
{ 
GRAPH 
<http://musicbrainz.org/20130209-­‐004702> 
{ 
dbpedia:The_Beatles 
db-­‐ont:formerBandMember 
?x 
.} 
} 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
43 
WHERE 
{ 
dbpedia:The_Beatles 
db-­‐ont:currentMember 
?x 
. 
?x 
foaf:name 
"Peter 
Best" 
.}
Graph 
Management 
SPARQL 
1.1 
provides 
graph 
update 
opera6ons: 
• CREATE: 
creates 
an 
empty 
graph 
in 
the 
Graph 
Store 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
44 
• LOAD: 
reads 
the 
content 
of 
a 
document 
into 
a 
graph 
in 
the 
Graph 
Store 
• CLEAR: 
removes 
all 
triples 
in 
one 
or 
more 
graphs 
• DROP: 
removes 
the 
graph 
from 
the 
Graph 
Store 
• Other 
opera+ons: 
COPY, 
MOVE, 
ADD
Graph 
Management 
(2) 
CREATE 
GRAPH 
<http://musicbrainz.org/20130302> 
LOAD 
<http://xmlns.com/foaf/spec/20100809.rdf> 
LOAD 
<http://xmlns.com/foaf/spec/20100809.rdf> 
INTO 
<http://xmlns.com/foaf/0.1/> 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
45 
CREATE 
• Creates 
a 
new 
named 
graph 
• Can 
be 
used 
with 
the 
DEFAULT 
and 
ALL 
keywords 
LOAD 
• An 
RDF 
graph 
can 
be 
loaded 
from 
a 
URL 
• LOAD 
can 
be 
used 
with 
the 
SILENT 
keyword 
Named 
graph
Graph 
Management 
(3) 
CLEAR 
GRAPH 
<http://musicbrainz.org/20130302> 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
46 
CLEAR 
• Removes 
all 
triples 
in 
the 
graph 
(it 
is 
emp6ed 
but 
not 
deleted!) 
• The 
graph(s) 
can 
be 
specified 
with 
the 
following 
keywords: 
DEFAULT, 
NAMED, 
ALL, 
GRAPH 
• Can 
be 
used 
with 
the 
SILENT 
keyword 
DROP 
• The 
given 
graph 
is 
removed 
from 
the 
Graph 
Store, 
including 
its 
content 
• Can 
be 
used 
with 
the 
DEFAULT 
and 
ALL 
keywords 
DROP 
GRAPH 
<http://musicbrainz.org/20130302>
Graph 
Management 
(4) 
SPARQL 
1.1 
provides 
other 
graph 
management 
opera6ons: 
• COPY 
COPY 
GRAPH 
<http://musicbrainz.org/20130302> 
TO 
GRAPH 
<http://musicbrainz.org/20130303> 
MOVE 
GRAPH 
<http://musicbrainz.org/temp> 
TO 
GRAPH 
<http://musicbrainz.org/20130303> 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
47 
… 
TO 
… 
• MOVE 
… 
TO 
… 
• ADD 
… 
TO 
… 
ADD 
GRAPH 
<http://musicbrainz.org/20130302> 
TO 
GRAPH 
<http://musicbrainz.org/20130303>
SPARQL 
PROTOCOL 
FOR 
RDF 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
48
SPARQL 
1.1. 
Protocol 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
49 
• Consists 
of 
two 
opera+ons: 
query 
and 
update 
• An 
opera6on 
defines: 
• The 
HTTP 
method 
(GET 
or 
POST) 
• The 
HTTP 
query 
string 
parameters 
• The 
message 
content 
included 
in 
the 
HTTP 
request 
body 
• The 
message 
content 
included 
in 
the 
HTTP 
response 
body 
SPARQL 
Client 
SPARQL 
Endpoint 
Request 
alt 
[no errors]! 
[else]! 
Success 
Response 
Failure 
Response
Query 
Operation 
XML, 
JSON, 
CSV/TSV 
from 
a 
SELECT 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
50 
• Sends 
a 
SPARQL 
query 
to 
a 
service 
and 
receives 
the 
results 
of 
the 
query 
• The 
response 
is: 
• May 
be 
invoked 
using 
HTTP 
GET 
or 
HTTP 
POST. 
The 
method 
POST 
with 
URL 
encoding 
is 
mostly 
used 
when 
the 
query 
string 
is 
too 
long 
query 
RDF/XML, 
Turtle 
from 
a 
CONSTRUCT 
query
Query 
Operation 
(2) 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
51 
Example: 
SPARQL 
Query: 
PREFIX 
dbpedia: 
<http://dbpedia.org/resource/> 
PREFIX 
dbpedia-­‐ont: 
<http://dbpedia.org/ontology/> 
SELECT 
?album 
WHERE 
{ 
?album 
dbpedia-­‐ont:artist 
dbpedia:The_Beatles 
.} 
LIMIT 
3 
HTTP 
GET 
request: 
Try 
this 
query! 
(Click 
on 
the 
hurl 
icon)
Update 
Operation 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
52 
• Sends 
a 
SPARQL 
update 
request 
to 
a 
service 
• Should 
be 
invoked 
using 
the 
HTTP 
PATCH/POST 
method 
• The 
response 
consists 
of 
a 
HTTP 
response 
status 
code, 
which 
indicates 
success 
or 
failure 
of 
the 
opera6on
REASONING 
OVER 
LINKED 
DATA 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
53
Reasoning 
for 
Linked 
Data 
Integration 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
54 
• Example: 
Integra6on 
of 
the 
MusicBrainz 
data 
set 
and 
the 
DBpedia 
data 
set 
Integra+on 
Data 
set 
Data 
set
Reasoning 
for 
Linked 
Data 
Integration 
mo:b10bbbfc-­‐cf9e-­‐42e0-­‐be17-­‐e2c3e1d2600d 
dbpedia:The_Beatles 
dbpedia-­‐ont:origin 
dbpedia:Liverpool; 
dbpedia-­‐ont:genre 
dbpedia:Rock_music; 
foaf:depiction 
. 
foaf:name 
The 
Beatles; 
mo:member 
mo:ba550d0e-­‐adac-­‐4864-­‐b88b-­‐407cab5e76af; 
mo:member 
mo:4d5447d7-­‐c61c-­‐4120-­‐ba1b-­‐d7f471d385b9; 
mo:member 
mo:42a8f507-­‐8412-­‐4611-­‐854f-­‐926571049fa0; 
mo:member 
mo:300c4c73-­‐33ac-­‐4255-­‐9d57-­‐4e32627f5e13. 
Integra+on 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
55 
Data 
set 
Data 
set 
same
Reasoning 
for 
Linked 
Data 
Integration 
same 
mo:b10bbbfc-­‐cf9e-­‐42e0-­‐be17-­‐e2c3e1d2600d 
dbpedia:The_Beatles 
dbpedia-­‐ont:origin 
dbpedia:Liverpool; 
dbpedia-­‐ont:genre 
dbpedia:Rock_music; 
foaf:depiction 
. 
foaf:name 
The 
Beatles; 
mo:member 
mo:ba550d0e-­‐adac-­‐4864-­‐b88b-­‐407cab5e76af; 
mo:member 
mo:4d5447d7-­‐c61c-­‐4120-­‐ba1b-­‐d7f471d385b9; 
mo:member 
mo:42a8f507-­‐8412-­‐4611-­‐854f-­‐926571049fa0; 
mo:member 
mo:300c4c73-­‐33ac-­‐4255-­‐9d57-­‐4e32627f5e13. 
Result 
set: 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
56 
Query: 
SELECT 
?m 
?g 
WHERE 
{ 
dbpedia:The_Beatles 
dbpedia-­‐ont:genre 
?g; 
mo:member 
?m.} 
?m 
?g 
mo:ba550d0e-­‐adac-­‐4864-­‐ 
b88b-­‐407cab5e76af 
dbpedia:Rock_music 
mo:4d5447d7-­‐c61c-­‐4120-­‐ba1b-­‐ 
d7f471d385b9 
dbpedia:Rock_music 
mo42a8f507-­‐8412-­‐4611-­‐854f-­‐92 
6571049fa0; 
dbpedia:Rock_music 
mo300c4c73-­‐33ac-­‐4255-­‐9d57-­‐4e 
32627f5e13 
dbpedia:Rock_music
SPARQL 
1.1: 
Entailment 
Regimes 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
57 
• SPARQL 
1.0 
was 
defined 
only 
for 
simple 
entailment 
(paern 
matching 
) 
• SPARQL 
1.1 
is 
extended 
with 
entailment 
regimes 
other 
than 
simple 
entailment: 
– RDF 
entailment 
– RDFS 
entailment 
– D-­‐Entailment 
– OWL 
RL 
entailment 
– OWL 
Full 
entailment 
– OWL 
2 
DL, 
EL, 
and 
QL 
entailment 
– RIF 
entailment 
Source: 
hp://www.w3.org/TR/rdf-­‐mt/#RDFSRules
RDFS 
Resource 
Descrip+on 
Framework 
Schema 
Seman6c 
Web 
Stack 
Berners-­‐Lee 
(2006) 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
58 
Taxonomies 
and 
inferences
RDFS 
Entailment 
Regimes 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
59 
• Contains 
13 
entailment 
rules 
denominated 
rdfsi 
for 
inference 
over 
RDFS 
defini6ons*: 
– rdfs:Literal 
(rdfs1, 
rdfs13) 
– rdfs:domain 
(rdfs2), 
rdfs:range 
(rdfs3) 
– rdfs:Resource 
(rdfs4a, 
rdfs4, 
rdfs8) 
– rdfs:subPropertyOf 
(rdfs5, 
rdfs6, 
rdfs7, 
rdfs12) 
– rdfs:Class 
(rdfs8, 
rdfs10) 
– rdfs:subClassOf 
(rdfs9, 
rdfs10, 
rdfs11) 
– rdfs:ContainerMembershipProperty 
(rdfs12) 
– rdfs:Datatype 
(rdfs13) 
* 
Source: 
hp://www.w3.org/TR/rdf-­‐mt/#RDFSRules
rdfs2 
– 
rdfs:domain 
dbpedia: 
The_Beatles 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
60 
dbpedia: 
Paul_McCartney 
SELECT 
?x 
WHERE 
{ 
?x 
a 
mo:MusicGroup.} 
mo:member 
rdfs:domain 
mo:MusicGroup 
. 
?x 
?x 
dbpedia:The_Beatles 
… 
mo:member 
Schema: 
Query: 
Result 
set: 
Result 
set 
with 
inference: 
dbpedia: 
John_Lennon 
dbpedia: 
George_Harrison 
dbpedia: 
Ringo_Starr 
mo:member 
mo:member 
mo:member
rdfs3 
– 
rdfs:range 
dbpedia: 
The_Beatles 
dbpedia-­‐ont: 
bandMember 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
61 
dbpedia: 
Paul_McCartney 
SELECT 
?x 
WHERE 
{ 
?x 
a 
foaf:Agent.} 
mo:member 
rdfs:range 
foaf:Agent 
. 
?x 
?x 
dbpedia:Paul_McCartney 
dbpedia:John_Lennon 
dbpedia:Ringo_Starr 
dbpedia:George_Harrison 
… 
dbpedia-­‐ont: 
bandMember 
Schema: 
Query: 
Result 
set: 
Result 
set 
with 
inference: 
dbpedia: 
John_Lennon 
dbpedia: 
George_Harrison 
dbpedia: 
Ringo_Starr 
dbpedia-­‐ont: 
bandMember 
dbpedia-­‐ont: 
bandMember
rdfs7 
– 
rdfs:subPropertyOf 
dbpedia: 
Yesterday 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
62 
dbpedia: 
Paul_McCartney 
SELECT 
?x 
WHERE 
{ 
dbpedia:Yesterday 
mo:performer 
?x.} 
mo:singer 
rdfs:subPropertyOf 
mo:performer 
. 
?x 
dbpedia:John_Lennon 
dbpedia:Ringo_Starr 
dbpedia:George_Harrison 
?x 
dbpedia:John_Lennon 
dbpedia:Ringo_Starr 
dbpedia:George_Harrison 
dbpedia:Paul_McCartney 
mo:singer 
Schema: 
Query: 
Result 
set: 
Result 
set 
with 
inference: 
dbpedia: 
John_Lennon 
dbpedia: 
George_Harrison 
dbpedia: 
Ringo_Starr 
mo:performer 
mo:performer 
mo:performer 
mo:performer
rdfs9 
– 
rdfs:subClassOf 
mo: 
MusicAr6st 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
63 
dbpedia: 
The_Beatles 
SELECT 
?x 
WHERE 
{ 
?x 
a 
mo:MusicArtist.} 
rdf:type 
mo:MusicGroup 
rdfs:subClassOf 
mo:MusicArtist 
. 
?x 
?x 
dbpedia:The_Beatles 
… 
Schema: 
Query: 
Result 
set: 
Result 
set 
with 
inference: 
rdf:type 
mo: 
MusicGroup
Inference 
from 
Schema 
mo:MusicGroup 
rdfs:subClassOf 
mo:MusicArtist 
. 
mo:MusicGroup 
a 
rdfs:Class 
. 
mo:MusicArtist 
a 
rdfs:Class 
. 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
64 
• Knowledge 
encoded 
in 
the 
schema 
leads 
to 
infer 
new 
facts 
Schema: 
Inferred 
facts: 
• This 
is 
also 
captured 
in 
the 
set 
of 
axioma+c 
triples, 
which 
provide 
basic 
meaning 
for 
all 
the 
vocabulary 
terms 
rdfs:subClassOf 
rdfs:domain 
rdfs:Class 
. 
rdfs:subClassOf 
rdfs:range 
rdfs:Class 
.
RDFS: 
Lack 
of 
Consistency 
Check 
rdfs2 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
65 
• It 
is 
possible 
to 
infer 
facts 
that 
seem 
incorrect 
facts, 
but 
RDFS 
cannot 
prevent 
this: 
Schema: 
mo:member 
rdfs:domain 
mo:MusicGroup 
; 
rdfs:range 
foaf:Agent 
. 
Exis6ng 
:PaulMcCartney 
a 
:SoloMusicArtist 
; 
facts: 
:member 
:TheBeatles 
. 
Inferred 
:PaulMcCartney 
a 
:MusicGroup 
. 
facts: 
No 
contradic+on!: 
The 
mis-­‐modeling 
is 
not 
diagnosed
• We 
might 
wish 
further 
inferences, 
but 
these 
are 
beyond 
the 
entailment 
rules 
implemented 
by 
RDFS 
RDFS: 
Inference 
Limitations 
Cannot 
model 
with 
RDFS 
that 
if 
‘x 
makes 
y’ 
implies 
that 
‘the 
creator 
of 
y 
is 
x’ 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
66 
foaf:knows 
rdfs:domain 
foaf:Person 
; 
rdfs:range 
foaf:Person 
. 
foaf:made 
rdfs:domain 
foaf:Agent 
. 
:PaulMcCartney 
foaf:made 
:Yesterday 
; 
foaf:knows 
:RingoStarr 
. 
:PaulMcCartney 
a 
foaf:Agent 
; 
a 
foaf:Person 
. 
:RingoStarr 
a 
foaf:Person 
. 
Schema: 
Existing 
fact: 
Inferred 
facts: 
:Yesterday 
dc:creator 
:PaulMcCartney. 
:RingoStarr 
foaf:knows 
:PaulMcCartney 
. 
These 
inferences 
require 
OWL! 
NOT 
inferred: 
Cannot 
model 
with 
RDFS 
that 
‘x 
knows 
y’ 
implies 
‘y 
knows 
x’
OWL 
Web 
Ontology 
Language 
Seman6c 
Web 
Stack 
Berners-­‐Lee 
(2006) 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
67 
Ontologies 
and 
inferences
Introduction 
to 
OWL 
More 
restric6ve 
than 
OWL 
DL 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
68 
• Provides 
more 
ontological 
constructs 
and 
avoids 
some 
of 
the 
poten6al 
confusion 
in 
RDFS 
• OWL 
2 
is 
divided 
into 
sub-­‐languages 
denominated 
profiles: 
– OWL 
2 
EL: 
Limited 
to 
basic 
classifica6on, 
but 
with 
polynomial-­‐6me 
reasoning 
– OWL 
2 
QL: 
Designed 
to 
be 
translatable 
to 
rela6onal 
database 
querying 
– OWL 
2 
RL: 
Designed 
to 
be 
efficiently 
implementable 
in 
rule-­‐based 
systems 
• Most 
triple 
stores 
concentrate 
on 
the 
use 
of 
RDFS 
with 
a 
subset 
of 
OWL 
features, 
called 
OWL-­‐Horst 
or 
RDFS++
OWL 
Properties 
OWL 
dis6nguishes 
between 
two 
types 
of 
proper6es: 
• OWL 
ObjectProper+es: 
resources 
as 
values 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
69 
• OWL 
DatatypeProper+es: 
literals 
as 
values 
:plays 
rdf:type 
owl:ObjectProperty; 
rdfs:domain 
:Musician; 
rdfs:range 
:Instrument 
. 
:hasMembers 
rdf:type 
owl:DatatypeProperty; 
rdfs:domain 
:MusicGroup 
rdfs:range 
xsd:int 
.
Property 
Axioms 
SELECT 
?x 
{dbpedia:The_Beatles 
dbpedia-­‐ont:bandMember 
?x.} 
Result 
set 
with 
inference: 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
70 
• Property 
axioms 
include 
those 
from 
RDF 
Schema 
• OWL 
allows 
for 
property 
equivalence. 
Example: 
EquivalentObjectProperties(dbpedia-­‐ont:bandMember 
mo:member) 
≡ 
dbpedia-­‐ont:bandMember 
owl:equivalentProperty 
mo:member. 
dbpedia: 
The_Beatles 
dbpedia: 
John_Lennon 
mo:member 
dbpedia: 
Paul_McCartney 
dbpedia: 
George_Harrison 
dbpedia: 
Ringo_Starr 
mo:member 
mo:member 
mo:member 
Query: 
?x 
Result 
set: 
?x 
dbpedia:Paul_McCartney 
dbpedia:John_Lennon 
dbpedia:Ringo_Starr 
dbpedia:George_Harrison
Property 
Axioms 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
71 
• Property 
axioms 
include 
those 
from 
RDF 
Schema 
• OWL 
allows 
for 
property 
equivalence. 
Example: 
EquivalentObjectProperties(dbpedia-­‐ont:bandMember 
mo:member) 
dbpedia-­‐ont:bandMember 
owl:equivalentProperty 
mo:member. 
• OWL 
allows 
for 
property 
disjointness. 
Example: 
DisjointObjectProperty(dbpedia-­‐ont:length 
mo:duration) 
dbpedia-­‐ont:length 
owl:propertyDisjointWith 
mo:duration. 
• There 
is 
no 
standard 
for 
implemen6ng 
inconsistency 
reports 
under 
SPARQL 
≡ 
≡
Property 
Axioms 
(2) 
OWL 
allows 
the 
defini6on 
of 
property 
characteris6cs 
to 
infer 
new 
facts 
rela6ng 
to 
instances 
and 
their 
proper6es 
• Symmetry 
• Transi6vity 
• Inverse 
• Func6onal 
• Inverse 
Func6onal 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
72
Property 
Axioms: 
Symmetry 
Query: 
SELECT 
?x 
WHERE 
{ 
dbpedia:The_Beatles 
:associatedMusicalArtist 
?x.} 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
73 
dbpedia: 
Plas6c_Ono_ 
Band 
dbpedia: 
The_Beatles 
dbpedia: 
Billy_Preston 
:associatedMusicalArtist 
a 
owl:SymmetricProperty 
. 
?genre 
dbpedia:Plastic_Ono_Band 
?genre 
dbpedia:Plastic_Ono_Band 
dbpedia:Billy_Preston 
:associatedMusicalArtist 
Schema: 
Result 
set: 
Result 
set 
with 
inference: 
:associatedMusicalArtist
Property 
Axioms: 
Transitivity 
:subgenre 
a 
owl:TransitiveProperty 
. 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
74 
:Rock 
:Heavy_ 
metal 
:Black_ 
metal 
:Punk_ 
rock 
SELECT 
?genre 
WHERE 
{ 
:Rock 
:subgenre 
?genre 
.} 
?genre 
:Heavy_metal 
:Punk_rock 
?genre 
:Heavy_metal 
:Punk_rock 
:Black_metal 
:subgenre 
:subgenre 
:subgenre 
:subgenre 
Schema: 
Query: 
Result 
set: 
Result 
set 
with 
inference:
Property 
Axioms: 
Inverse 
Schema: 
mo:member_of 
owl:inverseOf 
mo:member. 
Query: 
SELECT 
?x 
WHERE 
{ 
?x 
mo:member_of 
dbpedia:The_Beatles 
.} 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
75 
?x 
dbpedia: 
John_Lennon 
mo:member_of 
dbpedia:John_Lennon 
dbpedia:George_Harrison 
?x 
dbpedia:John_Lennon 
dbpedia:George_Harrison 
dbpedia:Paul_McCartney 
dbpedia:Ringo_Starr 
Result 
set: 
Result 
set 
with 
inference: 
dbpedia: 
The_Beatles 
dbpedia: 
Paul_McCartney 
dbpedia: 
George_Harrison 
dbpedia: 
Ringo_Starr 
mo:member 
mo:member_of 
mo:member 
mo:member_of 
mo:member_of
Property 
Axioms: 
Functional 
It 
refers 
to 
a 
property 
that 
can 
have 
only 
one 
(unique) 
value 
for 
each 
instance 
Example: 
Every 
ar6st 
primarily 
plays 
only 
one 
musical 
instrument 
r1 
r2 
mo:primary_ 
instrument 
same 
mo:primary_ 
instrument 
mo:primary_instrument 
rdf:type 
owl:FunctionalProperty 
. 
dbpedia:Jimi_Hendrix 
mo:primary_instrument 
dbpedia:Electric_Guitar. 
dbpedia:Jimi_Hendrix 
mo:primary_instrument 
dbpedia:E-­‐Guitar. 
Conclusion 
dbpedia:Electric_Guitar 
owl:sameAs 
dbpedia:E-­‐Guitar 
. 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
76
Property 
Axioms: 
Inverse 
Functional 
It 
is 
useful 
for 
specifying 
unique 
proper6es 
iden6fying 
Example: 
Every 
recording 
has 
a 
unique 
ISRC 
(Interna6onal 
Standard 
Recording 
Code) 
mo:isrc 
rdf:type 
owl:InverseFunctionalProperty 
. 
mo:21047249-­‐7b3f-­‐4651-­‐acca-­‐246669c081fd 
mo:isrc 
"GBAYE6300412" 
. 
dbpedia:She_Loves_You 
mo:isrc 
"GBAYE6300412" 
. 
Conclusion 
mo:21047249-­‐7b3f-­‐4651-­‐acca-­‐246669c081fd 
owl:sameAs 
:dbpedia:She_Loves_You 
. 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
77 
an 
individual 
r2 
mo:isrc 
mo:isrc 
same 
r1
Individual 
Axioms 
OWL 
Individuals 
represent 
instances 
of 
classes. 
They 
are 
related 
to 
their 
class 
by 
the 
rdf:type 
property 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
78 
• We 
can 
state 
that 
two 
individuals 
are 
the 
same 
SameIndividual(<artist/ba550d0e-­‐adac-­‐4864-­‐b88b-­‐407cab5e76af#_> 
dbpedia:PaulMcCartney)s 
≡ 
<artist/ba550d0e-­‐adac-­‐4864-­‐b88b-­‐407cab5e76af#_> 
owl:sameAs 
dbpedia:PaulMcCartney 
. 
• We 
can 
state 
that 
two 
individuals 
are 
different 
DifferentIndividuals(:TheBeatles_band 
:TheBeatles_TVseries) 
≡ 
:TheBeatles_band 
owl:differentFrom 
:TheBeatles_Tvseries 
.
Class 
Axioms 
Axioms 
declare 
general 
statements 
about 
concepts 
which 
are 
used 
in 
logical 
inference 
(reasoning). 
Class 
axioms: 
• Sub-­‐class 
rela6onship 
(from 
RDF 
Schema) 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
79 
• Equivalent 
rela6onship: 
classes 
have 
the 
same 
individuals 
EquivalentClass(:Musician 
:MusicArtist) 
≡ 
:Musician 
owl:equivalentClass 
:MusicArtist 
. 
• Disjointness: 
classes 
have 
no 
shared 
individuals 
DisjointClasses(:SoloMusicArtist 
:MusicGroup) 
≡ 
:SoloMusicArtist 
owl:disjointWith 
:MusicGroup 
.
Class 
Construction 
Ar6st 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
80 
• OWL 
classes 
are 
defined 
by 
the 
OWL 
term 
owl:Class 
• OWL 
classes 
can 
be 
subclassed 
as 
in 
RDFS: 
• OWL 
classes 
may 
be 
combined 
with 
class 
constructs 
to 
build 
new 
classes 
Music 
Ar6st 
:MusicArtist 
rdfs:subClassOf 
:Artist 
.
Class 
Construction 
(2) 
These 
class 
constructs 
are 
available 
in 
OWL, 
not 
in 
RDFS 
The 
class 
of 
female 
music 
ar6sts 
ObjectIntersectionOf(:Female 
:MusicArtist)s 
[a 
owl:Class; 
owl:intersectionOf(:Female 
:MusicArtist)] 
The 
class 
of 
music 
ar6sts 
ObjectUnionOf(:SoloMusicArtist 
:MusicGroup) 
[a 
owl:Class; 
owl:unionOf(:SoloMusicArtist 
:MusicGroup)] 
Everything 
that’s 
not 
instrumental 
music 
ObjectComplementOf(:InstrumentalMusic) 
[a 
owl:Class; 
owl:complementOf(:InstrumentalMusic)] 
Female 
Music 
Ar6st 
Solo 
Group 
Instrumental 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
81 
≡ 
≡ 
≡ 
NOTE: 
Anonymous 
classes!
Naming 
Class 
Constructions 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
82 
• Direct 
naming 
can 
be 
achieved 
via 
owl:equivalentClass 
• This 
construc6on 
provides 
necessary 
and 
sufficient 
condi6ons 
for 
class 
membership 
• Class 
naming 
can 
be 
also 
achieved 
using 
rdfs:subClassOf, 
it 
provides 
a 
necessary 
but 
insufficient 
condi6on 
for 
class 
membership 
Music 
Ar6st 
Solo 
Group 
EquivalentClass(:MusicArtist 
ObjectUnionOf(:SoloMusicArtist 
:MusicGroup)) 
:MusicArtist 
owl:equivalentClass 
[owl:unionOf 
(:SoloMusicArtist 
:MusicGroup)] 
≡
Summary 
In 
this 
chapter 
we 
studied: 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
83 
• Basic 
concepts: 
triple 
paerns, 
graph 
paerns, 
SPARQL 
endpoint 
... 
• SPARQL 
Query: 
• Query 
forms: 
ASK, 
SELECT, 
DESCRIBE, 
CONSTRUCT 
• Query 
paNerns: 
BGP, 
UNION, 
OPTIONAL, 
FILTER 
• Sequence 
modifiers: 
DISTINCT, 
REDUCED, 
ORDER 
BY, 
LIMIT, 
OFFSET 
• SPARQL 
1.1 
Update: 
• Data 
management: 
INSERT, 
DELETE; 
DELETE/INSERT 
• Graph 
management: 
LOAD, 
CLEAR, 
CREATE, 
DROP, 
COPY/MOVE/ADD 
• SPARQL 
Protocol: 
query 
opera6on, 
update 
opera6on 
Querying 
Linked 
Data
Summary 
(2) 
In 
this 
chapter 
we 
studied: 
EUCLID 
-­‐ 
Querying 
Linked 
Data 
84 
• Reasoning 
over 
Linked 
Data: 
• SPARQL 
1.1 
entailment 
regimes 
• RDFS: 
entailment 
regimes, 
lacks 
of 
consistency 
check, 
inference 
limita6ons 
• OWL: 
proper6es, 
property 
axioms 
(symmetry, 
transi6vity, 
inverse, 
func6onal, 
inverse 
func6onal), 
individual 
axioms, 
class 
axioms, 
class 
construc6ons, 
naming 
classes 
… 
Reasoning 
over 
Linked 
Data
For 
exercises, 
quiz 
and 
further 
material 
visit 
our 
website: 
http://www.euclid-­‐project.eu 
EUCLID 
-­‐ 
Providing 
Linked 
Data 
85 
eBook 
@euclid_project 
euclidproject 
euclidproject 
Other 
channels: 
Course
Acknowledgements 
• Alexander 
Mikroyannidis 
• Alice 
Carpen6er 
• Andreas 
Harth 
• Andreas 
Wagner 
• Andriy 
Nikolov 
• Barry 
Norton 
• Daniel 
M. 
Herzig 
• Elena 
Simperl 
• Günter 
Ladwig 
• Inga 
Shamkhalov 
• Jacek 
Kopecky 
• John 
Domingue 
• Juan 
Sequeda 
• Kalina 
Bontcheva 
• Maria 
Maleshkova 
• Maria-­‐Esther 
Vidal 
• Maribel 
Acosta 
• Michael 
Meier 
• Ning 
Li 
• Paul 
Mulholland 
• Peter 
Haase 
• Richard 
Power 
• Steffen 
Stadtmüller 
86 
People 
who 
have 
contributed 
to 
crea6ng 
Euclid 
training 
content:

Contenu connexe

Tendances

SPARQL 1.1 Update (2013-03-05)
SPARQL 1.1 Update (2013-03-05)SPARQL 1.1 Update (2013-03-05)
SPARQL 1.1 Update (2013-03-05)andyseaborne
 
Federated SPARQL Query Processing ISWC2015 Tutorial
Federated SPARQL Query Processing ISWC2015 TutorialFederated SPARQL Query Processing ISWC2015 Tutorial
Federated SPARQL Query Processing ISWC2015 TutorialMuhammad Saleem
 
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIsJosef Petrák
 
Linking the world with Python and Semantics
Linking the world with Python and SemanticsLinking the world with Python and Semantics
Linking the world with Python and SemanticsTatiana Al-Chueyr
 
NoSQL and Triple Stores
NoSQL and Triple StoresNoSQL and Triple Stores
NoSQL and Triple Storesandyseaborne
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...Olaf Hartig
 
Semantic web meetup – sparql tutorial
Semantic web meetup – sparql tutorialSemantic web meetup – sparql tutorial
Semantic web meetup – sparql tutorialAdonisDamian
 
Relational Database to RDF (RDB2RDF)
Relational Database to RDF (RDB2RDF)Relational Database to RDF (RDB2RDF)
Relational Database to RDF (RDB2RDF)EUCLID project
 
An Introduction to SPARQL
An Introduction to SPARQLAn Introduction to SPARQL
An Introduction to SPARQLOlaf Hartig
 
Federated Query Formulation and Processing Through BioFed
Federated Query Formulation and Processing Through BioFedFederated Query Formulation and Processing Through BioFed
Federated Query Formulation and Processing Through BioFedMuhammad Saleem
 
HiBISCuS: Hypergraph-Based Source Selection for SPARQL Endpoint Federation
HiBISCuS: Hypergraph-Based Source Selection for SPARQL Endpoint FederationHiBISCuS: Hypergraph-Based Source Selection for SPARQL Endpoint Federation
HiBISCuS: Hypergraph-Based Source Selection for SPARQL Endpoint FederationMuhammad Saleem
 
Efficient source selection for sparql endpoint federation
Efficient source selection for sparql endpoint federationEfficient source selection for sparql endpoint federation
Efficient source selection for sparql endpoint federationMuhammad Saleem
 
OWL: Yet to arrive on the Web of Data?
OWL: Yet to arrive on the Web of Data?OWL: Yet to arrive on the Web of Data?
OWL: Yet to arrive on the Web of Data?Aidan Hogan
 
SPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeSPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeAdriel Café
 
Data Integration And Visualization
Data Integration And VisualizationData Integration And Visualization
Data Integration And VisualizationIvan Ermilov
 
Mapping Relational Databases to Linked Data
Mapping Relational Databases to Linked DataMapping Relational Databases to Linked Data
Mapping Relational Databases to Linked DataEUCLID project
 

Tendances (20)

SPARQL 1.1 Update (2013-03-05)
SPARQL 1.1 Update (2013-03-05)SPARQL 1.1 Update (2013-03-05)
SPARQL 1.1 Update (2013-03-05)
 
Federated SPARQL Query Processing ISWC2015 Tutorial
Federated SPARQL Query Processing ISWC2015 TutorialFederated SPARQL Query Processing ISWC2015 Tutorial
Federated SPARQL Query Processing ISWC2015 Tutorial
 
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
2011 4IZ440 Semantic Web – RDF, SPARQL, and software APIs
 
Linking the world with Python and Semantics
Linking the world with Python and SemanticsLinking the world with Python and Semantics
Linking the world with Python and Semantics
 
NoSQL and Triple Stores
NoSQL and Triple StoresNoSQL and Triple Stores
NoSQL and Triple Stores
 
Triple Stores
Triple StoresTriple Stores
Triple Stores
 
FOAF
FOAFFOAF
FOAF
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
 
Semantic web meetup – sparql tutorial
Semantic web meetup – sparql tutorialSemantic web meetup – sparql tutorial
Semantic web meetup – sparql tutorial
 
Relational Database to RDF (RDB2RDF)
Relational Database to RDF (RDB2RDF)Relational Database to RDF (RDB2RDF)
Relational Database to RDF (RDB2RDF)
 
An Introduction to SPARQL
An Introduction to SPARQLAn Introduction to SPARQL
An Introduction to SPARQL
 
Federated Query Formulation and Processing Through BioFed
Federated Query Formulation and Processing Through BioFedFederated Query Formulation and Processing Through BioFed
Federated Query Formulation and Processing Through BioFed
 
HiBISCuS: Hypergraph-Based Source Selection for SPARQL Endpoint Federation
HiBISCuS: Hypergraph-Based Source Selection for SPARQL Endpoint FederationHiBISCuS: Hypergraph-Based Source Selection for SPARQL Endpoint Federation
HiBISCuS: Hypergraph-Based Source Selection for SPARQL Endpoint Federation
 
Efficient source selection for sparql endpoint federation
Efficient source selection for sparql endpoint federationEfficient source selection for sparql endpoint federation
Efficient source selection for sparql endpoint federation
 
OWL: Yet to arrive on the Web of Data?
OWL: Yet to arrive on the Web of Data?OWL: Yet to arrive on the Web of Data?
OWL: Yet to arrive on the Web of Data?
 
SPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeSPARQL-DL - Theory & Practice
SPARQL-DL - Theory & Practice
 
Data Integration And Visualization
Data Integration And VisualizationData Integration And Visualization
Data Integration And Visualization
 
Mapping Relational Databases to Linked Data
Mapping Relational Databases to Linked DataMapping Relational Databases to Linked Data
Mapping Relational Databases to Linked Data
 
RDF data model
RDF data modelRDF data model
RDF data model
 
SPARQL Cheat Sheet
SPARQL Cheat SheetSPARQL Cheat Sheet
SPARQL Cheat Sheet
 

En vedette

Fri schreiber key_knowledge engineering
Fri schreiber key_knowledge engineeringFri schreiber key_knowledge engineering
Fri schreiber key_knowledge engineeringeswcsummerschool
 
Mon fundulaki tut_querying linked data
Mon fundulaki tut_querying linked dataMon fundulaki tut_querying linked data
Mon fundulaki tut_querying linked dataeswcsummerschool
 
ESWC SS 2013 - Tuesday Tutorial 1 Maribel Acosta and Barry Norton: Providing ...
ESWC SS 2013 - Tuesday Tutorial 1 Maribel Acosta and Barry Norton: Providing ...ESWC SS 2013 - Tuesday Tutorial 1 Maribel Acosta and Barry Norton: Providing ...
ESWC SS 2013 - Tuesday Tutorial 1 Maribel Acosta and Barry Norton: Providing ...eswcsummerschool
 
Arabic Sentiment Lexicon - ESWC SSchool 14 - Student project
Arabic Sentiment Lexicon - ESWC SSchool 14 - Student projectArabic Sentiment Lexicon - ESWC SSchool 14 - Student project
Arabic Sentiment Lexicon - ESWC SSchool 14 - Student projecteswcsummerschool
 
Syrtaki - ESWC SSchool 14 - Student project
Syrtaki  - ESWC SSchool 14 - Student projectSyrtaki  - ESWC SSchool 14 - Student project
Syrtaki - ESWC SSchool 14 - Student projecteswcsummerschool
 
Semantic Aquarium - ESWC SSchool 14 - Student project
Semantic Aquarium - ESWC SSchool 14 - Student projectSemantic Aquarium - ESWC SSchool 14 - Student project
Semantic Aquarium - ESWC SSchool 14 - Student projecteswcsummerschool
 
ESWC SS 2013 - Thursday Keynote Vassilis Christophides: Preserving linked data
ESWC SS 2013 - Thursday Keynote Vassilis Christophides: Preserving linked dataESWC SS 2013 - Thursday Keynote Vassilis Christophides: Preserving linked data
ESWC SS 2013 - Thursday Keynote Vassilis Christophides: Preserving linked dataeswcsummerschool
 
ESWC SS 2012 - Friday Keynote Marko Grobelnik: Big Data Tutorial
ESWC SS 2012 - Friday Keynote Marko Grobelnik: Big Data TutorialESWC SS 2012 - Friday Keynote Marko Grobelnik: Big Data Tutorial
ESWC SS 2012 - Friday Keynote Marko Grobelnik: Big Data Tutorialeswcsummerschool
 

En vedette (8)

Fri schreiber key_knowledge engineering
Fri schreiber key_knowledge engineeringFri schreiber key_knowledge engineering
Fri schreiber key_knowledge engineering
 
Mon fundulaki tut_querying linked data
Mon fundulaki tut_querying linked dataMon fundulaki tut_querying linked data
Mon fundulaki tut_querying linked data
 
ESWC SS 2013 - Tuesday Tutorial 1 Maribel Acosta and Barry Norton: Providing ...
ESWC SS 2013 - Tuesday Tutorial 1 Maribel Acosta and Barry Norton: Providing ...ESWC SS 2013 - Tuesday Tutorial 1 Maribel Acosta and Barry Norton: Providing ...
ESWC SS 2013 - Tuesday Tutorial 1 Maribel Acosta and Barry Norton: Providing ...
 
Arabic Sentiment Lexicon - ESWC SSchool 14 - Student project
Arabic Sentiment Lexicon - ESWC SSchool 14 - Student projectArabic Sentiment Lexicon - ESWC SSchool 14 - Student project
Arabic Sentiment Lexicon - ESWC SSchool 14 - Student project
 
Syrtaki - ESWC SSchool 14 - Student project
Syrtaki  - ESWC SSchool 14 - Student projectSyrtaki  - ESWC SSchool 14 - Student project
Syrtaki - ESWC SSchool 14 - Student project
 
Semantic Aquarium - ESWC SSchool 14 - Student project
Semantic Aquarium - ESWC SSchool 14 - Student projectSemantic Aquarium - ESWC SSchool 14 - Student project
Semantic Aquarium - ESWC SSchool 14 - Student project
 
ESWC SS 2013 - Thursday Keynote Vassilis Christophides: Preserving linked data
ESWC SS 2013 - Thursday Keynote Vassilis Christophides: Preserving linked dataESWC SS 2013 - Thursday Keynote Vassilis Christophides: Preserving linked data
ESWC SS 2013 - Thursday Keynote Vassilis Christophides: Preserving linked data
 
ESWC SS 2012 - Friday Keynote Marko Grobelnik: Big Data Tutorial
ESWC SS 2012 - Friday Keynote Marko Grobelnik: Big Data TutorialESWC SS 2012 - Friday Keynote Marko Grobelnik: Big Data Tutorial
ESWC SS 2012 - Friday Keynote Marko Grobelnik: Big Data Tutorial
 

Similaire à Mon norton tut_queryinglinkeddata02

balloon Fusion: SPARQL Rewriting Based on Unified Co-Reference Information
balloon Fusion: SPARQL Rewriting Based on  Unified Co-Reference Informationballoon Fusion: SPARQL Rewriting Based on  Unified Co-Reference Information
balloon Fusion: SPARQL Rewriting Based on Unified Co-Reference InformationKai Schlegel
 
ESWC SS 2012 - Monday Tutorial 2 Barry Norton: Introduction to SPARQL
ESWC SS 2012 - Monday Tutorial 2 Barry Norton: Introduction to SPARQLESWC SS 2012 - Monday Tutorial 2 Barry Norton: Introduction to SPARQL
ESWC SS 2012 - Monday Tutorial 2 Barry Norton: Introduction to SPARQLeswcsummerschool
 
Sparql service-description
Sparql service-descriptionSparql service-description
Sparql service-descriptionSTIinnsbruck
 
SPARQL in the Semantic Web
SPARQL in the Semantic WebSPARQL in the Semantic Web
SPARQL in the Semantic WebJan Beeck
 
Graph and RDF databases
Graph and RDF databasesGraph and RDF databases
Graph and RDF databasesNassim Bahri
 
Consuming linked data by machines
Consuming linked data by machinesConsuming linked data by machines
Consuming linked data by machinesPatrick Sinclair
 
Linked Data, Ontologies and Inference
Linked Data, Ontologies and InferenceLinked Data, Ontologies and Inference
Linked Data, Ontologies and InferenceBarry Norton
 
Two graph data models : RDF and Property Graphs
Two graph data models : RDF and Property GraphsTwo graph data models : RDF and Property Graphs
Two graph data models : RDF and Property Graphsandyseaborne
 
2009 0807 Lod Gmod
2009 0807 Lod Gmod2009 0807 Lod Gmod
2009 0807 Lod GmodJun Zhao
 
Data Source API in Spark
Data Source API in SparkData Source API in Spark
Data Source API in SparkDatabricks
 
Sparql a simple knowledge query
Sparql  a simple knowledge querySparql  a simple knowledge query
Sparql a simple knowledge queryStanley Wang
 
Uplift – Generating RDF datasets from non-RDF data with R2RML
Uplift – Generating RDF datasets from non-RDF data with R2RMLUplift – Generating RDF datasets from non-RDF data with R2RML
Uplift – Generating RDF datasets from non-RDF data with R2RMLChristophe Debruyne
 
Presentation at the EMBL-EBI Industry RDF meeting
Presentation at the EMBL-EBI  Industry RDF meetingPresentation at the EMBL-EBI  Industry RDF meeting
Presentation at the EMBL-EBI Industry RDF meetingJohannes Keizer
 
Linked Open Data - Masaryk University in Brno 8.11.2016
Linked Open Data - Masaryk University in Brno 8.11.2016Linked Open Data - Masaryk University in Brno 8.11.2016
Linked Open Data - Masaryk University in Brno 8.11.2016Martin Necasky
 

Similaire à Mon norton tut_queryinglinkeddata02 (20)

Querying Linked Data
Querying Linked DataQuerying Linked Data
Querying Linked Data
 
balloon Fusion: SPARQL Rewriting Based on Unified Co-Reference Information
balloon Fusion: SPARQL Rewriting Based on  Unified Co-Reference Informationballoon Fusion: SPARQL Rewriting Based on  Unified Co-Reference Information
balloon Fusion: SPARQL Rewriting Based on Unified Co-Reference Information
 
ESWC SS 2012 - Monday Tutorial 2 Barry Norton: Introduction to SPARQL
ESWC SS 2012 - Monday Tutorial 2 Barry Norton: Introduction to SPARQLESWC SS 2012 - Monday Tutorial 2 Barry Norton: Introduction to SPARQL
ESWC SS 2012 - Monday Tutorial 2 Barry Norton: Introduction to SPARQL
 
Introduction to SPARQL
Introduction to SPARQLIntroduction to SPARQL
Introduction to SPARQL
 
Introduction to SPARQL
Introduction to SPARQLIntroduction to SPARQL
Introduction to SPARQL
 
Sparql service-description
Sparql service-descriptionSparql service-description
Sparql service-description
 
SPARQL in the Semantic Web
SPARQL in the Semantic WebSPARQL in the Semantic Web
SPARQL in the Semantic Web
 
Graph and RDF databases
Graph and RDF databasesGraph and RDF databases
Graph and RDF databases
 
Consuming linked data by machines
Consuming linked data by machinesConsuming linked data by machines
Consuming linked data by machines
 
Linked Data, Ontologies and Inference
Linked Data, Ontologies and InferenceLinked Data, Ontologies and Inference
Linked Data, Ontologies and Inference
 
Linked Data Fragments
Linked Data FragmentsLinked Data Fragments
Linked Data Fragments
 
Querying Bio2RDF data
Querying Bio2RDF dataQuerying Bio2RDF data
Querying Bio2RDF data
 
Two graph data models : RDF and Property Graphs
Two graph data models : RDF and Property GraphsTwo graph data models : RDF and Property Graphs
Two graph data models : RDF and Property Graphs
 
2009 0807 Lod Gmod
2009 0807 Lod Gmod2009 0807 Lod Gmod
2009 0807 Lod Gmod
 
Data Source API in Spark
Data Source API in SparkData Source API in Spark
Data Source API in Spark
 
Sparql a simple knowledge query
Sparql  a simple knowledge querySparql  a simple knowledge query
Sparql a simple knowledge query
 
Uplift – Generating RDF datasets from non-RDF data with R2RML
Uplift – Generating RDF datasets from non-RDF data with R2RMLUplift – Generating RDF datasets from non-RDF data with R2RML
Uplift – Generating RDF datasets from non-RDF data with R2RML
 
AGROVOC, AGRIS and the CIARD RING, using RDF vocabularies and technologies f...
AGROVOC, AGRIS and the CIARD RING,  using RDF vocabularies and technologies f...AGROVOC, AGRIS and the CIARD RING,  using RDF vocabularies and technologies f...
AGROVOC, AGRIS and the CIARD RING, using RDF vocabularies and technologies f...
 
Presentation at the EMBL-EBI Industry RDF meeting
Presentation at the EMBL-EBI  Industry RDF meetingPresentation at the EMBL-EBI  Industry RDF meeting
Presentation at the EMBL-EBI Industry RDF meeting
 
Linked Open Data - Masaryk University in Brno 8.11.2016
Linked Open Data - Masaryk University in Brno 8.11.2016Linked Open Data - Masaryk University in Brno 8.11.2016
Linked Open Data - Masaryk University in Brno 8.11.2016
 

Plus de eswcsummerschool

Keep fit (a bit) - ESWC SSchool 14 - Student project
Keep fit (a bit)  - ESWC SSchool 14 - Student projectKeep fit (a bit)  - ESWC SSchool 14 - Student project
Keep fit (a bit) - ESWC SSchool 14 - Student projecteswcsummerschool
 
FIT-8BIT An activity music assistant - ESWC SSchool 14 - Student project
FIT-8BIT An activity music assistant - ESWC SSchool 14 - Student projectFIT-8BIT An activity music assistant - ESWC SSchool 14 - Student project
FIT-8BIT An activity music assistant - ESWC SSchool 14 - Student projecteswcsummerschool
 
Personal Tours at the British Museum - ESWC SSchool 14 - Student project
Personal Tours at the British Museum  - ESWC SSchool 14 - Student projectPersonal Tours at the British Museum  - ESWC SSchool 14 - Student project
Personal Tours at the British Museum - ESWC SSchool 14 - Student projecteswcsummerschool
 
Exhibition recommendation using British Museum data and Event Registry - ESWC...
Exhibition recommendation using British Museum data and Event Registry - ESWC...Exhibition recommendation using British Museum data and Event Registry - ESWC...
Exhibition recommendation using British Museum data and Event Registry - ESWC...eswcsummerschool
 
Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...
Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...
Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...eswcsummerschool
 
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014 Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014 eswcsummerschool
 
Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014
Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014
Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014eswcsummerschool
 
Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014
Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014 Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014
Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014 eswcsummerschool
 
Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...
Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...
Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...eswcsummerschool
 
Mon norton tut_publishing01
Mon norton tut_publishing01Mon norton tut_publishing01
Mon norton tut_publishing01eswcsummerschool
 
Mon domingue introduction to the school
Mon domingue introduction to the schoolMon domingue introduction to the school
Mon domingue introduction to the schooleswcsummerschool
 
Mon norton tut_querying cultural heritage data
Mon norton tut_querying cultural heritage dataMon norton tut_querying cultural heritage data
Mon norton tut_querying cultural heritage dataeswcsummerschool
 
Tue acosta hands_on_providinglinkeddata
Tue acosta hands_on_providinglinkeddataTue acosta hands_on_providinglinkeddata
Tue acosta hands_on_providinglinkeddataeswcsummerschool
 
Thu bernstein key_warp_speed
Thu bernstein key_warp_speedThu bernstein key_warp_speed
Thu bernstein key_warp_speedeswcsummerschool
 
Mon domingue key_introduction to semantic
Mon domingue key_introduction to semanticMon domingue key_introduction to semantic
Mon domingue key_introduction to semanticeswcsummerschool
 
Tue acosta tut_providing_linkeddata
Tue acosta tut_providing_linkeddataTue acosta tut_providing_linkeddata
Tue acosta tut_providing_linkeddataeswcsummerschool
 
Wed batsakis tut_challenges of preservations
Wed batsakis tut_challenges of preservationsWed batsakis tut_challenges of preservations
Wed batsakis tut_challenges of preservationseswcsummerschool
 
Wed garcia hands_on_d_bpedia preservation
Wed garcia hands_on_d_bpedia preservationWed garcia hands_on_d_bpedia preservation
Wed garcia hands_on_d_bpedia preservationeswcsummerschool
 
Wed van horik_handson_research data management
Wed van horik_handson_research data managementWed van horik_handson_research data management
Wed van horik_handson_research data managementeswcsummerschool
 
Wed roman tut_open_datapub
Wed roman tut_open_datapubWed roman tut_open_datapub
Wed roman tut_open_datapubeswcsummerschool
 

Plus de eswcsummerschool (20)

Keep fit (a bit) - ESWC SSchool 14 - Student project
Keep fit (a bit)  - ESWC SSchool 14 - Student projectKeep fit (a bit)  - ESWC SSchool 14 - Student project
Keep fit (a bit) - ESWC SSchool 14 - Student project
 
FIT-8BIT An activity music assistant - ESWC SSchool 14 - Student project
FIT-8BIT An activity music assistant - ESWC SSchool 14 - Student projectFIT-8BIT An activity music assistant - ESWC SSchool 14 - Student project
FIT-8BIT An activity music assistant - ESWC SSchool 14 - Student project
 
Personal Tours at the British Museum - ESWC SSchool 14 - Student project
Personal Tours at the British Museum  - ESWC SSchool 14 - Student projectPersonal Tours at the British Museum  - ESWC SSchool 14 - Student project
Personal Tours at the British Museum - ESWC SSchool 14 - Student project
 
Exhibition recommendation using British Museum data and Event Registry - ESWC...
Exhibition recommendation using British Museum data and Event Registry - ESWC...Exhibition recommendation using British Museum data and Event Registry - ESWC...
Exhibition recommendation using British Museum data and Event Registry - ESWC...
 
Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...
Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...
Empowering fishing business using Linked Data - ESWC SSchool 14 - Student pro...
 
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014 Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014
Tutorial: Social Semantic Web and Crowdsourcing - E. Simperl - ESWC SS 2014
 
Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014
Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014
Keynote: Global Media Monitoring - M. Grobelnik - ESWC SS 2014
 
Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014
Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014 Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014
Hands On: Amazon Mechanical Turk - M. Acosta - ESWC SS 2014
 
Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...
Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...
Tutorial: Querying a Marine Data Warehouse Using SPARQL - I. Fundulaki - ESWC...
 
Mon norton tut_publishing01
Mon norton tut_publishing01Mon norton tut_publishing01
Mon norton tut_publishing01
 
Mon domingue introduction to the school
Mon domingue introduction to the schoolMon domingue introduction to the school
Mon domingue introduction to the school
 
Mon norton tut_querying cultural heritage data
Mon norton tut_querying cultural heritage dataMon norton tut_querying cultural heritage data
Mon norton tut_querying cultural heritage data
 
Tue acosta hands_on_providinglinkeddata
Tue acosta hands_on_providinglinkeddataTue acosta hands_on_providinglinkeddata
Tue acosta hands_on_providinglinkeddata
 
Thu bernstein key_warp_speed
Thu bernstein key_warp_speedThu bernstein key_warp_speed
Thu bernstein key_warp_speed
 
Mon domingue key_introduction to semantic
Mon domingue key_introduction to semanticMon domingue key_introduction to semantic
Mon domingue key_introduction to semantic
 
Tue acosta tut_providing_linkeddata
Tue acosta tut_providing_linkeddataTue acosta tut_providing_linkeddata
Tue acosta tut_providing_linkeddata
 
Wed batsakis tut_challenges of preservations
Wed batsakis tut_challenges of preservationsWed batsakis tut_challenges of preservations
Wed batsakis tut_challenges of preservations
 
Wed garcia hands_on_d_bpedia preservation
Wed garcia hands_on_d_bpedia preservationWed garcia hands_on_d_bpedia preservation
Wed garcia hands_on_d_bpedia preservation
 
Wed van horik_handson_research data management
Wed van horik_handson_research data managementWed van horik_handson_research data management
Wed van horik_handson_research data management
 
Wed roman tut_open_datapub
Wed roman tut_open_datapubWed roman tut_open_datapub
Wed roman tut_open_datapub
 

Mon norton tut_queryinglinkeddata02

  • 1. Querying Linked Data Presented by: Barry Norton
  • 2. Motivation: Music! 2 Visualiza6on Module Metadata Physical Wrapper Streaming providers Downloads Access Data acquisi6on LD Wrapper D2R Transf. Musical Content Applica6on Analysis & Mining Module LD Dataset LD Wrapper RDF/ XML Integrated Dataset Vocabulary Interlinking Cleansing Mapping SPARQL Endpoint Publishing RDFa Other content
  • 3. Agenda 1. Introduc+on to SPARQL 2. Querying Linked Data with SPARQL 3. SPARQL Algebra 4. Upda+ng Linked Data with SPARQL 1.1 5. SPARQL Protocol 6. Reasoning over Linked Data EUCLID -­‐ Querying Linked Data 3
  • 4. INTRODUCTION TO SPARQL EUCLID -­‐ Querying Linked Data 4
  • 5. SPARQL Seman6c Web Stack Berners-­‐Lee (2006) * Protocol and RDF Query Language EUCLID -­‐ Querying Linked Data 5 Declara6ve query language
  • 6. SPARQL EUCLID -­‐ Querying Linked Data 6 • SPARQL Query – Declara6ve query language for RDF data – hp://www.w3.org/TR/rdf-­‐sparql-­‐query/ • SPARQL Algebra – Standard for communica6on between SPARQL services and clients – hp://www.w3.org/2001/sw/DataAccess/rq23/rq24-­‐algebra.html • SPARQL Update – Declara6ve manipula6on language for RDF data – hp://www.w3.org/TR/sparql11-­‐update/ • SPARQL Protocol – Standard for communica6on between SPARQL services and clients – hp://www.w3.org/TR/sparql11-­‐protocol/
  • 7. SPARQL Query 1.1 • Aggregates, Subqueries, Nega6on, Expressions in the SELECT clause, Property paths, assignment, short form for CONSTRUCT, expanded set of func6ons and operators EUCLID -­‐ Querying Linked Data 7 • SPARQL 1.0 only allows accessing the data (query) • SPARQL 1.1 introduces: Query extensions Updates • Data management: Insert, Delete, Delete/Insert • Graph management: Create, Load, Clear, Drop, Copy, Move, Add Federa6on extension • Service, values, service variables (informa6ve) CH 5
  • 8. SPARQL Basics dbpedia:The_Beatles foaf:name "The Beatles" . dbpedia:The_Beatles foaf:made ?album. ?album mo:track ?track . ?album ?p ?o . EUCLID -­‐ Querying Linked Data 8 • RDF triple: Basic building block, of the form subject, predicate, object. Example: • RDF triple paNern: Contains one or more variables. Examples: • RDF quad paNern: Contains graph name: URI or variable. Examples: GRAPH <:g> {:s :p :o .} GRAPH ?g {dbpedia:The_Beatles foaf:name ?o.}
  • 9. SPARQL Basics EUCLID -­‐ Querying Linked Data 9 • RDF graph: Set of RDF asser6ons, manipulated as a labeled directed graph. • RDF data set: set of RDF triples. It is comprised of: • One default graph • Zero or more named graphs • SPARQL protocol client: HTTP client that sends requests for SPARQL Protocol opera6ons (queries or updates) • SPARQL protocol service: HTTP server that services requests for SPARQL Protocol opera6ons • SPARQL endpoint: The URI at which a SPARQL Protocol service listens for requests from SPARQL clients
  • 10. QUERYING LINKED DATA WITH SPARQL EUCLID -­‐ Querying Linked Data 10
  • 11. SPARQL Query EUCLID -­‐ Querying Linked Data 11 Main idea: PaNern matching • Queries describe sub-­‐graphs of the queried graph • Graph paNerns are RDF graphs specified in Turtle syntax, which contain variables (prefixed by either “?” or “$”) • Sub-­‐graphs that match the graph paerns yield a result dbpedia: ?album The_Beatles foaf:made
  • 12. SPARQL Query foaf:made foaf:made dc:6tle EUCLID -­‐ Querying Linked Data 12 dbpedia: ?album The_Beatles foaf:made dbpedia: foaf:made The_Beatles <hp:// musicbrainz.org /record/...> <hp:// musicbrainz.org /record/...> Data: Graph paern: Results: "Help!" "Let It Be" dc:6tle dc:6tle <hp:// musicbrainz.org /record/...> "Abbey Road" ?album <hp://musicbrainz.org...> <hp://musicbrainz.org...> <hp://musicbrainz.org...>
  • 13. SPARQL Query foaf:made dc:6tle ?album foaf:made dc:6tle EUCLID -­‐ Querying Linked Data 13 dbpedia: The_Beatles dbpedia: foaf:made The_Beatles <hp:// musicbrainz.org /record/...> <hp:// musicbrainz.org /record/...> Data: Graph paern: Results: "Help!" "Let It Be" dc:6tle dc:6tle <hp:// musicbrainz.org /record/...> "Abbey Road" ?album ?+tle <hp://...> "Help!" <hp://...> "Abbey Road" <hp://...> "Let It Be" ?6tle
  • 14. SPARQL Query ?album foaf:made EUCLID -­‐ Querying Linked Data 14 dbpedia: The_Beatles dbpedia: foaf:made The_Beatles <hp:// musicbrainz.org /record/...> <hp:// musicbrainz.org /track/...> Data: Graph paern: Results: "Help!" "Help!" dc:6tle dc:6tle mo:track a mo:Record mo:Track mo:Record ?album <hp://musicbrainz.org...>
  • 15. SPARQL Query: Components PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX mo: <http://purl.org/ontology/mo/> SELECT ?album FROM <http://musicbrainz.org/20130302> WHERE { dbpedia:The_Beatles foaf:made ?album . ?album a mo:Record ; dc:title ?title EUCLID -­‐ Querying Linked Data 15 } ORDER BY ?title Prologue: • Prefix defini6ons • Subtly different from Turtle syntax -­‐ the final period is not used
  • 16. SPARQL Query: Components PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX mo: <http://purl.org/ontology/mo/> SELECT ?album FROM <http://musicbrainz.org/20130302> WHERE { dbpedia:The_Beatles foaf:made ?album . ?album a mo:Record ; dc:title ?title EUCLID -­‐ Querying Linked Data 16 } ORDER BY ?title Query form: • ASK, SELECT, DESCRIBE or CONSTRUCT • SELECT retrieves variables and their bindings as a table
  • 17. SPARQL Query: Components PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX mo: <http://purl.org/ontology/mo/> SELECT ?album FROM <http://musicbrainz.org/20130302> WHERE { dbpedia:The_Beatles foaf:made ?album . ?album a mo:Record ; dc:title ?title EUCLID -­‐ Querying Linked Data 17 } ORDER BY ?title Data set specifica+on: • This clause is op6onal • FROM or FROM NAMED • Indicates the sources for the data against which to find matches
  • 18. SPARQL Query: Components PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX mo: <http://purl.org/ontology/mo/> SELECT ?album FROM <http://musicbrainz.org/20130302> WHERE { dbpedia:The_Beatles foaf:made ?album . ?album a mo:Record ; dc:title ?title EUCLID -­‐ Querying Linked Data 18 } ORDER BY ?title Query paNern: • Defines paerns to match against the data • Generalises Turtle with variables and keywords – N.B. final period op6onal
  • 19. SPARQL Query: Components PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX mo: <http://purl.org/ontology/mo/> SELECT ?album FROM <http://musicbrainz.org/20130302> WHERE { dbpedia:The_Beatles foaf:made ?album . ?album a mo:Record ; dc:title ?title Solu+on modifier: • Modify the result set • ORDER BY, LIMIT or OFFSET re-­‐organise rows; • GROUP BY combines them EUCLID -­‐ Querying Linked Data 19 } ORDER BY ?title
  • 20. Query Forms SPARQL supports different query forms: • ASK tests whether or not a query paern has a solu6on. Returns yes/no • SELECT returns variables and their bindings EUCLID -­‐ Querying Linked Data 20 directly • CONSTRUCT returns a single RDF graph specified by a graph template • DESCRIBE returns a single RDF graph containing RDF data about resource
  • 21. Query Form: ASK Is Paul McCartney member Results: Results: EUCLID -­‐ Querying Linked Data 21 • Namespaces are added with the ‘PREFIX’ direc6ve • Statement paerns that make up the graph are specified between brackets (“{}”) PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX dbpedia-­‐ont: <http://dbpedia.org/ontology/> PREFIX mo: http://purl.org/ontology/mo/ ASK WHERE { dbpedia:The_Beatles mo:member dbpedia:Paul_McCartney.} Query: of ‘The Beatles’? true Query: Is Elvis Presley member of ‘The Beatles’? false PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX dbpedia-­‐ont: <http://dbpedia.org/ontology/> PREFIX mo: http://purl.org/ontology/mo/ ASK WHERE { dbpedia:The_Beatles mo:member dbpedia:Elvis_Presley.}
  • 22. Query Form: SELECT What albums and tracks did ‘The Beatles’ make? EUCLID -­‐ Querying Linked Data 22 • The solu6on modifier projec+on nominates which components of the matches should be returned • “*” means all components should be returned Query: PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX mo: <http://purl.org/ontology/mo/> SELECT ?album_name ?track_title WHERE { dbpedia:The_Beatles foaf:made ?album . ?album dc:title ?album_name ; mo:track ?track . ?track dc:title ?track_title .}
  • 23. Query Form: SELECT (2) Filter expressions • Different types of filters and func6ons may be used Filter: Comparison and logical operators PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX mo: <http://purl.org/ontology/mo/> SELECT ?album_name ?track_title ?date ?duration WHERE { dbpedia:The_Beatles foaf:made ?album . ?album dc:title ?album_name ; mo:track ?track . ?track dc:title ?track_title ; mo:duration ?duration; FILTER (?duration>300000 && ?duration<400000) } EUCLID -­‐ Querying Linked Data 23 Query: Retrieve the albums and tracks recorded by ‘The Beatles’, where the duraCon of the song is more than 300 secs. and no longer than 400 secs.
  • 24. Query Form: SELECT (3) Elimina+on of duplicates Retrieve the name of the albums recorded by ‘The Beatles’ which have at least Query: two different songs. PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX mo: <http://purl.org/ontology/mo/> SELECT Results: EUCLID -­‐ Querying Linked Data 24 MODIFIER ?album_name WHERE { dbpedia:The_Beatles foaf:made ?album . ?album dc:title ?album_name . mo:track ?track1 . mo:track ?track2 . FILTER (?track1 != ?track2) } ?album “Revolver” “Sessions” “Abbey Road” ?album “Revolver” “Revolver” “Revolver” “Sessions” “Abbey Road” “Abbey Road” DISTINCT REDUCED MODIFIER= MODIFIER=
  • 25. Query Form: SELECT (4) Aggregates • Calculate aggregate values: COUNT, SUM, MIN, MAX, AVG, GROUP_CONCAT and SAMPLE • Built around the GROUP BY operator • Prune at group level (cf. FILTER) using HAVING Retrieve the duraCon of the albums recorded PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX mo: <http://purl.org/ontology/mo/> SELECT ?album (SUM(?track_duration) AS ?album_duration) WHERE { dbpedia:The_Beatles foaf:made ?album . ?album mo:track ?track . ?track mo:duration ?track_duration . } GROUP BY ?album HAVING (SUM(?track_duration) > 3600000) EUCLID -­‐ Querying Linked Data 25 Query: by ‘The Beatles’.
  • 26. Query Form: DESCRIBE Takes the resources within the solu6on, and provides informa6on about them as RDF statements. They can be iden6fied by: • Specifying PREFIX dbpedia: <http://dbpedia.org/resource/> DESCRIBE dbpedia:Paul_McCartney EUCLID -­‐ Querying Linked Data 26 explicit IRIs • Bindings of variables in the WHERE clause PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX mo: <http://purl.org/ontology/mo/> DESCRIBE ?member WHERE { dbpedia:The_Beatles mo:member ?member .}
  • 27. Query Form: CONSTRUCT EUCLID -­‐ Querying Linked Data 27 • CONSTRUCT WHERE: In order to query for a subgraph, without change, it is no longer necessary to repeat the graph paern in the template Example: PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX mo: <http://purl.org/ontology/mo/> PREFIX dc: <http://purl.org/dc/elements/1.1/> CONSTRUCT WHERE { dbpedia:The_Beatles foaf:made ?album . ?album mo:track ?track .}
  • 28. Query Form: CONSTRUCT (2a) dbpedia: foaf:made foaf:made dc:6tle EUCLID -­‐ Querying Linked Data 28 foaf:made The_Beatles <hp:// musicbrainz.org /record/...> <hp:// musicbrainz.org /record/...> Data: Query: Result: "Help!" "Let It Be" dc:6tle dc:6tle <hp:// musicbrainz.org /record/...> "Abbey Road" CONSTRUCT { ?album dc:creator dbpedia:The_Beatles .} WHERE { dbpedia:The_Beatles foaf:made ?album .} dbpedia: The_Beatles <hp:// musicbrainz …> <hp:// musicbrainz …> <hp:// musicbrainz …> dc:creator dc:creator dc:creator
  • 29. Query Form: CONSTRUCT (2b) Create the dc:creator descripCons for albums and their tracks recorded by ‘The Beatles’. EUCLID -­‐ Querying Linked Data 29 • Returns RDF statements created from variable bindings • Template: graph paern with variables from the query paern Query: PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX mo: <http://purl.org/ontology/mo/> PREFIX dc: <http://purl.org/dc/elements/1.1/> CONSTRUCT { ?album dc:creator dbpedia:The_Beatles . ?track dc:creator dbpedia:The_Beatles .} WHERE { dbpedia:The_Beatles foaf:made ?album . ?album mo:track ?track .}
  • 30. Query Form: CONSTRUCT (3) Create the dc:creator descripCons for the 10 most recent albums and their tracks recorded EUCLID -­‐ Querying Linked Data 30 Subsets of results • It is possible to combine the query with solu+on modifiers (ORDER BY, LIMIT, OFFSET) Query: PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX mo: <http://purl.org/ontology/mo/> PREFIX dc: <http://purl.org/dc/elements/1.1/> CONSTRUCT { ?album dc:creator dbpedia:The_Beatles . ?track dc:creator dbpedia:The_Beatles .} WHERE { dbpedia:The_Beatles foaf:made ?album . ?album mo:track ?track ; dc:date ?date . } ORDER BY DESC(?date) LIMIT 10 by ‘The Beatles’.
  • 31. Query Form: CONSTRUCT (4) Union Graph PaNern • Allows the specifica6on of alterna6ves (disjunc6ons) Create the dc:creator descripCons for the albums recorded by ‘The Beatles’ in ‘Abbey Road Studios’ PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: http://xmlns.com/foaf/0.1/ PREFIX dc: <http://purl.org/dc/elements/1.1/> CONSTRUCT { ?album dc:creator dbpedia:The_Beatles . ?track dc:creator dbpedia:The_Beatles .} WHERE { dbpedia:The_Beatles foaf:made ?album . ?album dc:title ?album_name . {?album dbpedia-­‐ont:recordedIn dbpedia:Abbey_Road_Studios .} UNION {?album dbpedia-­‐ont:recordedIn dbpedia:Trident_Studios .}} EUCLID -­‐ Querying Linked Data 31 Query: or ‘Trident Studios’
  • 32. Query Form: CONSTRUCT (5) Filter expressions • Different types of filters and func6ons may be used Filter: Regular expressions over strings PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> CONSTRUCT {?album dc:creator dbpedia:The_Beatles .} WHERE { dbpedia:The_Beatles foaf:made ?album . ?album dc:title ?album_name ; FILTER (REGEX(?album_name, ".*love.*", i)) } EUCLID -­‐ Querying Linked Data 32 Query: Create the dc:creator descripCons of the albums recorded by ‘The Beatles’ whose Ctle contains the word ‘love .
  • 33. Query Form: CONSTRUCT (6) Type of func+on Func+on Result type Func6onal Forms bound IF COALESCE NOT EXISTS, EXISTS or, and RDFTerm-­‐equal (=), sameTerm IN, NOT IN xsd:boolean rdfTerm rdfTerm xsd:boolean xsd:boolean xsd:boolean boolean Func6ons on RDF Terms isIRI, isBlank, isLiteral, isNumeric str, lang, datatype IRI BNODE xsd:boolean simple literal iri iri blank node Func6ons on Numerics ABS, ROUND, CEIL, FLOOR RAND numeric xsd:double Filter expressions Source:hp://www.w3.org/TR/sparql11-­‐query/#SparqlOps EUCLID -­‐ Querying Linked Data 33
  • 34. Query Form: CONSTRUCT (7) Type of func+on Func+on Result type Func6ons on Strings STRLEN SUBSTR, UCASE, LCASE STRSTARTS, STRENDS, CONTAINS STRBEFORE, STRAFTER ENCODE_FOR_URI CONCAT langMatches REGEX REPLACE xsd:integer string literal xsd:boolean literal simple literal string literal xsd:boolean xsd:boolean string literal Func6ons on Dates and Times now year, month, day, hours, minutes seconds 6mezone tz xsd:dateTime xsd:integer xsd:decimal xsd:dayTimeDura6on simple literal Filter expressions Source:hp://www.w3.org/TR/sparql11-­‐query/#SparqlOps EUCLID -­‐ Querying Linked Data 34
  • 35. Query Form: CONSTRUCT (8) Op+onal Graph PaNern • OPTIONAL clause encloses the op6onal parts • If variables in the construct clause are not bound in the op6onal, the triple paerns with these variables are not generated Create the dc:creator and dc:depicts descripQuery: PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX dbpedia-­‐owl: <http://dbpedia.org/ontology/> CONSTRUCT { ?album dc:creator ?artist . ?picture dc:depicts ?artist . } EUCLID -­‐ Querying Linked Data 35 WHERE { ?artist foaf:made ?album . OPTIONAL {?artist foaf:depiction ?picture .}} Cons of arCsts.
  • 36. Query Form: CONSTRUCT (9) Op+onal Graph PaNern • Can test if variables are bound in filter expressions • Solu6ons that meet the OPTIONAL clause can be filtered out by using the logical filter NOT (!) PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX dbpedia-­‐owl: <http://dbpedia.org/ontology/> CONSTRUCT { ?album dc:creator ?artist . } WHERE { ?artist foaf:made ?album . OPTIONAL {?artist dbpedia-­‐owl:deathPlace ?place_of_death .} FILTER (!BOUND(?place_of_death)) EUCLID -­‐ Querying Linked Data 36 } Create the dc:creator descripCons of those arCsts who are not dead. Query: NOT EXISTS {?artist dbpedia-­‐owl:deathPlace ?place_of_death .}
  • 37. Query Form: CONSTRUCT (10) Assigning Variables • The value of an expression can be added to a solu6on mapping by binding a new variable (which can be further used and returned) • The BIND form allows to assign a value to a variable from a BGP Calculate the duraCon of the tracks from ms to s, and store the value using the dbpedia-­‐ont:runCme property . PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX mo: <http://purl.org/ontology/mo/> PREFIX dbpedia-­‐ont: <http://dbpedia.org/ontology/> CONSTRUCT { ?track dbpedia-­‐ont:runtime ?secs .} WHERE { dbpedia:The_Beatles foaf:made ?album . ?album mo:track ?track . ?track mo:duration ?duration . BIND((?duration/1000) AS ?secs) .} EUCLID -­‐ Querying Linked Data 37 Query:
  • 38. Query Form: CONSTRUCT (11) Sub-­‐queries and Aggregate Values • To combine the CONSTRUCT query form with aggregate values, a sub-­‐query should be created inside the WHERE clause Materialize the duraCon of the albums recorded PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX mo: <http://purl.org/ontology/mo/> CONSTRUCT {?album music-­‐ont:duration ?album_duration .} WHERE { SELECT ?album (SUM(?track_duration) AS ?album_duration) { dbpedia:The_Beatles foaf:made ?album . ?album mo:track ?track . ?track mo:duration ?track_duration . } GROUP BY ?album HAVING (SUM(?track_duration) > 3600000)} EUCLID -­‐ Querying Linked Data 38 Query: by ‘The Beatles’.
  • 39. UPDATING LINKED DATA WITH SPARQL 1.1 EUCLID -­‐ Querying Linked Data 39
  • 40. Data Management SPARQL 1.1 provides data update opera6ons: • INSERT EUCLID -­‐ Querying Linked Data 40 data: adds some triples, given inline in the request, into a graph • DELETE data: removes some triples, given inline in the request, if the respec6ve graphs contains those • DELETE/INSERT data: uses in parallel INSERT and DELETE CH 1 CH 1
  • 41. Data Management (2) Insert the following albums recorded by The Beatles into the graph http://musicbrainz.org/20130209-­‐004702 EUCLID -­‐ Querying Linked Data 41 INSERT data PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> INSERT DATA { GRAPH { <http://musicbrainz.org/20130302> <http://musicbrainz.org/artist/b10bbbfc-­‐cf9e-­‐42e0-­‐be17-­‐e2c3e1d2600d> foaf:made <http://musicbrainz.org/release/3a685770-­‐7326-­‐34fc-­‐9f18-­‐e5f5626f3dc5> , < http://musicbrainz.org/release/cb6f8798-­‐d51e-­‐4fa5-­‐a4d1-­‐2c0602bfe1b6 > . <http://musicbrainz.org/release/3a685770-­‐7326-­‐34fc-­‐9f18-­‐e5f5626f3dc5> dc:title "Please Please Me". < http://musicbrainz.org/release/cb6f8798-­‐d51e-­‐4fa5-­‐a4d1-­‐2c0602bfe1b6 > dc:title "Something New". } } CH 1
  • 42. Data Management (3) DELETE data Delete all the information about the album Casualities of The Beatles. PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> DELETE { ?album ?predicate ?object . } WHERE { <http://musicbrainz.org/artist/b10bbbfc-­‐cf9e-­‐42e0-­‐be17-­‐e2c3e1d2600d> foaf:made ?album . ?album dc:title "Casualities". ?album ?predicate ?object .} CH 1 EUCLID -­‐ Querying Linked Data 42
  • 43. Data Management (4) DELETE/INSERT data Delete the status of ‘Peter Best’ as current member of´The Beatles´, and insert his status as former member of the band. PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX db-­‐ont: <http://dbpedia.org/ontology/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> DELETE { dbpedia:The_Beatles db-­‐ont:currentMember ?x . } INSERT { GRAPH <http://musicbrainz.org/20130209-­‐004702> { dbpedia:The_Beatles db-­‐ont:formerBandMember ?x .} } EUCLID -­‐ Querying Linked Data 43 WHERE { dbpedia:The_Beatles db-­‐ont:currentMember ?x . ?x foaf:name "Peter Best" .}
  • 44. Graph Management SPARQL 1.1 provides graph update opera6ons: • CREATE: creates an empty graph in the Graph Store EUCLID -­‐ Querying Linked Data 44 • LOAD: reads the content of a document into a graph in the Graph Store • CLEAR: removes all triples in one or more graphs • DROP: removes the graph from the Graph Store • Other opera+ons: COPY, MOVE, ADD
  • 45. Graph Management (2) CREATE GRAPH <http://musicbrainz.org/20130302> LOAD <http://xmlns.com/foaf/spec/20100809.rdf> LOAD <http://xmlns.com/foaf/spec/20100809.rdf> INTO <http://xmlns.com/foaf/0.1/> EUCLID -­‐ Querying Linked Data 45 CREATE • Creates a new named graph • Can be used with the DEFAULT and ALL keywords LOAD • An RDF graph can be loaded from a URL • LOAD can be used with the SILENT keyword Named graph
  • 46. Graph Management (3) CLEAR GRAPH <http://musicbrainz.org/20130302> EUCLID -­‐ Querying Linked Data 46 CLEAR • Removes all triples in the graph (it is emp6ed but not deleted!) • The graph(s) can be specified with the following keywords: DEFAULT, NAMED, ALL, GRAPH • Can be used with the SILENT keyword DROP • The given graph is removed from the Graph Store, including its content • Can be used with the DEFAULT and ALL keywords DROP GRAPH <http://musicbrainz.org/20130302>
  • 47. Graph Management (4) SPARQL 1.1 provides other graph management opera6ons: • COPY COPY GRAPH <http://musicbrainz.org/20130302> TO GRAPH <http://musicbrainz.org/20130303> MOVE GRAPH <http://musicbrainz.org/temp> TO GRAPH <http://musicbrainz.org/20130303> EUCLID -­‐ Querying Linked Data 47 … TO … • MOVE … TO … • ADD … TO … ADD GRAPH <http://musicbrainz.org/20130302> TO GRAPH <http://musicbrainz.org/20130303>
  • 48. SPARQL PROTOCOL FOR RDF EUCLID -­‐ Querying Linked Data 48
  • 49. SPARQL 1.1. Protocol EUCLID -­‐ Querying Linked Data 49 • Consists of two opera+ons: query and update • An opera6on defines: • The HTTP method (GET or POST) • The HTTP query string parameters • The message content included in the HTTP request body • The message content included in the HTTP response body SPARQL Client SPARQL Endpoint Request alt [no errors]! [else]! Success Response Failure Response
  • 50. Query Operation XML, JSON, CSV/TSV from a SELECT EUCLID -­‐ Querying Linked Data 50 • Sends a SPARQL query to a service and receives the results of the query • The response is: • May be invoked using HTTP GET or HTTP POST. The method POST with URL encoding is mostly used when the query string is too long query RDF/XML, Turtle from a CONSTRUCT query
  • 51. Query Operation (2) EUCLID -­‐ Querying Linked Data 51 Example: SPARQL Query: PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX dbpedia-­‐ont: <http://dbpedia.org/ontology/> SELECT ?album WHERE { ?album dbpedia-­‐ont:artist dbpedia:The_Beatles .} LIMIT 3 HTTP GET request: Try this query! (Click on the hurl icon)
  • 52. Update Operation EUCLID -­‐ Querying Linked Data 52 • Sends a SPARQL update request to a service • Should be invoked using the HTTP PATCH/POST method • The response consists of a HTTP response status code, which indicates success or failure of the opera6on
  • 53. REASONING OVER LINKED DATA EUCLID -­‐ Querying Linked Data 53
  • 54. Reasoning for Linked Data Integration EUCLID -­‐ Querying Linked Data 54 • Example: Integra6on of the MusicBrainz data set and the DBpedia data set Integra+on Data set Data set
  • 55. Reasoning for Linked Data Integration mo:b10bbbfc-­‐cf9e-­‐42e0-­‐be17-­‐e2c3e1d2600d dbpedia:The_Beatles dbpedia-­‐ont:origin dbpedia:Liverpool; dbpedia-­‐ont:genre dbpedia:Rock_music; foaf:depiction . foaf:name The Beatles; mo:member mo:ba550d0e-­‐adac-­‐4864-­‐b88b-­‐407cab5e76af; mo:member mo:4d5447d7-­‐c61c-­‐4120-­‐ba1b-­‐d7f471d385b9; mo:member mo:42a8f507-­‐8412-­‐4611-­‐854f-­‐926571049fa0; mo:member mo:300c4c73-­‐33ac-­‐4255-­‐9d57-­‐4e32627f5e13. Integra+on EUCLID -­‐ Querying Linked Data 55 Data set Data set same
  • 56. Reasoning for Linked Data Integration same mo:b10bbbfc-­‐cf9e-­‐42e0-­‐be17-­‐e2c3e1d2600d dbpedia:The_Beatles dbpedia-­‐ont:origin dbpedia:Liverpool; dbpedia-­‐ont:genre dbpedia:Rock_music; foaf:depiction . foaf:name The Beatles; mo:member mo:ba550d0e-­‐adac-­‐4864-­‐b88b-­‐407cab5e76af; mo:member mo:4d5447d7-­‐c61c-­‐4120-­‐ba1b-­‐d7f471d385b9; mo:member mo:42a8f507-­‐8412-­‐4611-­‐854f-­‐926571049fa0; mo:member mo:300c4c73-­‐33ac-­‐4255-­‐9d57-­‐4e32627f5e13. Result set: EUCLID -­‐ Querying Linked Data 56 Query: SELECT ?m ?g WHERE { dbpedia:The_Beatles dbpedia-­‐ont:genre ?g; mo:member ?m.} ?m ?g mo:ba550d0e-­‐adac-­‐4864-­‐ b88b-­‐407cab5e76af dbpedia:Rock_music mo:4d5447d7-­‐c61c-­‐4120-­‐ba1b-­‐ d7f471d385b9 dbpedia:Rock_music mo42a8f507-­‐8412-­‐4611-­‐854f-­‐92 6571049fa0; dbpedia:Rock_music mo300c4c73-­‐33ac-­‐4255-­‐9d57-­‐4e 32627f5e13 dbpedia:Rock_music
  • 57. SPARQL 1.1: Entailment Regimes EUCLID -­‐ Querying Linked Data 57 • SPARQL 1.0 was defined only for simple entailment (paern matching ) • SPARQL 1.1 is extended with entailment regimes other than simple entailment: – RDF entailment – RDFS entailment – D-­‐Entailment – OWL RL entailment – OWL Full entailment – OWL 2 DL, EL, and QL entailment – RIF entailment Source: hp://www.w3.org/TR/rdf-­‐mt/#RDFSRules
  • 58. RDFS Resource Descrip+on Framework Schema Seman6c Web Stack Berners-­‐Lee (2006) EUCLID -­‐ Querying Linked Data 58 Taxonomies and inferences
  • 59. RDFS Entailment Regimes EUCLID -­‐ Querying Linked Data 59 • Contains 13 entailment rules denominated rdfsi for inference over RDFS defini6ons*: – rdfs:Literal (rdfs1, rdfs13) – rdfs:domain (rdfs2), rdfs:range (rdfs3) – rdfs:Resource (rdfs4a, rdfs4, rdfs8) – rdfs:subPropertyOf (rdfs5, rdfs6, rdfs7, rdfs12) – rdfs:Class (rdfs8, rdfs10) – rdfs:subClassOf (rdfs9, rdfs10, rdfs11) – rdfs:ContainerMembershipProperty (rdfs12) – rdfs:Datatype (rdfs13) * Source: hp://www.w3.org/TR/rdf-­‐mt/#RDFSRules
  • 60. rdfs2 – rdfs:domain dbpedia: The_Beatles EUCLID -­‐ Querying Linked Data 60 dbpedia: Paul_McCartney SELECT ?x WHERE { ?x a mo:MusicGroup.} mo:member rdfs:domain mo:MusicGroup . ?x ?x dbpedia:The_Beatles … mo:member Schema: Query: Result set: Result set with inference: dbpedia: John_Lennon dbpedia: George_Harrison dbpedia: Ringo_Starr mo:member mo:member mo:member
  • 61. rdfs3 – rdfs:range dbpedia: The_Beatles dbpedia-­‐ont: bandMember EUCLID -­‐ Querying Linked Data 61 dbpedia: Paul_McCartney SELECT ?x WHERE { ?x a foaf:Agent.} mo:member rdfs:range foaf:Agent . ?x ?x dbpedia:Paul_McCartney dbpedia:John_Lennon dbpedia:Ringo_Starr dbpedia:George_Harrison … dbpedia-­‐ont: bandMember Schema: Query: Result set: Result set with inference: dbpedia: John_Lennon dbpedia: George_Harrison dbpedia: Ringo_Starr dbpedia-­‐ont: bandMember dbpedia-­‐ont: bandMember
  • 62. rdfs7 – rdfs:subPropertyOf dbpedia: Yesterday EUCLID -­‐ Querying Linked Data 62 dbpedia: Paul_McCartney SELECT ?x WHERE { dbpedia:Yesterday mo:performer ?x.} mo:singer rdfs:subPropertyOf mo:performer . ?x dbpedia:John_Lennon dbpedia:Ringo_Starr dbpedia:George_Harrison ?x dbpedia:John_Lennon dbpedia:Ringo_Starr dbpedia:George_Harrison dbpedia:Paul_McCartney mo:singer Schema: Query: Result set: Result set with inference: dbpedia: John_Lennon dbpedia: George_Harrison dbpedia: Ringo_Starr mo:performer mo:performer mo:performer mo:performer
  • 63. rdfs9 – rdfs:subClassOf mo: MusicAr6st EUCLID -­‐ Querying Linked Data 63 dbpedia: The_Beatles SELECT ?x WHERE { ?x a mo:MusicArtist.} rdf:type mo:MusicGroup rdfs:subClassOf mo:MusicArtist . ?x ?x dbpedia:The_Beatles … Schema: Query: Result set: Result set with inference: rdf:type mo: MusicGroup
  • 64. Inference from Schema mo:MusicGroup rdfs:subClassOf mo:MusicArtist . mo:MusicGroup a rdfs:Class . mo:MusicArtist a rdfs:Class . EUCLID -­‐ Querying Linked Data 64 • Knowledge encoded in the schema leads to infer new facts Schema: Inferred facts: • This is also captured in the set of axioma+c triples, which provide basic meaning for all the vocabulary terms rdfs:subClassOf rdfs:domain rdfs:Class . rdfs:subClassOf rdfs:range rdfs:Class .
  • 65. RDFS: Lack of Consistency Check rdfs2 EUCLID -­‐ Querying Linked Data 65 • It is possible to infer facts that seem incorrect facts, but RDFS cannot prevent this: Schema: mo:member rdfs:domain mo:MusicGroup ; rdfs:range foaf:Agent . Exis6ng :PaulMcCartney a :SoloMusicArtist ; facts: :member :TheBeatles . Inferred :PaulMcCartney a :MusicGroup . facts: No contradic+on!: The mis-­‐modeling is not diagnosed
  • 66. • We might wish further inferences, but these are beyond the entailment rules implemented by RDFS RDFS: Inference Limitations Cannot model with RDFS that if ‘x makes y’ implies that ‘the creator of y is x’ EUCLID -­‐ Querying Linked Data 66 foaf:knows rdfs:domain foaf:Person ; rdfs:range foaf:Person . foaf:made rdfs:domain foaf:Agent . :PaulMcCartney foaf:made :Yesterday ; foaf:knows :RingoStarr . :PaulMcCartney a foaf:Agent ; a foaf:Person . :RingoStarr a foaf:Person . Schema: Existing fact: Inferred facts: :Yesterday dc:creator :PaulMcCartney. :RingoStarr foaf:knows :PaulMcCartney . These inferences require OWL! NOT inferred: Cannot model with RDFS that ‘x knows y’ implies ‘y knows x’
  • 67. OWL Web Ontology Language Seman6c Web Stack Berners-­‐Lee (2006) EUCLID -­‐ Querying Linked Data 67 Ontologies and inferences
  • 68. Introduction to OWL More restric6ve than OWL DL EUCLID -­‐ Querying Linked Data 68 • Provides more ontological constructs and avoids some of the poten6al confusion in RDFS • OWL 2 is divided into sub-­‐languages denominated profiles: – OWL 2 EL: Limited to basic classifica6on, but with polynomial-­‐6me reasoning – OWL 2 QL: Designed to be translatable to rela6onal database querying – OWL 2 RL: Designed to be efficiently implementable in rule-­‐based systems • Most triple stores concentrate on the use of RDFS with a subset of OWL features, called OWL-­‐Horst or RDFS++
  • 69. OWL Properties OWL dis6nguishes between two types of proper6es: • OWL ObjectProper+es: resources as values EUCLID -­‐ Querying Linked Data 69 • OWL DatatypeProper+es: literals as values :plays rdf:type owl:ObjectProperty; rdfs:domain :Musician; rdfs:range :Instrument . :hasMembers rdf:type owl:DatatypeProperty; rdfs:domain :MusicGroup rdfs:range xsd:int .
  • 70. Property Axioms SELECT ?x {dbpedia:The_Beatles dbpedia-­‐ont:bandMember ?x.} Result set with inference: EUCLID -­‐ Querying Linked Data 70 • Property axioms include those from RDF Schema • OWL allows for property equivalence. Example: EquivalentObjectProperties(dbpedia-­‐ont:bandMember mo:member) ≡ dbpedia-­‐ont:bandMember owl:equivalentProperty mo:member. dbpedia: The_Beatles dbpedia: John_Lennon mo:member dbpedia: Paul_McCartney dbpedia: George_Harrison dbpedia: Ringo_Starr mo:member mo:member mo:member Query: ?x Result set: ?x dbpedia:Paul_McCartney dbpedia:John_Lennon dbpedia:Ringo_Starr dbpedia:George_Harrison
  • 71. Property Axioms EUCLID -­‐ Querying Linked Data 71 • Property axioms include those from RDF Schema • OWL allows for property equivalence. Example: EquivalentObjectProperties(dbpedia-­‐ont:bandMember mo:member) dbpedia-­‐ont:bandMember owl:equivalentProperty mo:member. • OWL allows for property disjointness. Example: DisjointObjectProperty(dbpedia-­‐ont:length mo:duration) dbpedia-­‐ont:length owl:propertyDisjointWith mo:duration. • There is no standard for implemen6ng inconsistency reports under SPARQL ≡ ≡
  • 72. Property Axioms (2) OWL allows the defini6on of property characteris6cs to infer new facts rela6ng to instances and their proper6es • Symmetry • Transi6vity • Inverse • Func6onal • Inverse Func6onal EUCLID -­‐ Querying Linked Data 72
  • 73. Property Axioms: Symmetry Query: SELECT ?x WHERE { dbpedia:The_Beatles :associatedMusicalArtist ?x.} EUCLID -­‐ Querying Linked Data 73 dbpedia: Plas6c_Ono_ Band dbpedia: The_Beatles dbpedia: Billy_Preston :associatedMusicalArtist a owl:SymmetricProperty . ?genre dbpedia:Plastic_Ono_Band ?genre dbpedia:Plastic_Ono_Band dbpedia:Billy_Preston :associatedMusicalArtist Schema: Result set: Result set with inference: :associatedMusicalArtist
  • 74. Property Axioms: Transitivity :subgenre a owl:TransitiveProperty . EUCLID -­‐ Querying Linked Data 74 :Rock :Heavy_ metal :Black_ metal :Punk_ rock SELECT ?genre WHERE { :Rock :subgenre ?genre .} ?genre :Heavy_metal :Punk_rock ?genre :Heavy_metal :Punk_rock :Black_metal :subgenre :subgenre :subgenre :subgenre Schema: Query: Result set: Result set with inference:
  • 75. Property Axioms: Inverse Schema: mo:member_of owl:inverseOf mo:member. Query: SELECT ?x WHERE { ?x mo:member_of dbpedia:The_Beatles .} EUCLID -­‐ Querying Linked Data 75 ?x dbpedia: John_Lennon mo:member_of dbpedia:John_Lennon dbpedia:George_Harrison ?x dbpedia:John_Lennon dbpedia:George_Harrison dbpedia:Paul_McCartney dbpedia:Ringo_Starr Result set: Result set with inference: dbpedia: The_Beatles dbpedia: Paul_McCartney dbpedia: George_Harrison dbpedia: Ringo_Starr mo:member mo:member_of mo:member mo:member_of mo:member_of
  • 76. Property Axioms: Functional It refers to a property that can have only one (unique) value for each instance Example: Every ar6st primarily plays only one musical instrument r1 r2 mo:primary_ instrument same mo:primary_ instrument mo:primary_instrument rdf:type owl:FunctionalProperty . dbpedia:Jimi_Hendrix mo:primary_instrument dbpedia:Electric_Guitar. dbpedia:Jimi_Hendrix mo:primary_instrument dbpedia:E-­‐Guitar. Conclusion dbpedia:Electric_Guitar owl:sameAs dbpedia:E-­‐Guitar . EUCLID -­‐ Querying Linked Data 76
  • 77. Property Axioms: Inverse Functional It is useful for specifying unique proper6es iden6fying Example: Every recording has a unique ISRC (Interna6onal Standard Recording Code) mo:isrc rdf:type owl:InverseFunctionalProperty . mo:21047249-­‐7b3f-­‐4651-­‐acca-­‐246669c081fd mo:isrc "GBAYE6300412" . dbpedia:She_Loves_You mo:isrc "GBAYE6300412" . Conclusion mo:21047249-­‐7b3f-­‐4651-­‐acca-­‐246669c081fd owl:sameAs :dbpedia:She_Loves_You . EUCLID -­‐ Querying Linked Data 77 an individual r2 mo:isrc mo:isrc same r1
  • 78. Individual Axioms OWL Individuals represent instances of classes. They are related to their class by the rdf:type property EUCLID -­‐ Querying Linked Data 78 • We can state that two individuals are the same SameIndividual(<artist/ba550d0e-­‐adac-­‐4864-­‐b88b-­‐407cab5e76af#_> dbpedia:PaulMcCartney)s ≡ <artist/ba550d0e-­‐adac-­‐4864-­‐b88b-­‐407cab5e76af#_> owl:sameAs dbpedia:PaulMcCartney . • We can state that two individuals are different DifferentIndividuals(:TheBeatles_band :TheBeatles_TVseries) ≡ :TheBeatles_band owl:differentFrom :TheBeatles_Tvseries .
  • 79. Class Axioms Axioms declare general statements about concepts which are used in logical inference (reasoning). Class axioms: • Sub-­‐class rela6onship (from RDF Schema) EUCLID -­‐ Querying Linked Data 79 • Equivalent rela6onship: classes have the same individuals EquivalentClass(:Musician :MusicArtist) ≡ :Musician owl:equivalentClass :MusicArtist . • Disjointness: classes have no shared individuals DisjointClasses(:SoloMusicArtist :MusicGroup) ≡ :SoloMusicArtist owl:disjointWith :MusicGroup .
  • 80. Class Construction Ar6st EUCLID -­‐ Querying Linked Data 80 • OWL classes are defined by the OWL term owl:Class • OWL classes can be subclassed as in RDFS: • OWL classes may be combined with class constructs to build new classes Music Ar6st :MusicArtist rdfs:subClassOf :Artist .
  • 81. Class Construction (2) These class constructs are available in OWL, not in RDFS The class of female music ar6sts ObjectIntersectionOf(:Female :MusicArtist)s [a owl:Class; owl:intersectionOf(:Female :MusicArtist)] The class of music ar6sts ObjectUnionOf(:SoloMusicArtist :MusicGroup) [a owl:Class; owl:unionOf(:SoloMusicArtist :MusicGroup)] Everything that’s not instrumental music ObjectComplementOf(:InstrumentalMusic) [a owl:Class; owl:complementOf(:InstrumentalMusic)] Female Music Ar6st Solo Group Instrumental EUCLID -­‐ Querying Linked Data 81 ≡ ≡ ≡ NOTE: Anonymous classes!
  • 82. Naming Class Constructions EUCLID -­‐ Querying Linked Data 82 • Direct naming can be achieved via owl:equivalentClass • This construc6on provides necessary and sufficient condi6ons for class membership • Class naming can be also achieved using rdfs:subClassOf, it provides a necessary but insufficient condi6on for class membership Music Ar6st Solo Group EquivalentClass(:MusicArtist ObjectUnionOf(:SoloMusicArtist :MusicGroup)) :MusicArtist owl:equivalentClass [owl:unionOf (:SoloMusicArtist :MusicGroup)] ≡
  • 83. Summary In this chapter we studied: EUCLID -­‐ Querying Linked Data 83 • Basic concepts: triple paerns, graph paerns, SPARQL endpoint ... • SPARQL Query: • Query forms: ASK, SELECT, DESCRIBE, CONSTRUCT • Query paNerns: BGP, UNION, OPTIONAL, FILTER • Sequence modifiers: DISTINCT, REDUCED, ORDER BY, LIMIT, OFFSET • SPARQL 1.1 Update: • Data management: INSERT, DELETE; DELETE/INSERT • Graph management: LOAD, CLEAR, CREATE, DROP, COPY/MOVE/ADD • SPARQL Protocol: query opera6on, update opera6on Querying Linked Data
  • 84. Summary (2) In this chapter we studied: EUCLID -­‐ Querying Linked Data 84 • Reasoning over Linked Data: • SPARQL 1.1 entailment regimes • RDFS: entailment regimes, lacks of consistency check, inference limita6ons • OWL: proper6es, property axioms (symmetry, transi6vity, inverse, func6onal, inverse func6onal), individual axioms, class axioms, class construc6ons, naming classes … Reasoning over Linked Data
  • 85. For exercises, quiz and further material visit our website: http://www.euclid-­‐project.eu EUCLID -­‐ Providing Linked Data 85 eBook @euclid_project euclidproject euclidproject Other channels: Course
  • 86. Acknowledgements • Alexander Mikroyannidis • Alice Carpen6er • Andreas Harth • Andreas Wagner • Andriy Nikolov • Barry Norton • Daniel M. Herzig • Elena Simperl • Günter Ladwig • Inga Shamkhalov • Jacek Kopecky • John Domingue • Juan Sequeda • Kalina Bontcheva • Maria Maleshkova • Maria-­‐Esther Vidal • Maribel Acosta • Michael Meier • Ning Li • Paul Mulholland • Peter Haase • Richard Power • Steffen Stadtmüller 86 People who have contributed to crea6ng Euclid training content: