Rdf query languages
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

RDF Query Languages PowerPoint PPT Presentation


  • 62 Views
  • Uploaded on
  • Presentation posted in: General

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.

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Rdf query languages

RDF Query Languages

Oxana Krieger

Yuliya Grinshteyn

Oxana Krieger Yuliya Grinshteyn


Bersicht

Ü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


Sql oql basierte anfragesprachen

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


Rql sprachen bersicht

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


Rql sprachen bersicht1

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


Rql sprachen bersicht2

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


Rql sprachen bersicht3

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


Rdql sprachen bersicht

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


Rdql sprachen bersicht1

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


Rdql sprachen bersicht2

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


Rdql sprachen bersicht3

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


Praktische anwendung rdql anfragen

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


Praktische anwendung rdql anfragen1

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


Praktische anwendung rdql anfragen2

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


Serql

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


Serql sprachen bersicht

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


Serql sprachen bersicht1

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


Serql pfad ausdr cke

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


Serql sprachen bersicht2

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


Serql sprachen bersicht3

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


Regelbasierte sprache triple

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


    Triple sprachen bersicht

    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


    Triple sprachen bersicht1

    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


    Triple sprachen bersicht2

    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


    Regelbasierte anfragesprache versa

    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


    Regelbasierte anfragesprache versa1

    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


    Regelbasierte anfragesprache versa2

    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


    Regelbasierte anfragesprache versa3

    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


    Regelbasierte anfragesprache versa4

    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


    Regelbasierte anfragesprache n3

    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


    Regelbasierte anfragesprache n31

    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


    5 vergleich von anfragesprachen

    5. Vergleich von Anfragesprachen

    Oxana Krieger Yuliya Grinshteyn


    5 vergleich von anfragesprachen1

    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


    Quellen

    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


  • Login