20041118_Anfragespra.. - Informatik Uni Leipzig

Werbung
Institut für Informatik
Betriebliche Informationssysteme
RDF Query Languages
Oxana Krieger
Yuliya Grinshteyn
Oxana Krieger Yuliya Grinshteyn
1
RDF Anfragesprachen
Übersicht
Institut für Informatik
Betriebliche Informationssysteme
Gliederung
1. SQL/OQL- basierte Sprachen
 RQL
 RDQL: praktische Anwendung von Anfragen
 SeRQL
2. Regelbasierte Sprachen
 Triple
 Versa
 N3
3. Vergleich von Anfragesprachen
Oxana Krieger Yuliya Grinshteyn
2
RDF Anfragesprachen
SQL/OQL- basierte Anfragesprachen
Institut für Informatik
Betriebliche Informationssysteme
RDF Query Language (RQL)
The First Declarative Language for uniformly querying RDF
schemas and resource descriptions (Forth Institute of Computer
Science)
Eigenschaften:
• RQL basiert auf den Graphenmodell von RDF :
- bietet Eigenschaften für die Navigation auf dem Graph
und Auswahl bestimmten Kanten und Knoten für weitere
Abfragen.
• RQL folgt einer SQL / OQL-artigen Syntax :
- select-from-where Anfragen
Oxana Krieger Yuliya Grinshteyn
3
RDF Anfragesprachen
RQL Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
Supports von RQL
• XML Schema Datentypen
- Filterung von wörtlichen Werten
• RDF Schema :
- insbesondere die durch (subClassOf, subPropertyOf)
definierten Relationen von Klassen und Properties
• Quantification iterators
- EXISTS, FORALL
• Aggregatfunktionen (count …)
- Extrahieren der Statistik
• Namespace Abkürzungsmechanismus
- Bsp :using namespace
vCard = <http://www.w3.org/2001/vcard-rdf/3.0#>
Oxana Krieger Yuliya Grinshteyn
4
RDF Anfragesprachen
RQL Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
Variablen
• Variablen werden per Namen identifiziert
• Namen der Variablen : Var1, var_1
• Variablen von Prädikaten fangen mit dem Präfix @ an
- Beispiel: @p
• Variable von schema classes fangen mit dem Präfix $ an
- Beispiel: $s
Operatoren
• Logische Operatoren:
AND, OR, NOT
• Vergleichsoperatoren:
<, <=,= , >= , >, !=
Oxana Krieger Yuliya Grinshteyn
5
RDF Anfragesprachen
RQL Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
Path expressions (Pfad-Ausdrücke)
•
•
•
•
werden in der „from“-Klausel verwendet
- RQL: from {X} @P {Y}
Knoten und Kanten können Variable, URIs du Literalen sein
- RQL: {PAINTER} cult:paints {PAINTING}
Ein Knoten kann leer sein, wenn sein Wert unwichtig ist
- RQL: {PAINTER} cult:paints . cult:technique {TECH}
Pfad-Ausdrücke können aus mehreren Trippeln bestehen:
foo:worksFor
Person
rdf:type
Company
foo:ITCompany
{Person} foo:worksFor {Company}. rdf:type{foo:ITCompany}
Oxana Krieger Yuliya Grinshteyn
6
RDF Anfragesprachen
RQL Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
SELECT – FROM – WHERE Query
• SELECT gibt an, welche Anfragevariablen in welcher Ordnung
im Anfrageergebnis ausgegeben werden sollen
- „*“ werden alle Variablen ausgegeben, Ordnung kann
nicht bestimmt werden
• FROM enthält Pfad-Ausdrücke, definiert Pfade im
RDF-Graphen
• WHERE ist optional, kann zusätzlich boolesche
Einschränkungen auf den Werten in den Pfad-Ausdrücken
(from) enthalten
Beispiel
select X, @P
from {X} @P {Y}
// X - Subjekt
// @P - Prädikat
where Y like "Pablo"
// Y - Objekt
Oxana Krieger Yuliya Grinshteyn
7
RDF Anfragesprachen
RDQL Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
RDF Data Query Language (RDQL)
has been implemented in a number of RDF systems for extracting
information from RDF graphs (W3C)
Eigenschaften:
• definiert einen Mustergraphen , der mit dem RDF-Graphen
verglichen wird und eine Menge von übereinstimmenden
Teilgraphen zurückliefert.
• SQL / OQL-artigen Syntax :
- select-from-where Anfragen
• Status W3C Submission
• Entwicklung von HP
Oxana Krieger Yuliya Grinshteyn
8
RDF Anfragesprachen
RDQL Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
Supports
• Namespace Abkürzungsmechanismus
• model-level access mechanism
Namespaces
• Syntax: “ using … for“ Klausel am Ende der Query
Bsp.: USING info FOR <http://somewhere/peopleInfo#>
Variablen
• Variablen werden per Namen identifiziert
• Namen der Variablen fangen mit dem Präfix „?“ an
Bsp.: ?resource, ?fName
URIs
• URIs werden in „<> “ quotiert
Beispiel:
WHERE (?x, <http://www.w3.org/2001/vcard-rdf/3.0#FN>, ?fName)
Oxana Krieger Yuliya Grinshteyn
9
RDF Anfragesprachen
RDQL Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
Muster Graph
• werden in der „where“-Klausel verwendet
WHERE (?y, <http://www.w3.org/2001/vcard- rdf/3.0#Family>,
"Smith")
• Pfade
?Person
foo:works
For
?Compan
y
rdf:type
foo:ITCompany
(?Person, <foo:worksFor> ,?Company),
(?Company, <rdf:type>, foo:ITCompany)
• Knoten und Kanten können Variable, URIs du Literalen sein
- Bespiel: (?PAINTER, cult:paints ,?PAINTING)
Oxana Krieger Yuliya Grinshteyn
10
RDF Anfragesprachen
RDQL Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
SELECT – FROM – WHERE Query
• SELECT gibt an, welche Anfragevariablen im Anfrageergebnis
ausgegeben werden sollen.
• FROM spezifiziert die zu untersuchenden Modelle anhand von
URIs (kaum benutzt)
• WHERE wird gefolgt von einer Liste konjunktiv verbundener
Triple-Muster. Diese Muster werden mit allen Trippeln, die im
Modell enthalten sind, verglichen und übereinstimmende
Tripel in einer Ergebnismenge gesammelt.
• AND gibt Bedingungen für den Gütigkeitsbereich von Variablen
an.
• USING ermöglicht zur Verbesserung der Übersichtlichkeit der
Anfrage die Einführung von Platzhaltern..
- Beispiel:
SELECT ?resource
WHERE (?resource, <info:age>, ?age) AND ?age >= 24
USING info FOR <http://somewhere/peopleInfo#>
Oxana Krieger Yuliya Grinshteyn
11
RDF Anfragesprachen
Praktische Anwendung RDQL Anfragen
•
SELECT ?x, ?fname
WHERE (?x, <http://www.w3.org/2001/vcard-rdf/3.0#FN>, ?fname)
http://www.w3.org/2001/vcar
d-rdf/3.0#FN
?x
•
Institut für Informatik
Betriebliche Informationssysteme
?fname
SELECT ?givenName
WHERE (?y, <http://www.w3.org/2001/vcard-rdf/3.0#Family>, "Smith"),
(?y, <http://www.w3.org/2001/vcard-rdf/3.0#Given>, ?givenName)
http://www.w3.org/2001/vcardrdf/3.0#Family
Smith
?y
http://www.w3.org/2001/vcardrdf/3.0#Given
•
(alternativ zu 1).
SELECT ?x
?givenName
WHERE (?x, <vCard:FN>, "John Smith")
USING vCard FOR <http://www.w3.org/2001/vcard-rdf/3.0#>
Oxana Krieger Yuliya Grinshteyn
12
RDF Anfragesprachen
Praktische Anwendung RDQL Anfragen
•
SELECT ?resource, ?givenName
WHERE (?resource, <http://www.w3.org/2001/vcard-rdf/3.0#N>, ?z) ,
(?z, <http://www.w3.org/2001/vcard-rdf/3.0#Given>, ?givenName)
?resource
•
Institut für Informatik
Betriebliche Informationssysteme
http://www.w3
.org/
http://www.w3.or
g/2001/
?z
2001/vcardrdf/3.0#N
?givenName
vcardrdf/3.0#Given
SELECT ?resource
WHERE (?resource, <info:age>, ?age)
AND ?age >= 24
USING info FOR <http://somewhere/peopleInfo#>
info:age
?resource
Oxana Krieger Yuliya Grinshteyn
?age
13
RDF Anfragesprachen
Praktische Anwendung RDQL Anfragen
•
Institut für Informatik
Betriebliche Informationssysteme
SELECT ?resource, ?familyName
WHERE (?resource, <info:age>, ?age) ,
(?resource, <vCard:N>, ?y) ,
(?y, <vCard:Family>, ?familyName)
AND ?age >= 24
USING info FOR <http://somewhere/peopleInfo#> ,
vCard FOR <http://www.w3.org/2001/vcard-rdf/3.0#>
?resource
info:age
?age
vCard:
v:Card:N
Oxana Krieger Yuliya Grinshteyn
?y
?familyName
Family
14
RDF Anfragesprachen
SeRQL
Institut für Informatik
Betriebliche Informationssysteme
Sesame RDF Query Language (SeRQL)
A new RDF/RDFS query language that is currently being developed
by Aduna as part of Sesame (SeRQL munuel)
Eigenschaften:
• vereinigt beste Eigenschaften der anderen Anfragen-Sprachen
( RQL, RDQL, N-Triples, N3 ) und fügt ihre eigene hinzu
• Graph Transformation.
• Ausdrucksvolle Pfad-Ausdruck-Syntax.
• Optional Pfad Matching.
• Folgt einer SQL / OQL-artigen Syntax:
- select-from-where Anfragen
Supports:
• RDF Schema Support.
• XML Schema Datentyp Support
Oxana Krieger Yuliya Grinshteyn
15
RDF Anfragesprachen
SeRQL Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
Literalen
• Bestehen aus 3 Teilen : Label, language tag ,Datentyp
• Beispiele:
• "foo"
• "foo"@en
• "<foo/>"^^<http://www.w3.org/1999/02/22-rdf-syntaxns#XMLLiteral>
Variablen
• Variablen werden mit Namen identifiziert
• Zeichen „_“, „.“, „-“ sind erlaubt
• Beispiel für Namen der Variablen:
- Var1, _var2
- unwise.var-name_isnt-it
URI
• URIs werden in „<> “ quotiert
- <http://www.openrdf.org/index.html>
Oxana Krieger Yuliya Grinshteyn
16
RDF Anfragesprachen
SeRQL Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
Path expressions (Pfad-Ausdrücke)
• Knoten und Kanten können Variable, URIs du Literalen sein
Bespiel: {PAINTER} cult:paints {PAINTING}
• Grundlegende Pfad-Ausdrücke:
SeRQL: {Person} foo:worksFor {Company} rdf:type
{foo:ITCompany}
oder {Person} foo:worksFor {Company},
{Company} rdf:type {foo:ITCompany}
Oxana Krieger Yuliya Grinshteyn
17
RDF Anfragesprachen
SeRQL: Pfad-Ausdrücke
Institut für Informatik
Betriebliche Informationssysteme
• Multi-value Knoten
1. Variante:
{subj1} pred1 {obj1, obj2, obj3}
oder
{subj1} pred1 {obj1},
{subj1} pred1 {obj2},
{subj1} pred1 {obj3}
2. Variante:
- {subj1, subj2, subj3} pred1 {obj1}
3. Variante:
{first} pred1 {middle1, middle2} pred2 {last}
Oxana Krieger Yuliya Grinshteyn
18
RDF Anfragesprachen
SeRQL: Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
Path expressions (Pfad-Ausdrücke)
 Zweige
{subj1} pred1 {obj1}; pred2 {obj2}
oder
{subj1} pred1 {obj1},
{subj1} pred2 {obj2}
• optionale Pfad Ausdrücke:
{Person} person:name {Name};
person:age {Age};
[person:email {EmailAddress}]
Oxana Krieger Yuliya Grinshteyn
19
RDF Anfragesprachen
SeRQL Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
Query
 SELECT Query
- gibt Menge der Anfragevariablen in vorgegebener
Ordnung
- select from where Notation
- Bsp: SELECT O, S FROM {S} rdfs:label {O}

CONSTRUCT Query
- gibt Menge Trippeln zurück
- constuct from where Notation
- Bsp.: CONSTRUCT {Parent} foo:hasChild {Child}
FROM {Child} foo:hasParent {Parent}
Oxana Krieger Yuliya Grinshteyn
20
RDF Anfragesprachen
Regelbasierte Sprache TRIPLE
Institut für Informatik
Betriebliche Informationssysteme
TRIPLE
vereinigt in sich eine Anfrage-Sprache und eine Sprache von
Regeln
Supports:
-
Ressourcen & Namespaces, Abkürzungen
Models ( Reihe von RDF Statements)
Reification
Regeln
Transformationen
Sprachenübersicht:
• Syntaktische Erweiterung der Hornlogik
• Syntaktisch ähnlich der F-Logik :
- subject[predikate  object]
Oxana Krieger Yuliya Grinshteyn
(“molecule”).
21
RDF Anfragesprachen
TRIPLE Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
• Statements, triples, molecules:
– subject[predicate  object]
– subject[p1  o1; p2  o2; ...]
– s1[p1  s2[p2  o] ]
• Reification:
– stefan[believes  <Ora[isAuthorOf  homepage]> ]
• Logische Formeln:
– usual logical connectives and quantifiers:     
– alle Variablen werden über  (oder ) eingeführt
Oxana Krieger Yuliya Grinshteyn
22
RDF Anfragesprachen
TRIPLE Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
• Clauses:
– Fakt: s[p1  o1; p2  o2; ...].
– Regel: X s1[p1X]  s2[p2X]  ... .
• Namespace und Resource abbreviations:
– rdf := “http://www.w3.org/1999/02/22-rdf-syntax-ns#”.
– isa := rdf:subClassOf
Oxana Krieger Yuliya Grinshteyn
23
RDF Anfragesprachen
TRIPLE Sprachenübersicht
Institut für Informatik
Betriebliche Informationssysteme
Beispiel: Dublin Core Metadata
dc := “http://purl.org/dc/elements/1.0/”.
dfki := “http://www.dfki.de/”.
namespace abbreviations
block
@dfki:documents {
dfki:d_01_01 [
dc:title  “TRIPLE”;
dc:creator  “Michael Sintek”;
dc:subject  RDF;
dc:subject  triples; ... ].
}
fact
Michael Sintek
TRIPLE
dc:title
dc:creator
dfki:d_01_01
dc:subject
dc:subject
RDF
...
triples
rule
FORALL D <- D[dc:subject
 RDF]@dfki:documents.
Oxana Krieger Yuliya Grinshteyn
Ergebnis: dfki:d_01_01
24
RDF Anfragesprachen
Regelbasierte Anfragesprache Versa
Institut für Informatik
Betriebliche Informationssysteme
Versa is a specialized language for addressing and querying an
RDF model. It allows traversal of arcs, processing of node
contents, and general expression evaluation.
Unterstützt:
•
•
•
•
boolesche Logik;
set – Operationen;
transitive Operationen;
das Stringvergleich;
Datentypen:
• Ressource
spam:eggs
@“http: // rdfinference.org“
• String
• Number
• Boolean
Oxana Krieger Yuliya Grinshteyn
25
RDF Anfragesprachen
Regelbasierte Anfragesprache Versa
Institut für Informatik
Betriebliche Informationssysteme
Versa Query Structure
• Query
• Traversal and filter expressions
- Forward traversal and filter expressions
- Backward traversal expressions
Forward traversal operator
list-expression - list-expression -> boolean-expression
return Liste von
Objekten
Forward filter operator
list-expression - list-expression |-> boolean-expression
return Liste von Subjekten
Oxana Krieger Yuliya Grinshteyn
26
RDF Anfragesprachen
Regelbasierte Anfragesprache Versa
Institut für Informatik
Betriebliche Informationssysteme
An illustration of the workings of a traversal expression
type(t1) – p1->contains(„b“)
type(t1) – p1->contains(„b“)
type(t1) – p1->contains(„b“)
Oxana Krieger Yuliya Grinshteyn
27
RDF Anfragesprachen
Regelbasierte Anfragesprache Versa
Institut für Informatik
Betriebliche Informationssysteme
all() - dc:date -> *
Ergebnis:
<List>
<String>2001-03-04</String> </List>
all() - dc:date -> contains("-03-")
Ergebnis:
<List>
<String>2001-03-04</String> </List>
Oxana Krieger Yuliya Grinshteyn
all() |- dc:date -> contains("-03-")
Ergebnis:
<List> <Resource>
http://rdfinference.org/ril/issue-tracker/i2001030423
</Resource></List>
28
RDF Anfragesprachen
Regelbasierte Anfragesprache Versa
Institut für Informatik
Betriebliche Informationssysteme
Backward traversal expression:
Form : list <- list - boolean
"2001-03-04" <- dc:date - *
<List>
<Resource>
http://rdfinference.org/ril/issue-tracker/i2001030423
</Resource>
</List>
("2001-03-04" <- dc:date - *) - dc:title -> *
<List><String>Unnecessary abbreviation</String></List>
Oxana Krieger Yuliya Grinshteyn
29
RDF Anfragesprachen
Regelbasierte Anfragesprache N3
Institut für Informatik
Betriebliche Informationssysteme
Notation3 (N3) provides a text-based syntax for RDF. Therefore
the data model of N3 conforms to the RDF data model.
Additionally, N3 allows to dene rules, which are denoted using a
special syntax. Such rules, whilst not a query language per se,
can be used for the purpose of querying.
Unterstützt:
• Namespace Abkürzungsmechanismus
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
• Aggregatfunktionen
z.B. count
• Rekursionen
Oxana Krieger Yuliya Grinshteyn
30
RDF Anfragesprachen
Regelbasierte Anfragesprache N3
Institut für Informatik
Betriebliche Informationssysteme
• Namen der Variablen fangen mit dem Präfix „?“
an Bsp.: ?Var
• Statement
subject predicat object
• Mehrere Objekte für ein Subjekt :
sub pred1 obj1, pred2 obj2.
• Am Ende der Regel steht immer „ . “
• Markierung von Blanck node durch die eckigen Klammern
Query - Beispiel:
?y rdfs:label „foo“=>?y a:QueryResalt. – Gibt alle Ressourcen, die
eine Label „foo“ haben, zurück.
Oxana Krieger Yuliya Grinshteyn
31
RDF Anfragesprachen
5. Vergleich von Anfragesprachen
Institut für Informatik
Betriebliche Informationssysteme
RDQL
TRIPLE
SeRQL
Versa
N3
RQL
Path Expressions
+
+
+
+
+
+
Optional Path Expressions
-
-
+
+
°
°
Union
-
+
-
+
+
+
Difference
-
-
-
°
-
+
Quantification
-
°
-
-
-
+
Aggregation
-
-
-
+
+
+
Recursion
-
+
-
+
+
°
Reification
°
+
+
°
-
°
Collection and Containers
°
°
°
°
°
°
Namespace
°
-
+
-
+
+
Language
-
-
+
-
-
°
Lexical Space
+
+
+
+
+
+
Value Space
°
-
+
-
-
+
Oxana Krieger Yuliya Grinshteyn
32
RDF Anfragesprachen
5. Vergleich von Anfragesprachen
Institut für Informatik
Betriebliche Informationssysteme
• Usecase Namespace
z.B. Return all resources whose namespace starts with
„http://www.uni-leipzig.de/“.
• Usecase Language:
<acm:Topic
rdf:about="#ACMTopic/Information_Systems/Database_Management">
<rdfs:label xml:lang="en“>Database Management</rdfs:label>
<rdfs:label xml:lang="de“>Datenbankmanagement</rdfs:label>
<acm:SubTopic
rdf:resource="#ACMTopic/Information_Systems/Database_Management/Lan
guages" />
</acm:Topic>
Return the German label of the topic whose English label is
„Database Management“.
Oxana Krieger Yuliya Grinshteyn
33
RDF Anfragesprachen
Quellen
Institut für Informatik
Betriebliche Informationssysteme
• Sesame RQL : a Tutorial
http://www.openrdf.org/doc/rql-tutorial.html
• Jena Tutorial – RDQL
http://www.hpl.hp.com/semweb/doc/tutorial/RDQL/
• The SeRQL query language(manual)
http://www.openrdf.org/doc/users/ch06.html
• RDF Query using Versa
http://www-106.ibm.com/ developerworks/xml/library/xthink10/index.html#1
• TRIPLE – A Query, Inference and Transformation
Language
http://www.dfki.uni-kl.de/frodo/triple/iswc2002/TripleReport.pdf
• Notation 3
http://www.w3.org/DesignIssues/Notation3.html
• Comparison of Query Languages
http://www.aifb.uni-karlsruhe.de/WBS/pha/rdf-query/
Oxana Krieger Yuliya Grinshteyn
34
Herunterladen