A Comparison of RDF Query Language

Download Report

Transcript A Comparison of RDF Query Language

A Comparison of RDF Query
Language
Peter Haase, Jeen Brokstra, Andreas Eberhart, Raphael Volz, Proceedings of
the Third International Semantic Web Conference, Hiroshima, Japan,
2004 ,University of Karlsruhe
DBLab 고명석
Database Laboratory
1
Contents
Introduction
Language Dimensions
Query Language
Usecases
Conclusion
Database Laboratory
2
Introduction
Resource Description Framework
Standard for data representation and exchange on
the Semantic Web
We present a comparison of six representative
query language for RDF
Database Laboratory
3
Language Dimensions
The requirement on a RDF query language
RDF abstract data model
Independent of a concrete serialization syntax
Formal semantic and Inference
Formal semantic provide a dependable basis for reasoning about
the meaning of an RDF graph
Support for XML schema data type
Represent data value in RDF
Free support for making statement about resource
Complete information about any resource is available in the RDF
query
Database Laboratory
4
Query Language
RQL
OQL-like syntax
Use select-from-where filter
Relies on a formal graph model
RQL implemented
ICS_FORTH’s RDF Suite
Sesame system
Select Pub
From {Pub} ns3:year {y}
Where y = “2004”
Using namespace ns3=……
Database Laboratory
5
Query Language
SeRQL
Stand for Sesame RDF Query Language
Syntax is similar to RQL
Supports generalized path expression
SELECT *
FROM {R} <rdfs:label> {L}
WHERE L like "*john*"
Database Laboratory
6
Query Language
TRIPLE
Goal
use various semantics in one inference

Information integration
The language is derived from F-Logic
subject[predicateobject]
FORALL X  ( X[rdfs:label]  “foo”])@default:in
 return all resource which have a label “foo”
Database Laboratory
7
Query Language
RDQL
A simple SQL-style language
The language used by RDF Gateway applications
and agents
Select ?p
Where (?p, <rdfs:label>, “foo”)
Collects all resource with label “foo”
Database Laboratory
8
Query Language
N3
Notation3 provides a text-based syntax for RDF
N3 supported by
Euler
CWN
?y rdfs:label “foo” => ?y a:QueryResult
Collects all resource with label “foo”
Database Laboratory
9
Query Language
Versa
Basic form
ListExpr – ListExpr  BoolExpr
Return a list of all objects of matching triples
All() – rdfs:label  *
Return a list containing all labels
All() |- rdfs:label  eq(“foo”)
Yield all resource having the label “foo”
Database Laboratory
10
Usecases
Simple Data
“-” : no support,
“●” : full support
“○” : partial support
Database Laboratory
11
Usecase Graph
Path Expression
Query
RDQL
Triple
SeRQL
Versa
N3
RQL
Path
●
●
●
●
●
●
Optional Path Expression
RDF provide means to deal with irregularities and
incomplete information
Query
Optional Path
Database Laboratory
RDQL Triple SeRQL Versa
-
-
●
●
N3
RQL
-
○
12
Usecase Graph
What are the name and, if known, the e-mail of the
authors of all available publications?
SELECT PersonName, Email
From {X} <ns3:author>{} <rdfs:member>
{p}<ns3:name>{PersonName};
[<ns3:email> {Email}]
USING NAMESPASE
ns3 = <!…>
<SeRQL>
<RQL>
Database Laboratory
(select PersonName, Email
from {x} s:author {y}.rdfs:member{z}
s:name{PersonName}, {z}s:email{Email}
) union (
select PersonName, Email
from {x} s:author {y}.rdfs:member{z}
s:name{PersonName}
where not, (z in select x
from {x}s:email{e}))
Using namespace
S=…., rdfs=….
13
Usecase Relational
Basic algebraic operation
Union
Return the table of all topic that and(union) the titles
of all publications
Query
RDQL
Triple
SeRQL
Versa
N3
RQL
Union
-
●
-
●
●
●
Database Laboratory
14
Usecase Relational
Basic algebraic operation
Difference
Return the labels of all topic that are not titles of publications
Query
RDQL
Difference
-
Triple SeRQL Versa
-
-
(select title
from s:Topic{T}.rdfs:label{title}
) minus (
select title
from s:publication{P}, s:title{title})
using namespace
S=…., rdfs=….
Database Laboratory
○
N3
RQL
-
●
<RQL>
15
Usecase Relational
Basic algebraic operation
Quantification
Return the person who are authors of all publications
Query
RDQL
Quantification
-
Triple SeRQL Versa
-
-
-
N3
RQL
-
●
SELECT A
FROM Artist{A}
WHERE forall Z in (select W from {A}creates{W})
SUCH THAT exists D in (select X from {X}exhibited{Y})
SUCH THAT D = Z
<RQL>
Database Laboratory
16
Usecase Aggregation and Grouping
Aggregation
Count the number of author of a publication
<N3>
Query
RDQL
Counting
-
Triple SeRQL Versa
-
-
●
N3
RQL
●
●
{?y.sam:author math:memberCount ?result .} =>
{:Query : Result ?result}.
Grouping
None of the compared query language allows to
group values
SQL GROUP BY
Database Laboratory
17
Usecase Recursion
Underlying relationship is transitive nature
Return all subject of topic “information System”,
recursively
Query
RDQL
Recusion
-
Triple SeRQL Versa
●
-
●
N3
RQL
●
-
FROALL O, P, V O[acm:SubTopic  V] 
EXISTS W (O[acm:SubTopic  W]
AND W[acm:SubTopic  V] @default:In.
FORALL Y 
(‘…#ACMTopic/’ :
Information_System[acm:SubTopic  Y]@default:In.
<Triple>
Database Laboratory
18
Usecase Reification
Adds a meta-layer to the graph and allow
treating RDF statements
Query
RDQL
Reification
○
Triple SeRQL Versa
○
●
N3
RQL
-
○
○
<Triple> FORALL V, W, X, Y, Z  (V[W <X[Y Z]>)
(all() |- rdf:subject 
<Versa>
@”../versa-sample.rdf#Paper”) – dc:create  *
Database Laboratory
19
Usecase Collection and Containers
Retrieve the individual and all elements
Return the first author of Publication X
Query
RDQL
Sequence
○
Database Laboratory
Triple SeRQL Versa
○
○
○
N3
RQL
○
○
20
Usecase Namespaces
Integral part of any query language for webbased data
Return all resources whose namespace starts
with http://www.aifb.unikalsrhe.de/.
Query
RDQL
Namespace
○
Triple SeRQL Versa
N3
RQL
●
●
●
-
-
select ?x ?y ?z
where(?x ?y ?z)
<RDQL>
AND ?x= ~ “http://www.aifb.uni-karlsruhe.de/*”
Database Laboratory
21
Usecase Language
XML-style language tagging
RDF literal can optionally carry an xml:lang attribute
Return the German label of the topic whose English label
is “Database Management”
Query
RDQL
Language
-
Triple SeRQL Versa
N3
RQL
●
-
-
-
-
select deLabel
from {} <rdfs:label> {deLabel, enLabel}
where lang(deLabel) = “de” and lang(enLabel) = “en” and
<SeRQL>
label(enLabel) = “Database Management”
Database Laboratory
22
Usecase Literal and Datatypes
RDF supports the type system of XML schema data
type
Return all publication where the page number is the integer value “08”
Query
RDQL
Triple
SeRQL
Versa
N3
RQL
Lexical Space
-
-
●
-
-
-
Return all publication where the page number is the integer value 8
Query
RDQL
Triple
SeRQL
Versa
N3
RQL
Value Space
○
-
●
-
-
-
Database Laboratory
23
Usecase Element
RDF schema vocabulary supports the
entailment if implicit information
Query
RDQL
Triple
SeRQL
Versa
N3
RQL
Entailment
-
○
●
-
○
●
select publications
from ns3:Publication{publication}
using namespace
ns3 = <!http://www.aifb.de/wbs/pha/sample.rdf#>
<RQL>
Database Laboratory
24
Conclusion
Query
RDQL
Triple
SeRQL
Versa
N3
RQL
Path
•
•
•
•
•
•
Optional Path
-
-
•
•
-
◦
Union
-
•
-
•
•
•
Difference
-
-
-
◦
-
•
Quantification
-
-
-
-
-
•
Counting
-
-
-
•
•
•
Recusion
-
•
-
•
•
-
Reification
◦
◦
•
◦
-
◦
Sequence
◦
◦
◦
◦
◦
◦
Namespace
◦
-
•
-
•
•
Language
-
-
•
-
-
-
Lexical Space
•
•
•
•
•
•
Value Space
◦
-
•
-
-
-
Entailment
-
◦
•
-
◦
•
Database Laboratory
25