Download - RDF Query Languages
Oxana Krieger Yuliya Grinshteyn 1
Institut für InformatikBetriebliche Informationssysteme
RDF Query Languages
Oxana KriegerYuliya Grinshteyn
Oxana Krieger Yuliya Grinshteyn 2
RDF AnfragesprachenInstitut für InformatikBetriebliche Informationssysteme
1. SQL/OQL- basierte Sprachen RQL RDQL: praktische Anwendung von Anfragen SeRQL
2. Regelbasierte Sprachen Triple Versa N3
3. Vergleich von Anfragesprachen
Übersicht
Gliederung
Oxana Krieger Yuliya Grinshteyn 3
RDF AnfragesprachenInstitut für InformatikBetriebliche 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
SQL/OQL- basierte Anfragesprachen
Oxana Krieger Yuliya Grinshteyn 4
RDF AnfragesprachenInstitut für InformatikBetriebliche 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#>
RQL Sprachenübersicht
Oxana Krieger Yuliya Grinshteyn 5
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRQL Sprachenübersicht
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 6
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRQL Sprachenübersicht
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:
{Person} foo:worksFor {Company}. rdf:type{foo:ITCompany}
foo:ITCompanyCompanyPersonfoo:worksFor rdf:type
Oxana Krieger Yuliya Grinshteyn 7
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRQL Sprachenübersicht
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
Beispielselect X, @P // X - Subjektfrom {X} @P {Y} // @P - Prädikatwhere Y like "Pablo" // Y - Objekt
Oxana Krieger Yuliya Grinshteyn 8
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRDQL Sprachenübersicht
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 9
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRDQL Sprachenübersicht
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 10
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRDQL Sprachenübersicht
Muster Graph • werden in der „where“-Klausel verwendet WHERE (?y, <http://www.w3.org/2001/vcard- rdf/3.0#Family>, "Smith") •Pfade
(?Person, <foo:worksFor> ,?Company),
(?Company, <rdf:type>, foo:ITCompany) • Knoten und Kanten können Variable, URIs du Literalen sein
- Bespiel: (?PAINTER, cult:paints ,?PAINTING)
?Person ?Company
foo:worksFor
rdf:type foo:ITCompany
Oxana Krieger Yuliya Grinshteyn 11
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRDQL Sprachenübersicht
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 12
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemePraktische Anwendung RDQL Anfragen
• SELECT ?x, ?fname WHERE (?x, <http://www.w3.org/2001/vcard-rdf/3.0#FN>, ?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)
• (alternativ zu 1). SELECT ?x WHERE (?x, <vCard:FN>, "John Smith")
USING vCard FOR <http://www.w3.org/2001/vcard-rdf/3.0#>
?x ?fname
http://www.w3.org/2001/vcard-rdf/3.0#FN
?y
Smith
?givenName
http://www.w3.org/2001/vcard-rdf/3.0#Family
http://www.w3.org/2001/vcard-rdf/3.0#Given
Oxana Krieger Yuliya Grinshteyn 13
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemePraktische 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)
• SELECT ?resource WHERE (?resource, <info:age>, ?age) AND ?age >= 24
USING info FOR <http://somewhere/peopleInfo#>
?resource ?ageinfo:age
?resource ?z ?givenName
http://www.w3.org/
2001/vcard-rdf/3.0#N
http://www.w3.org/2001/
vcard-rdf/3.0#Given
Oxana Krieger Yuliya Grinshteyn 14
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemePraktische Anwendung RDQL Anfragen
• 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 ?age
?y
info:age
v:Card:N ?familyNamevCard:
Family
Oxana Krieger Yuliya Grinshteyn 15
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeSeRQL
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 16
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeSeRQL Sprachenübersicht
Literalen• Bestehen aus 3 Teilen : Label, language tag ,Datentyp • Beispiele:
• "foo" • "foo"@en• "<foo/>"^^<http://www.w3.org/1999/02/22-rdf-syntax-
ns#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 17
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeSeRQL Sprachenübersicht
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 18
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeSeRQL: Pfad-Ausdrücke
• Multi-value Knoten1. 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 19
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeSeRQL: Sprachenübersicht
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 20
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeSeRQL Sprachenübersicht
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 21
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRegelbasierte Sprache TRIPLE
TRIPLEvereinigt 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] (“molecule”).
Oxana Krieger Yuliya Grinshteyn 22
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeTRIPLE Sprachenübersicht
• 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 23
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeTRIPLE Sprachenübersicht
• Clauses:– Fakt: s[p1 o1; p2 o2; ...].– Regel: X s1[p1X] s2[p2X] ... .
• Namespace und Resource abbreviations:– rdf := “http://www.w3.org/1999/02/22-rdf-syntax-ns#”.– isa := rdf:subClassOf
Oxana Krieger Yuliya Grinshteyn 24
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeTRIPLE Sprachenübersicht
Beispiel: Dublin Core Metadata
dc := “http://purl.org/dc/elements/1.0/”.dfki := “http://www.dfki.de/”.
@dfki:documents { dfki:d_01_01 [ dc:title “TRIPLE”; dc:creator “Michael Sintek”; dc:subject RDF; dc:subject triples; ... ]. }
namespace abbreviations
block
fact
dfki:d_01_01
Michael Sintek
RDF triples
TRIPLE
dc:title dc:creator
dc:subject dc:subject
...
FORALL D <- D[dc:subject RDF]@dfki:documents.
rule
Ergebnis: dfki:d_01_01
Oxana Krieger Yuliya Grinshteyn 25
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRegelbasierte Anfragesprache Versa
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 26
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRegelbasierte Anfragesprache Versa
Versa Query Structure• Query• Traversal and filter expressions
- Forward traversal and filter expressions- Backward traversal expressions
Forward traversal operatorlist-expression - list-expression -> boolean-expression
return Liste von Objekten
Forward filter operatorlist-expression - list-expression |-> boolean-expression
return Liste von Subjekten
Oxana Krieger Yuliya Grinshteyn 27
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRegelbasierte Anfragesprache Versa
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 28
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRegelbasierte Anfragesprache Versa
all() - dc:date -> *
Ergebnis:
<List>
<String>2001-03-04</String> </List>
all() - dc:date -> contains("-03-")
Ergebnis:<List> <String>2001-03-04</String> </List>
all() |- dc:date -> contains("-03-") Ergebnis:<List> <Resource> http://rdfinference.org/ril/issue-tracker/i2001030423</Resource></List>
Oxana Krieger Yuliya Grinshteyn 29
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRegelbasierte Anfragesprache Versa
Backward traversal expression: Form : list <- list - boolean
<List><Resource> http://rdfinference.org/ril/issue-tracker/i2001030423</Resource></List>
"2001-03-04" <- dc:date - *
("2001-03-04" <- dc:date - *) - dc:title -> * <List><String>Unnecessary abbreviation</String></List>
Oxana Krieger Yuliya Grinshteyn 30
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRegelbasierte Anfragesprache N3
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#> .
• Aggregatfunktionenz.B. count
• Rekursionen
Oxana Krieger Yuliya Grinshteyn 31
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeRegelbasierte Anfragesprache N3
• Namen der Variablen fangen mit dem Präfix „?“ an Bsp.: ?Var
• Statementsubject 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 32
RDF AnfragesprachenInstitut für InformatikBetriebliche Informationssysteme5. Vergleich von Anfragesprachen
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 33
RDF AnfragesprachenInstitut für InformatikBetriebliche Informationssysteme5. Vergleich von Anfragesprachen
• Usecase Namespacez.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/Languages" />
</acm:Topic>
Return the German label of the topic whose English label is „Database Management“.
Oxana Krieger Yuliya Grinshteyn 34
RDF AnfragesprachenInstitut für InformatikBetriebliche InformationssystemeQuellen
• Sesame RQL : a Tutorialhttp://www.openrdf.org/doc/rql-tutorial.html
• Jena Tutorial – RDQLhttp://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/x- think10/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/