9/28/2011
1
Ngôn ng truy v
n
ng nghĩa SPARQL
Truy vn d liu
Ti quan trng – trong vic s dng d liu
RDF
RDF
Cho phép tng hp d liu trong các kho
cha khác nhau
Cho phép các d liu được la chn có th
được
sdng li
s
dng
li
biu din li
XML và SPARQL
2
Cơ bn v SPARQL
Thc hin các truy vn phc tp trên d
liu RDF phân tán
liu
RDF
phân
tán
W3C recommendation 2008
Ví d: “Tìm cp tài nguyên (a,b), sao cho
tn ti x là cha ca a và b là anh ca x"
Kếtqumong đợi: cp bác
Kết
qu
mong
đợi:
cp
bác
Cú pháp Turtle (N-triples)
3
Cú pháp Turtle
Turtle = Terse RDF Triple Language
Htrnamespace
H
tr
namespace
Cho phép gom nhóm các b ba theo Subject
Ký pháp tt cho tp nhiu phn t
4
9/28/2011
2
Cú pháp SPARQL: Triple
Triple đơn
bj t di t bj t
su
bj
ec
t
pre
di
ca
t
e o
bj
ec
t
.
:john rdf:label "John" .
Triple ghép
subject predicate object ; predicate object …
:john
5
:john
rdf:label "John" ;
rdf:type ex:Person ;
ex:homePage http://example.org/johnspage/ .
prefixes
Cú pháp:
@ fi bb <URI>
@
pre
fi
x a
bb
r:
<URI>
@prefix rdf: http://www.w3.org/1999/02/22-
rdf-syntax-ns#
6
Định danh
URI
htt
p
://www.w3.or
g
/1999/02/22
-
r
df
-
pg
syntax-ns#
Qname (Qualified name)
namespace-abbr? :localname
Literal
"John"
true
true
"Hello"@en-GB
"1.4"^^xsd:decimal
7
Biến
?x ?name ?test
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?mbox WHERE
{ ?x foaf:name "Johnny Lee Outlaw" .
?x foaf:mbox ?mbox }
8
9/28/2011
3
Nút trng
Đơn:
[] hoc:x
[]
hoc
_
:x
:john ex:hasFather [] .
:john ex:hasFather _:x .
làm subject:
[ predicate object ; predicate object ... ] .
[ ex:hasName "John"] .
[ ex:authorOf :lotr ;
ex:hasName "Tolkien"] .
9
Nút trng
_:b c:speed ?v
?x c:speed [ ]
ế
Nút tr
ng tương đương vi mt bi
ế
n
không được th hin trong kết qu truy
vn
10
Nút trng
?x c:speed [ rdf:value ?val ;
c:unit
'
km/h
'
]
c:unit
km/h
]
Tương đương :
?x c:speed :b
<c:Car>
ddf T R
?x
c:speed
_
:b
_:b rdf:value ?val
_:b c:unit 'km/h'
11
<c:spee
d
r
df
:parse
T
ype=
‘R
esource
>
<rdf:value>100</rdf:value>
<c:unit>km/h</c:unit>
</c:speed>
</c:Car>
Tp nhiu đối tượng
( object1… objectn )
:doc1 ex:hasAuthor (:john :mary) .
Tương đương vi
:doc1 ex:hasAuthor
[
rdf:first :
j
ohn;
[j
rdf:rest [ rdf:first :mary;
rdf:rest rdf:nil ]
] .
12
9/28/2011
4
B ba
subject property object
<http://soict.hut.edu.vn/dungct>
foaf:name ?name
?x foaf:name 'Dung'
?x ?p 'Dung'
_:b1 foaf:age 33
13
Cú pháp SPARQL
?x c:firstName ?y .
?ltN ?
?
x c:
l
as
tN
ame
?
z.
֞
?x c:firstName ?y ;
c:lastName ?z
14
Cú pháp SPARQL
?x c:name “Hoang” .
? “Mi h”
?
x c:name
“Mi
n
h”
.
֞
?x c:name “Hoang” , “Minh”
15
Cú pháp SELECT
n định s th hin liên quan đến mt
thuc tín
thuc
tín
PREFIX dc: http://purl.org/dc/elements/1.1/
SELECT ?title
WHERE { <http://example org/book/book1> dc:title ?title } }
cơ chế Prefix – viết tt URI
16
WHERE
{
<http://example
.
org/book/book1>
dc:title
?title
}
}
Các biến tr v
Mu truy vn
9/28/2011
5
SELECT
La chn các biến
Biến: ?x ?title ?name
Cú pháp
SELECT var1, var2,… var3
SELECT ?name
SELECT ?x,?title
17
WHERE
Mu đồ th đối sánh
Tább
T
p c
á
c
b
b
a
{ (subject predicate object .)* }
Subject: URI, Qname, nút trng, Literal,
Biến
Predicate: URI QName nút trng biến
Predicate:
URI
,
QName
,
nút
trng
,
biến
Object: như Subject
18
Mu đồ th (truy vn)
Thông qua kết ni ký hiu Ætruy vn đồ
thcon RDF
th
con
RDF
VD:
Kết qu: tr v các cp p. o tha mãn
SELECT ?p ?o
WHERE {subject ?p ?o}
19
Ví d
SELECT ?cat ?val
WHERE { ?x rdf:value ?val.
?
x cate
g
or
y
?cat
}
gy }
20
[["Total Members",100],["Total
Members",200],…, ["Full
Members",10],…]