Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
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 = < 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 < 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, < ?fName) Oxana Krieger Yuliya Grinshteyn
10
RDQL Sprachenübersicht
Muster Graph werden in der „where“-Klausel verwendet WHERE (?y, < 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 < Oxana Krieger Yuliya Grinshteyn
12
Praktische Anwendung RDQL Anfragen
SELECT ?x, ?fname WHERE (?x, < ?fname) SELECT ?givenName WHERE (?y, < "Smith"), (?y, < ?givenName) (alternativ zu 1). SELECT ?x WHERE (?x, <vCard:FN>, "John Smith") USING vCard FOR < ?x ?fname ?y Smith ?givenName Oxana Krieger Yuliya Grinshteyn
13
Praktische Anwendung RDQL Anfragen
SELECT ?resource, ?givenName WHERE (?resource, < ?z) , (?z, < ?givenName) SELECT ?resource WHERE (?resource, <info:age>, ?age) AND ?age >= 24 USING info FOR < ?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 < , vCard FOR < ?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/>"^^< 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 < 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[p1X] s2[p2X] ... . Namespace und Resource abbreviations: – rdf := “ – isa := rdf:subClassOf Oxana Krieger Yuliya Grinshteyn
24
TRIPLE Sprachenübersicht
Beispiel: Dublin Core Metadata dc := “ dfki := “ @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: < . 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 „ 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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.