Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Oxana Krieger Yuliya Grinshteyn

Ähnliche Präsentationen


Präsentation zum Thema: "Oxana Krieger Yuliya Grinshteyn"—  Präsentation transkript:

1 Oxana Krieger Yuliya Grinshteyn
RDF Query Languages Oxana Krieger Yuliya Grinshteyn Oxana Krieger Yuliya Grinshteyn

2 Gliederung Übersicht SQL/OQL- basierte Sprachen RQL
RDQL: praktische Anwendung von Anfragen SeRQL Regelbasierte Sprachen Triple Versa N3 Vergleich von Anfragesprachen Oxana Krieger Yuliya Grinshteyn

3 SQL/OQL- basierte Anfragesprachen
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

4 RQL Sprachenübersicht
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

5 RQL Sprachenübersicht
Variablen Variablen werden per Namen identifiziert Namen der Variablen : Var1, var_1 Variablen von Prädikaten fangen mit dem an Variable von schema classes fangen mit dem Präfix $ an Beispiel: $s Operatoren Logische Operatoren: AND, OR, NOT Vergleichsoperatoren: <, <=,= , >= , >, != Oxana Krieger Yuliya Grinshteyn

6 RQL Sprachenübersicht
Path expressions (Pfad-Ausdrücke) werden in der „from“-Klausel verwendet RQL: from {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:worksFor rdf:type Company foo:ITCompany Person Oxana Krieger Yuliya Grinshteyn

7 RQL 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 Beispiel select // X - Subjekt from {Y} - Prädikat where Y like "Pablo" // Y - Objekt Oxana Krieger Yuliya Grinshteyn

8 RDQL 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 RDQL 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 RDQL 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:works For rdf:type foo:ITCompany Oxana Krieger Yuliya Grinshteyn

11 RDQL 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 Praktische 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 ?y Smith ?givenName Oxana Krieger Yuliya Grinshteyn

13 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) SELECT ?resource WHERE (?resource, <info:age>, ?age) AND ?age >= 24 USING info FOR <http://somewhere/peopleInfo#> ?resource ?z ?givenName 2001/vcard-rdf/3.0#N vcard-rdf/3.0#Given ?resource ?age info:age Oxana Krieger Yuliya Grinshteyn

14 Praktische 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 ?familyName vCard: Family Oxana Krieger Yuliya Grinshteyn

15 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 SeRQL Sprachenübersicht
Literalen Bestehen aus 3 Teilen : Label, language tag ,Datentyp Beispiele: "foo" "<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 SeRQL 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 SeRQL: Pfad-Ausdrücke
Multi-value Knoten Variante: {subj1} pred1 {obj1, obj2, obj3} oder {subj1} pred1 {obj1}, {subj1} pred1 {obj2}, {subj1} pred1 {obj3} {subj1, subj2, subj3} pred1 {obj1} {first} pred1 {middle1, middle2} pred2 {last} Oxana Krieger Yuliya Grinshteyn

19 SeRQL: 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: { Address}] Oxana Krieger Yuliya Grinshteyn

20 SeRQL 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 Regelbasierte Sprache 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] (“molecule”). Oxana Krieger Yuliya Grinshteyn

22 TRIPLE 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 TRIPLE Sprachenübersicht
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

24 TRIPLE 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 Michael Sintek TRIPLE fact dc:title dc:creator dfki:d_01_01 dc:subject dc:subject RDF ... triples rule FORALL D <- D[dc:subject  Ergebnis: dfki:d_01_01 Oxana Krieger Yuliya Grinshteyn

25 Regelbasierte 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 Regelbasierte Anfragesprache Versa
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

27 Regelbasierte 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 Regelbasierte Anfragesprache Versa
all() - dc:date -> * Ergebnis: <List> <String> </String> </List> all() |- dc:date -> contains("-03-") Ergebnis: <List> <Resource> </Resource></List> all() - dc:date -> contains("-03-") Ergebnis: <List> <String> </String> </List> Oxana Krieger Yuliya Grinshteyn

29 Regelbasierte Anfragesprache Versa
Backward traversal expression: Form : list <- list - boolean " " <- dc:date - * <List> <Resource> </Resource> </List> (" " <- dc:date - *) - dc:title -> * <List><String>Unnecessary abbreviation</String></List> Oxana Krieger Yuliya Grinshteyn

30 Regelbasierte 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#> . Aggregatfunktionen z.B. count Rekursionen Oxana Krieger Yuliya Grinshteyn

31 Regelbasierte Anfragesprache N3
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

32 5. 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 5. Vergleich von Anfragesprachen
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/Languages" /> </acm:Topic> Return the German label of the topic whose English label is „Database Management“. Oxana Krieger Yuliya Grinshteyn

34 Quellen Sesame RQL : a Tutorial Jena Tutorial – RDQL
Jena Tutorial – RDQL The SeRQL query language(manual) RDF Query using Versa developerworks/xml/library/x think10/index.html#1 TRIPLE – A Query, Inference and Transformation Language Notation 3 Comparison of Query Languages Oxana Krieger Yuliya Grinshteyn


Herunterladen ppt "Oxana Krieger Yuliya Grinshteyn"

Ähnliche Präsentationen


Google-Anzeigen