1 / 34

RDF Query Languages

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

hakan
Download Presentation

RDF Query Languages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Übersicht • SQL/OQL- basierte Sprachen • RQL • RDQL: praktische Anwendung von Anfragen • SeRQL • Regelbasierte Sprachen • Triple • Versa • N3 • Vergleich von Anfragesprachen Gliederung 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. 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: <, <=,= , >= , >, != RQL Sprachenübersicht Oxana Krieger Yuliya Grinshteyn

  6. RQL 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: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, @P // X - Subjekt from {X} @P {Y} // @P - 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. foo:ITCompany ?Person foo:works For ?Company rdf:type 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) 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. http://www.w3.org/2001/vcard-rdf/3.0#FN ?x ?fname Smith http://www.w3.org/2001/vcard-rdf/3.0#Family ?y ?givenName http://www.w3.org/2001/vcard-rdf/3.0#Given 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#> Oxana Krieger Yuliya Grinshteyn

  13. info:age ?resource ?age http://www.w3.org/ 2001/vcard-rdf/3.0#N http://www.w3.org/2001/ vcard-rdf/3.0#Given ?resource ?z ?givenName 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#> Oxana Krieger Yuliya Grinshteyn

  14. info:age v:Card:N ?resource ?age vCard: Family ?y ?familyName 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#> Oxana Krieger Yuliya Grinshteyn

  15. SeRQL 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"@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. 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} • Variante: • {subj1, subj2, subj3} pred1 {obj1} • Variante: • {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:email {EmailAddress}] 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 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  RDF]@dfki:documents. 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-expressionreturn Liste von Objekten Forward filter operator list-expression - list-expression |-> boolean-expressionreturn 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>2001-03-04</String> </List> all() |- dc:date -> contains("-03-")Ergebnis: <List> <Resource> http://rdfinference.org/ril/issue-tracker/i2001030423 </Resource></List> all() - dc:date -> contains("-03-") Ergebnis: <List> <String>2001-03-04</String> </List> Oxana Krieger Yuliya Grinshteyn

  29. Regelbasierte Anfragesprache Versa 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

  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 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 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/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/ Oxana Krieger Yuliya Grinshteyn

More Related