semantic web technologies - ss 2010 - 06 - sparql

66
Semantic Web Technologien SPARQL Steffen Schlönvoigt, HTWG Konstanz, Sommersemester 2010 Semantic Web Technologien Lehrveranstaltung Semantic Web Technologien SS 2010 HTWG Konstanz

Upload: steffen-schloenvoigt

Post on 20-Jan-2015

2.621 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

Semantic Web Technologien

Lehrveranstaltung

Semantic Web TechnologienSS 2010

HTWG Konstanz

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

Sprachen des Semantic Web

SPARQLSPARQL Protocol And RDF Query Language

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

SPARQL Protocol and RDF Query Languagendash Offizielle W3C Recommendation vom 15 Januar 2008ndash SPARQL (engl ausgesprochen wie sparkle)ndash Anfragen auf RDF Graphen

ndash Bestandteile Query Language Anfragesprache

ndash Wichtigster Bestandteilndash Hohe Relevanz in der Praxis

SPROT ndash SPARQL Protocol for RDFndash Protokoll zur Uumlbertragung von SPARQL Anfragen an einen SPARQL Query

Processing Service und zum Empfang von Ergebnissen durch den Anfragesteller

SPARQL Query Results XML Formatndash XML Dokumentformat zur Darstellung von Ergebnissen von SPARQL

SELECT und ASK Queries

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Query Language

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Einfache Anfragenndash Daten

prefix ex lthttpwwwexampleorggt exVolkswagen exhatFirmensitzIn ldquoWolfsburgrdquoexAudi exhatFirmensitzIn ldquoIngolstadtrdquo

ndash AnfragePREFIX ex lthttpwwwexampleorggtSELECT firmensitz WHERE

x exhatFirmensitzIn firmensitz

ndash Resultat

firmensitz

ldquoWolfsburgrdquo

ldquoIngolstadtrdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Mit mehreren Variablenndash Daten

prefix ex lthttpwwwexampleorggt _a exhatFirmensitzIn ldquoWolfsburgrdquo _a exhatNamen ldquoVolkswagenrdquo _b exhatFirmensitzIn ldquoIngolstadtrdquo _b exhatNamen ldquoAudirdquo _c exhatFirmensitzIn ldquoZuffenhausenrdquo

ndash AnfragePREFIX ex lthttpwwwexampleorggtSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

ndash Resultat name firmensitz

ldquoVolkswagenrdquo ldquoWolfsburgrdquo

ldquoAudirdquo ldquoIngolstadtrdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Hauptbestandteile des SPARQL SELECT

ndash Anfragemuster (WHERE) Verwendet TURTLE Syntax Kann Variablen enthalten ( firmensitz hellip ) Muster muss vollstaumlndig passen damit Ergebnisse zuruumlckgeliefert

werden koumlnnen

ndash URIs koumlnnen mit PREFIX abgekuumlrzt werden

ndash Ergebnis durch ldquoAuswahlrdquo von Variablen (SELECT)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Anfragemuster

ndash Einfache Graphmuster

ndash Menge von RDF Triplen in Turtle Syntax Auch Turtle Abkuumlrzungen durch und erlaubt

ndash Variablen werden durch Oder $ eingeleitet firmensitz gleichbedeutend mit $firmensitz Prinzipiell auch innerhalb ein und der selben Anfrage mischbar Bitte fuumlr eine Variante entscheiden da sonst schwer bis nicht lesbar

ndash Variablen koumlnnen an Stelle von Subjekt Praumldikat oder Objekt stehen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Literalen

Literalendash Daten

exw exp test exx exp testde exy exp test^^xsdstring exz exp 42^^xsdinteger

ndash QuerySELECT node WHERE node exp ldquotestrdquo

Liefert nur

Genaue Uumlbereinstimmung gefordert

ndash Aber Ausnahme bei numerischen TypenSELECT node WHERE node exp 42

Liefert

Datentyp wird aus syntaktischer Form bestimmt

node

exz

node

exw

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Blank Nodes

Blank Nodes (gekennzeichnet durch _xyz)ndash In Anfragen

Koumlnnen an Stelle von Subjekt oder Objekt stehen ID beliebig (aber nur einmal pro Anfrage verwenden) Variablen die nicht ausgewaumlhlt werden koumlnnen

ndash In Ergebnissen Platzhalter fuumlr unbekannte Elemente Ids beliebig aber evtl an anderen Ergebnisteil gebunden

ndash Beispiel (basierend auf Daten des letzten Beispiels)SELECT node name WHERE node exhatNamen name

ndash Ergebnis kann unterschiedliche Formen annehmen

node name

_b ldquoVolkswagenrdquo

_a ldquoAudirdquo

node name

_a ldquoVolkswagenrdquo

_b ldquoAudirdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Gruppierung

Gruppierung

ndash Anfragemuster koumlnnen durch und zu Gruppen zusammengefasst und verschachtelt werden

ndash BeispielSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

x exhatGruendungsjahr

ndash Aber ohne zusaumltzliche Konstrukte nicht sonderlich sinnvoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Optionale Muster

OPTIONALndash Angabe optionaler Teile eines Musters

SELECT x name firmensitz WHERE

x rdftype exAutohersteller OPTIONAL x exhatFirmensitzIn firmensitz OPTIONAL x exhatNamen name

ndash Ergebnis kann teilweise ungebunden sein

praktisch wenn nicht alle Daten vorhanden sind man aber auch nicht unbedingt alle Daten benoumltigt

x name firmensitz

exVolkswagen ldquoVolkswagenrdquo ldquoWolfsburgrdquo

exAudi ldquoIngolstadtrdquo

exPorsche ldquoPorscherdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Alternative Muster

UNIONndash Angabe alternativer Teile eines Musters

SELECT x firmensitz WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz

ndash Ergebnis ist die Vereinigung (logisches ODER) der Ergebnismengen beider moumlglichen Varianten

ndash Gelten beide Varianten (Sind fuumlr einen Autohersteller beide Triple gepflegt) werden auch beide Varianten zuruumlckgeliefert

ndash Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht gegenseitig

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 2: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

Sprachen des Semantic Web

SPARQLSPARQL Protocol And RDF Query Language

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

SPARQL Protocol and RDF Query Languagendash Offizielle W3C Recommendation vom 15 Januar 2008ndash SPARQL (engl ausgesprochen wie sparkle)ndash Anfragen auf RDF Graphen

ndash Bestandteile Query Language Anfragesprache

ndash Wichtigster Bestandteilndash Hohe Relevanz in der Praxis

SPROT ndash SPARQL Protocol for RDFndash Protokoll zur Uumlbertragung von SPARQL Anfragen an einen SPARQL Query

Processing Service und zum Empfang von Ergebnissen durch den Anfragesteller

SPARQL Query Results XML Formatndash XML Dokumentformat zur Darstellung von Ergebnissen von SPARQL

SELECT und ASK Queries

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Query Language

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Einfache Anfragenndash Daten

prefix ex lthttpwwwexampleorggt exVolkswagen exhatFirmensitzIn ldquoWolfsburgrdquoexAudi exhatFirmensitzIn ldquoIngolstadtrdquo

ndash AnfragePREFIX ex lthttpwwwexampleorggtSELECT firmensitz WHERE

x exhatFirmensitzIn firmensitz

ndash Resultat

firmensitz

ldquoWolfsburgrdquo

ldquoIngolstadtrdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Mit mehreren Variablenndash Daten

prefix ex lthttpwwwexampleorggt _a exhatFirmensitzIn ldquoWolfsburgrdquo _a exhatNamen ldquoVolkswagenrdquo _b exhatFirmensitzIn ldquoIngolstadtrdquo _b exhatNamen ldquoAudirdquo _c exhatFirmensitzIn ldquoZuffenhausenrdquo

ndash AnfragePREFIX ex lthttpwwwexampleorggtSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

ndash Resultat name firmensitz

ldquoVolkswagenrdquo ldquoWolfsburgrdquo

ldquoAudirdquo ldquoIngolstadtrdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Hauptbestandteile des SPARQL SELECT

ndash Anfragemuster (WHERE) Verwendet TURTLE Syntax Kann Variablen enthalten ( firmensitz hellip ) Muster muss vollstaumlndig passen damit Ergebnisse zuruumlckgeliefert

werden koumlnnen

ndash URIs koumlnnen mit PREFIX abgekuumlrzt werden

ndash Ergebnis durch ldquoAuswahlrdquo von Variablen (SELECT)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Anfragemuster

ndash Einfache Graphmuster

ndash Menge von RDF Triplen in Turtle Syntax Auch Turtle Abkuumlrzungen durch und erlaubt

ndash Variablen werden durch Oder $ eingeleitet firmensitz gleichbedeutend mit $firmensitz Prinzipiell auch innerhalb ein und der selben Anfrage mischbar Bitte fuumlr eine Variante entscheiden da sonst schwer bis nicht lesbar

ndash Variablen koumlnnen an Stelle von Subjekt Praumldikat oder Objekt stehen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Literalen

Literalendash Daten

exw exp test exx exp testde exy exp test^^xsdstring exz exp 42^^xsdinteger

ndash QuerySELECT node WHERE node exp ldquotestrdquo

Liefert nur

Genaue Uumlbereinstimmung gefordert

ndash Aber Ausnahme bei numerischen TypenSELECT node WHERE node exp 42

Liefert

Datentyp wird aus syntaktischer Form bestimmt

node

exz

node

exw

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Blank Nodes

Blank Nodes (gekennzeichnet durch _xyz)ndash In Anfragen

Koumlnnen an Stelle von Subjekt oder Objekt stehen ID beliebig (aber nur einmal pro Anfrage verwenden) Variablen die nicht ausgewaumlhlt werden koumlnnen

ndash In Ergebnissen Platzhalter fuumlr unbekannte Elemente Ids beliebig aber evtl an anderen Ergebnisteil gebunden

ndash Beispiel (basierend auf Daten des letzten Beispiels)SELECT node name WHERE node exhatNamen name

ndash Ergebnis kann unterschiedliche Formen annehmen

node name

_b ldquoVolkswagenrdquo

_a ldquoAudirdquo

node name

_a ldquoVolkswagenrdquo

_b ldquoAudirdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Gruppierung

Gruppierung

ndash Anfragemuster koumlnnen durch und zu Gruppen zusammengefasst und verschachtelt werden

ndash BeispielSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

x exhatGruendungsjahr

ndash Aber ohne zusaumltzliche Konstrukte nicht sonderlich sinnvoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Optionale Muster

OPTIONALndash Angabe optionaler Teile eines Musters

SELECT x name firmensitz WHERE

x rdftype exAutohersteller OPTIONAL x exhatFirmensitzIn firmensitz OPTIONAL x exhatNamen name

ndash Ergebnis kann teilweise ungebunden sein

praktisch wenn nicht alle Daten vorhanden sind man aber auch nicht unbedingt alle Daten benoumltigt

x name firmensitz

exVolkswagen ldquoVolkswagenrdquo ldquoWolfsburgrdquo

exAudi ldquoIngolstadtrdquo

exPorsche ldquoPorscherdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Alternative Muster

UNIONndash Angabe alternativer Teile eines Musters

SELECT x firmensitz WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz

ndash Ergebnis ist die Vereinigung (logisches ODER) der Ergebnismengen beider moumlglichen Varianten

ndash Gelten beide Varianten (Sind fuumlr einen Autohersteller beide Triple gepflegt) werden auch beide Varianten zuruumlckgeliefert

ndash Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht gegenseitig

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 3: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

SPARQL Protocol and RDF Query Languagendash Offizielle W3C Recommendation vom 15 Januar 2008ndash SPARQL (engl ausgesprochen wie sparkle)ndash Anfragen auf RDF Graphen

ndash Bestandteile Query Language Anfragesprache

ndash Wichtigster Bestandteilndash Hohe Relevanz in der Praxis

SPROT ndash SPARQL Protocol for RDFndash Protokoll zur Uumlbertragung von SPARQL Anfragen an einen SPARQL Query

Processing Service und zum Empfang von Ergebnissen durch den Anfragesteller

SPARQL Query Results XML Formatndash XML Dokumentformat zur Darstellung von Ergebnissen von SPARQL

SELECT und ASK Queries

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Query Language

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Einfache Anfragenndash Daten

prefix ex lthttpwwwexampleorggt exVolkswagen exhatFirmensitzIn ldquoWolfsburgrdquoexAudi exhatFirmensitzIn ldquoIngolstadtrdquo

ndash AnfragePREFIX ex lthttpwwwexampleorggtSELECT firmensitz WHERE

x exhatFirmensitzIn firmensitz

ndash Resultat

firmensitz

ldquoWolfsburgrdquo

ldquoIngolstadtrdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Mit mehreren Variablenndash Daten

prefix ex lthttpwwwexampleorggt _a exhatFirmensitzIn ldquoWolfsburgrdquo _a exhatNamen ldquoVolkswagenrdquo _b exhatFirmensitzIn ldquoIngolstadtrdquo _b exhatNamen ldquoAudirdquo _c exhatFirmensitzIn ldquoZuffenhausenrdquo

ndash AnfragePREFIX ex lthttpwwwexampleorggtSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

ndash Resultat name firmensitz

ldquoVolkswagenrdquo ldquoWolfsburgrdquo

ldquoAudirdquo ldquoIngolstadtrdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Hauptbestandteile des SPARQL SELECT

ndash Anfragemuster (WHERE) Verwendet TURTLE Syntax Kann Variablen enthalten ( firmensitz hellip ) Muster muss vollstaumlndig passen damit Ergebnisse zuruumlckgeliefert

werden koumlnnen

ndash URIs koumlnnen mit PREFIX abgekuumlrzt werden

ndash Ergebnis durch ldquoAuswahlrdquo von Variablen (SELECT)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Anfragemuster

ndash Einfache Graphmuster

ndash Menge von RDF Triplen in Turtle Syntax Auch Turtle Abkuumlrzungen durch und erlaubt

ndash Variablen werden durch Oder $ eingeleitet firmensitz gleichbedeutend mit $firmensitz Prinzipiell auch innerhalb ein und der selben Anfrage mischbar Bitte fuumlr eine Variante entscheiden da sonst schwer bis nicht lesbar

ndash Variablen koumlnnen an Stelle von Subjekt Praumldikat oder Objekt stehen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Literalen

Literalendash Daten

exw exp test exx exp testde exy exp test^^xsdstring exz exp 42^^xsdinteger

ndash QuerySELECT node WHERE node exp ldquotestrdquo

Liefert nur

Genaue Uumlbereinstimmung gefordert

ndash Aber Ausnahme bei numerischen TypenSELECT node WHERE node exp 42

Liefert

Datentyp wird aus syntaktischer Form bestimmt

node

exz

node

exw

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Blank Nodes

Blank Nodes (gekennzeichnet durch _xyz)ndash In Anfragen

Koumlnnen an Stelle von Subjekt oder Objekt stehen ID beliebig (aber nur einmal pro Anfrage verwenden) Variablen die nicht ausgewaumlhlt werden koumlnnen

ndash In Ergebnissen Platzhalter fuumlr unbekannte Elemente Ids beliebig aber evtl an anderen Ergebnisteil gebunden

ndash Beispiel (basierend auf Daten des letzten Beispiels)SELECT node name WHERE node exhatNamen name

ndash Ergebnis kann unterschiedliche Formen annehmen

node name

_b ldquoVolkswagenrdquo

_a ldquoAudirdquo

node name

_a ldquoVolkswagenrdquo

_b ldquoAudirdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Gruppierung

Gruppierung

ndash Anfragemuster koumlnnen durch und zu Gruppen zusammengefasst und verschachtelt werden

ndash BeispielSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

x exhatGruendungsjahr

ndash Aber ohne zusaumltzliche Konstrukte nicht sonderlich sinnvoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Optionale Muster

OPTIONALndash Angabe optionaler Teile eines Musters

SELECT x name firmensitz WHERE

x rdftype exAutohersteller OPTIONAL x exhatFirmensitzIn firmensitz OPTIONAL x exhatNamen name

ndash Ergebnis kann teilweise ungebunden sein

praktisch wenn nicht alle Daten vorhanden sind man aber auch nicht unbedingt alle Daten benoumltigt

x name firmensitz

exVolkswagen ldquoVolkswagenrdquo ldquoWolfsburgrdquo

exAudi ldquoIngolstadtrdquo

exPorsche ldquoPorscherdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Alternative Muster

UNIONndash Angabe alternativer Teile eines Musters

SELECT x firmensitz WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz

ndash Ergebnis ist die Vereinigung (logisches ODER) der Ergebnismengen beider moumlglichen Varianten

ndash Gelten beide Varianten (Sind fuumlr einen Autohersteller beide Triple gepflegt) werden auch beide Varianten zuruumlckgeliefert

ndash Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht gegenseitig

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 4: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Query Language

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Einfache Anfragenndash Daten

prefix ex lthttpwwwexampleorggt exVolkswagen exhatFirmensitzIn ldquoWolfsburgrdquoexAudi exhatFirmensitzIn ldquoIngolstadtrdquo

ndash AnfragePREFIX ex lthttpwwwexampleorggtSELECT firmensitz WHERE

x exhatFirmensitzIn firmensitz

ndash Resultat

firmensitz

ldquoWolfsburgrdquo

ldquoIngolstadtrdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Mit mehreren Variablenndash Daten

prefix ex lthttpwwwexampleorggt _a exhatFirmensitzIn ldquoWolfsburgrdquo _a exhatNamen ldquoVolkswagenrdquo _b exhatFirmensitzIn ldquoIngolstadtrdquo _b exhatNamen ldquoAudirdquo _c exhatFirmensitzIn ldquoZuffenhausenrdquo

ndash AnfragePREFIX ex lthttpwwwexampleorggtSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

ndash Resultat name firmensitz

ldquoVolkswagenrdquo ldquoWolfsburgrdquo

ldquoAudirdquo ldquoIngolstadtrdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Hauptbestandteile des SPARQL SELECT

ndash Anfragemuster (WHERE) Verwendet TURTLE Syntax Kann Variablen enthalten ( firmensitz hellip ) Muster muss vollstaumlndig passen damit Ergebnisse zuruumlckgeliefert

werden koumlnnen

ndash URIs koumlnnen mit PREFIX abgekuumlrzt werden

ndash Ergebnis durch ldquoAuswahlrdquo von Variablen (SELECT)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Anfragemuster

ndash Einfache Graphmuster

ndash Menge von RDF Triplen in Turtle Syntax Auch Turtle Abkuumlrzungen durch und erlaubt

ndash Variablen werden durch Oder $ eingeleitet firmensitz gleichbedeutend mit $firmensitz Prinzipiell auch innerhalb ein und der selben Anfrage mischbar Bitte fuumlr eine Variante entscheiden da sonst schwer bis nicht lesbar

ndash Variablen koumlnnen an Stelle von Subjekt Praumldikat oder Objekt stehen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Literalen

Literalendash Daten

exw exp test exx exp testde exy exp test^^xsdstring exz exp 42^^xsdinteger

ndash QuerySELECT node WHERE node exp ldquotestrdquo

Liefert nur

Genaue Uumlbereinstimmung gefordert

ndash Aber Ausnahme bei numerischen TypenSELECT node WHERE node exp 42

Liefert

Datentyp wird aus syntaktischer Form bestimmt

node

exz

node

exw

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Blank Nodes

Blank Nodes (gekennzeichnet durch _xyz)ndash In Anfragen

Koumlnnen an Stelle von Subjekt oder Objekt stehen ID beliebig (aber nur einmal pro Anfrage verwenden) Variablen die nicht ausgewaumlhlt werden koumlnnen

ndash In Ergebnissen Platzhalter fuumlr unbekannte Elemente Ids beliebig aber evtl an anderen Ergebnisteil gebunden

ndash Beispiel (basierend auf Daten des letzten Beispiels)SELECT node name WHERE node exhatNamen name

ndash Ergebnis kann unterschiedliche Formen annehmen

node name

_b ldquoVolkswagenrdquo

_a ldquoAudirdquo

node name

_a ldquoVolkswagenrdquo

_b ldquoAudirdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Gruppierung

Gruppierung

ndash Anfragemuster koumlnnen durch und zu Gruppen zusammengefasst und verschachtelt werden

ndash BeispielSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

x exhatGruendungsjahr

ndash Aber ohne zusaumltzliche Konstrukte nicht sonderlich sinnvoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Optionale Muster

OPTIONALndash Angabe optionaler Teile eines Musters

SELECT x name firmensitz WHERE

x rdftype exAutohersteller OPTIONAL x exhatFirmensitzIn firmensitz OPTIONAL x exhatNamen name

ndash Ergebnis kann teilweise ungebunden sein

praktisch wenn nicht alle Daten vorhanden sind man aber auch nicht unbedingt alle Daten benoumltigt

x name firmensitz

exVolkswagen ldquoVolkswagenrdquo ldquoWolfsburgrdquo

exAudi ldquoIngolstadtrdquo

exPorsche ldquoPorscherdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Alternative Muster

UNIONndash Angabe alternativer Teile eines Musters

SELECT x firmensitz WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz

ndash Ergebnis ist die Vereinigung (logisches ODER) der Ergebnismengen beider moumlglichen Varianten

ndash Gelten beide Varianten (Sind fuumlr einen Autohersteller beide Triple gepflegt) werden auch beide Varianten zuruumlckgeliefert

ndash Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht gegenseitig

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 5: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Einfache Anfragenndash Daten

prefix ex lthttpwwwexampleorggt exVolkswagen exhatFirmensitzIn ldquoWolfsburgrdquoexAudi exhatFirmensitzIn ldquoIngolstadtrdquo

ndash AnfragePREFIX ex lthttpwwwexampleorggtSELECT firmensitz WHERE

x exhatFirmensitzIn firmensitz

ndash Resultat

firmensitz

ldquoWolfsburgrdquo

ldquoIngolstadtrdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Mit mehreren Variablenndash Daten

prefix ex lthttpwwwexampleorggt _a exhatFirmensitzIn ldquoWolfsburgrdquo _a exhatNamen ldquoVolkswagenrdquo _b exhatFirmensitzIn ldquoIngolstadtrdquo _b exhatNamen ldquoAudirdquo _c exhatFirmensitzIn ldquoZuffenhausenrdquo

ndash AnfragePREFIX ex lthttpwwwexampleorggtSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

ndash Resultat name firmensitz

ldquoVolkswagenrdquo ldquoWolfsburgrdquo

ldquoAudirdquo ldquoIngolstadtrdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Hauptbestandteile des SPARQL SELECT

ndash Anfragemuster (WHERE) Verwendet TURTLE Syntax Kann Variablen enthalten ( firmensitz hellip ) Muster muss vollstaumlndig passen damit Ergebnisse zuruumlckgeliefert

werden koumlnnen

ndash URIs koumlnnen mit PREFIX abgekuumlrzt werden

ndash Ergebnis durch ldquoAuswahlrdquo von Variablen (SELECT)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Anfragemuster

ndash Einfache Graphmuster

ndash Menge von RDF Triplen in Turtle Syntax Auch Turtle Abkuumlrzungen durch und erlaubt

ndash Variablen werden durch Oder $ eingeleitet firmensitz gleichbedeutend mit $firmensitz Prinzipiell auch innerhalb ein und der selben Anfrage mischbar Bitte fuumlr eine Variante entscheiden da sonst schwer bis nicht lesbar

ndash Variablen koumlnnen an Stelle von Subjekt Praumldikat oder Objekt stehen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Literalen

Literalendash Daten

exw exp test exx exp testde exy exp test^^xsdstring exz exp 42^^xsdinteger

ndash QuerySELECT node WHERE node exp ldquotestrdquo

Liefert nur

Genaue Uumlbereinstimmung gefordert

ndash Aber Ausnahme bei numerischen TypenSELECT node WHERE node exp 42

Liefert

Datentyp wird aus syntaktischer Form bestimmt

node

exz

node

exw

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Blank Nodes

Blank Nodes (gekennzeichnet durch _xyz)ndash In Anfragen

Koumlnnen an Stelle von Subjekt oder Objekt stehen ID beliebig (aber nur einmal pro Anfrage verwenden) Variablen die nicht ausgewaumlhlt werden koumlnnen

ndash In Ergebnissen Platzhalter fuumlr unbekannte Elemente Ids beliebig aber evtl an anderen Ergebnisteil gebunden

ndash Beispiel (basierend auf Daten des letzten Beispiels)SELECT node name WHERE node exhatNamen name

ndash Ergebnis kann unterschiedliche Formen annehmen

node name

_b ldquoVolkswagenrdquo

_a ldquoAudirdquo

node name

_a ldquoVolkswagenrdquo

_b ldquoAudirdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Gruppierung

Gruppierung

ndash Anfragemuster koumlnnen durch und zu Gruppen zusammengefasst und verschachtelt werden

ndash BeispielSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

x exhatGruendungsjahr

ndash Aber ohne zusaumltzliche Konstrukte nicht sonderlich sinnvoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Optionale Muster

OPTIONALndash Angabe optionaler Teile eines Musters

SELECT x name firmensitz WHERE

x rdftype exAutohersteller OPTIONAL x exhatFirmensitzIn firmensitz OPTIONAL x exhatNamen name

ndash Ergebnis kann teilweise ungebunden sein

praktisch wenn nicht alle Daten vorhanden sind man aber auch nicht unbedingt alle Daten benoumltigt

x name firmensitz

exVolkswagen ldquoVolkswagenrdquo ldquoWolfsburgrdquo

exAudi ldquoIngolstadtrdquo

exPorsche ldquoPorscherdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Alternative Muster

UNIONndash Angabe alternativer Teile eines Musters

SELECT x firmensitz WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz

ndash Ergebnis ist die Vereinigung (logisches ODER) der Ergebnismengen beider moumlglichen Varianten

ndash Gelten beide Varianten (Sind fuumlr einen Autohersteller beide Triple gepflegt) werden auch beide Varianten zuruumlckgeliefert

ndash Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht gegenseitig

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 6: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Mit mehreren Variablenndash Daten

prefix ex lthttpwwwexampleorggt _a exhatFirmensitzIn ldquoWolfsburgrdquo _a exhatNamen ldquoVolkswagenrdquo _b exhatFirmensitzIn ldquoIngolstadtrdquo _b exhatNamen ldquoAudirdquo _c exhatFirmensitzIn ldquoZuffenhausenrdquo

ndash AnfragePREFIX ex lthttpwwwexampleorggtSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

ndash Resultat name firmensitz

ldquoVolkswagenrdquo ldquoWolfsburgrdquo

ldquoAudirdquo ldquoIngolstadtrdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Hauptbestandteile des SPARQL SELECT

ndash Anfragemuster (WHERE) Verwendet TURTLE Syntax Kann Variablen enthalten ( firmensitz hellip ) Muster muss vollstaumlndig passen damit Ergebnisse zuruumlckgeliefert

werden koumlnnen

ndash URIs koumlnnen mit PREFIX abgekuumlrzt werden

ndash Ergebnis durch ldquoAuswahlrdquo von Variablen (SELECT)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Anfragemuster

ndash Einfache Graphmuster

ndash Menge von RDF Triplen in Turtle Syntax Auch Turtle Abkuumlrzungen durch und erlaubt

ndash Variablen werden durch Oder $ eingeleitet firmensitz gleichbedeutend mit $firmensitz Prinzipiell auch innerhalb ein und der selben Anfrage mischbar Bitte fuumlr eine Variante entscheiden da sonst schwer bis nicht lesbar

ndash Variablen koumlnnen an Stelle von Subjekt Praumldikat oder Objekt stehen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Literalen

Literalendash Daten

exw exp test exx exp testde exy exp test^^xsdstring exz exp 42^^xsdinteger

ndash QuerySELECT node WHERE node exp ldquotestrdquo

Liefert nur

Genaue Uumlbereinstimmung gefordert

ndash Aber Ausnahme bei numerischen TypenSELECT node WHERE node exp 42

Liefert

Datentyp wird aus syntaktischer Form bestimmt

node

exz

node

exw

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Blank Nodes

Blank Nodes (gekennzeichnet durch _xyz)ndash In Anfragen

Koumlnnen an Stelle von Subjekt oder Objekt stehen ID beliebig (aber nur einmal pro Anfrage verwenden) Variablen die nicht ausgewaumlhlt werden koumlnnen

ndash In Ergebnissen Platzhalter fuumlr unbekannte Elemente Ids beliebig aber evtl an anderen Ergebnisteil gebunden

ndash Beispiel (basierend auf Daten des letzten Beispiels)SELECT node name WHERE node exhatNamen name

ndash Ergebnis kann unterschiedliche Formen annehmen

node name

_b ldquoVolkswagenrdquo

_a ldquoAudirdquo

node name

_a ldquoVolkswagenrdquo

_b ldquoAudirdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Gruppierung

Gruppierung

ndash Anfragemuster koumlnnen durch und zu Gruppen zusammengefasst und verschachtelt werden

ndash BeispielSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

x exhatGruendungsjahr

ndash Aber ohne zusaumltzliche Konstrukte nicht sonderlich sinnvoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Optionale Muster

OPTIONALndash Angabe optionaler Teile eines Musters

SELECT x name firmensitz WHERE

x rdftype exAutohersteller OPTIONAL x exhatFirmensitzIn firmensitz OPTIONAL x exhatNamen name

ndash Ergebnis kann teilweise ungebunden sein

praktisch wenn nicht alle Daten vorhanden sind man aber auch nicht unbedingt alle Daten benoumltigt

x name firmensitz

exVolkswagen ldquoVolkswagenrdquo ldquoWolfsburgrdquo

exAudi ldquoIngolstadtrdquo

exPorsche ldquoPorscherdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Alternative Muster

UNIONndash Angabe alternativer Teile eines Musters

SELECT x firmensitz WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz

ndash Ergebnis ist die Vereinigung (logisches ODER) der Ergebnismengen beider moumlglichen Varianten

ndash Gelten beide Varianten (Sind fuumlr einen Autohersteller beide Triple gepflegt) werden auch beide Varianten zuruumlckgeliefert

ndash Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht gegenseitig

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 7: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Hauptbestandteile des SPARQL SELECT

ndash Anfragemuster (WHERE) Verwendet TURTLE Syntax Kann Variablen enthalten ( firmensitz hellip ) Muster muss vollstaumlndig passen damit Ergebnisse zuruumlckgeliefert

werden koumlnnen

ndash URIs koumlnnen mit PREFIX abgekuumlrzt werden

ndash Ergebnis durch ldquoAuswahlrdquo von Variablen (SELECT)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Anfragemuster

ndash Einfache Graphmuster

ndash Menge von RDF Triplen in Turtle Syntax Auch Turtle Abkuumlrzungen durch und erlaubt

ndash Variablen werden durch Oder $ eingeleitet firmensitz gleichbedeutend mit $firmensitz Prinzipiell auch innerhalb ein und der selben Anfrage mischbar Bitte fuumlr eine Variante entscheiden da sonst schwer bis nicht lesbar

ndash Variablen koumlnnen an Stelle von Subjekt Praumldikat oder Objekt stehen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Literalen

Literalendash Daten

exw exp test exx exp testde exy exp test^^xsdstring exz exp 42^^xsdinteger

ndash QuerySELECT node WHERE node exp ldquotestrdquo

Liefert nur

Genaue Uumlbereinstimmung gefordert

ndash Aber Ausnahme bei numerischen TypenSELECT node WHERE node exp 42

Liefert

Datentyp wird aus syntaktischer Form bestimmt

node

exz

node

exw

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Blank Nodes

Blank Nodes (gekennzeichnet durch _xyz)ndash In Anfragen

Koumlnnen an Stelle von Subjekt oder Objekt stehen ID beliebig (aber nur einmal pro Anfrage verwenden) Variablen die nicht ausgewaumlhlt werden koumlnnen

ndash In Ergebnissen Platzhalter fuumlr unbekannte Elemente Ids beliebig aber evtl an anderen Ergebnisteil gebunden

ndash Beispiel (basierend auf Daten des letzten Beispiels)SELECT node name WHERE node exhatNamen name

ndash Ergebnis kann unterschiedliche Formen annehmen

node name

_b ldquoVolkswagenrdquo

_a ldquoAudirdquo

node name

_a ldquoVolkswagenrdquo

_b ldquoAudirdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Gruppierung

Gruppierung

ndash Anfragemuster koumlnnen durch und zu Gruppen zusammengefasst und verschachtelt werden

ndash BeispielSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

x exhatGruendungsjahr

ndash Aber ohne zusaumltzliche Konstrukte nicht sonderlich sinnvoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Optionale Muster

OPTIONALndash Angabe optionaler Teile eines Musters

SELECT x name firmensitz WHERE

x rdftype exAutohersteller OPTIONAL x exhatFirmensitzIn firmensitz OPTIONAL x exhatNamen name

ndash Ergebnis kann teilweise ungebunden sein

praktisch wenn nicht alle Daten vorhanden sind man aber auch nicht unbedingt alle Daten benoumltigt

x name firmensitz

exVolkswagen ldquoVolkswagenrdquo ldquoWolfsburgrdquo

exAudi ldquoIngolstadtrdquo

exPorsche ldquoPorscherdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Alternative Muster

UNIONndash Angabe alternativer Teile eines Musters

SELECT x firmensitz WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz

ndash Ergebnis ist die Vereinigung (logisches ODER) der Ergebnismengen beider moumlglichen Varianten

ndash Gelten beide Varianten (Sind fuumlr einen Autohersteller beide Triple gepflegt) werden auch beide Varianten zuruumlckgeliefert

ndash Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht gegenseitig

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 8: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Einfuumlhrung

Anfragemuster

ndash Einfache Graphmuster

ndash Menge von RDF Triplen in Turtle Syntax Auch Turtle Abkuumlrzungen durch und erlaubt

ndash Variablen werden durch Oder $ eingeleitet firmensitz gleichbedeutend mit $firmensitz Prinzipiell auch innerhalb ein und der selben Anfrage mischbar Bitte fuumlr eine Variante entscheiden da sonst schwer bis nicht lesbar

ndash Variablen koumlnnen an Stelle von Subjekt Praumldikat oder Objekt stehen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Literalen

Literalendash Daten

exw exp test exx exp testde exy exp test^^xsdstring exz exp 42^^xsdinteger

ndash QuerySELECT node WHERE node exp ldquotestrdquo

Liefert nur

Genaue Uumlbereinstimmung gefordert

ndash Aber Ausnahme bei numerischen TypenSELECT node WHERE node exp 42

Liefert

Datentyp wird aus syntaktischer Form bestimmt

node

exz

node

exw

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Blank Nodes

Blank Nodes (gekennzeichnet durch _xyz)ndash In Anfragen

Koumlnnen an Stelle von Subjekt oder Objekt stehen ID beliebig (aber nur einmal pro Anfrage verwenden) Variablen die nicht ausgewaumlhlt werden koumlnnen

ndash In Ergebnissen Platzhalter fuumlr unbekannte Elemente Ids beliebig aber evtl an anderen Ergebnisteil gebunden

ndash Beispiel (basierend auf Daten des letzten Beispiels)SELECT node name WHERE node exhatNamen name

ndash Ergebnis kann unterschiedliche Formen annehmen

node name

_b ldquoVolkswagenrdquo

_a ldquoAudirdquo

node name

_a ldquoVolkswagenrdquo

_b ldquoAudirdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Gruppierung

Gruppierung

ndash Anfragemuster koumlnnen durch und zu Gruppen zusammengefasst und verschachtelt werden

ndash BeispielSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

x exhatGruendungsjahr

ndash Aber ohne zusaumltzliche Konstrukte nicht sonderlich sinnvoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Optionale Muster

OPTIONALndash Angabe optionaler Teile eines Musters

SELECT x name firmensitz WHERE

x rdftype exAutohersteller OPTIONAL x exhatFirmensitzIn firmensitz OPTIONAL x exhatNamen name

ndash Ergebnis kann teilweise ungebunden sein

praktisch wenn nicht alle Daten vorhanden sind man aber auch nicht unbedingt alle Daten benoumltigt

x name firmensitz

exVolkswagen ldquoVolkswagenrdquo ldquoWolfsburgrdquo

exAudi ldquoIngolstadtrdquo

exPorsche ldquoPorscherdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Alternative Muster

UNIONndash Angabe alternativer Teile eines Musters

SELECT x firmensitz WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz

ndash Ergebnis ist die Vereinigung (logisches ODER) der Ergebnismengen beider moumlglichen Varianten

ndash Gelten beide Varianten (Sind fuumlr einen Autohersteller beide Triple gepflegt) werden auch beide Varianten zuruumlckgeliefert

ndash Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht gegenseitig

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 9: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Literalen

Literalendash Daten

exw exp test exx exp testde exy exp test^^xsdstring exz exp 42^^xsdinteger

ndash QuerySELECT node WHERE node exp ldquotestrdquo

Liefert nur

Genaue Uumlbereinstimmung gefordert

ndash Aber Ausnahme bei numerischen TypenSELECT node WHERE node exp 42

Liefert

Datentyp wird aus syntaktischer Form bestimmt

node

exz

node

exw

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Blank Nodes

Blank Nodes (gekennzeichnet durch _xyz)ndash In Anfragen

Koumlnnen an Stelle von Subjekt oder Objekt stehen ID beliebig (aber nur einmal pro Anfrage verwenden) Variablen die nicht ausgewaumlhlt werden koumlnnen

ndash In Ergebnissen Platzhalter fuumlr unbekannte Elemente Ids beliebig aber evtl an anderen Ergebnisteil gebunden

ndash Beispiel (basierend auf Daten des letzten Beispiels)SELECT node name WHERE node exhatNamen name

ndash Ergebnis kann unterschiedliche Formen annehmen

node name

_b ldquoVolkswagenrdquo

_a ldquoAudirdquo

node name

_a ldquoVolkswagenrdquo

_b ldquoAudirdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Gruppierung

Gruppierung

ndash Anfragemuster koumlnnen durch und zu Gruppen zusammengefasst und verschachtelt werden

ndash BeispielSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

x exhatGruendungsjahr

ndash Aber ohne zusaumltzliche Konstrukte nicht sonderlich sinnvoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Optionale Muster

OPTIONALndash Angabe optionaler Teile eines Musters

SELECT x name firmensitz WHERE

x rdftype exAutohersteller OPTIONAL x exhatFirmensitzIn firmensitz OPTIONAL x exhatNamen name

ndash Ergebnis kann teilweise ungebunden sein

praktisch wenn nicht alle Daten vorhanden sind man aber auch nicht unbedingt alle Daten benoumltigt

x name firmensitz

exVolkswagen ldquoVolkswagenrdquo ldquoWolfsburgrdquo

exAudi ldquoIngolstadtrdquo

exPorsche ldquoPorscherdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Alternative Muster

UNIONndash Angabe alternativer Teile eines Musters

SELECT x firmensitz WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz

ndash Ergebnis ist die Vereinigung (logisches ODER) der Ergebnismengen beider moumlglichen Varianten

ndash Gelten beide Varianten (Sind fuumlr einen Autohersteller beide Triple gepflegt) werden auch beide Varianten zuruumlckgeliefert

ndash Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht gegenseitig

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 10: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Behandlung von Blank Nodes

Blank Nodes (gekennzeichnet durch _xyz)ndash In Anfragen

Koumlnnen an Stelle von Subjekt oder Objekt stehen ID beliebig (aber nur einmal pro Anfrage verwenden) Variablen die nicht ausgewaumlhlt werden koumlnnen

ndash In Ergebnissen Platzhalter fuumlr unbekannte Elemente Ids beliebig aber evtl an anderen Ergebnisteil gebunden

ndash Beispiel (basierend auf Daten des letzten Beispiels)SELECT node name WHERE node exhatNamen name

ndash Ergebnis kann unterschiedliche Formen annehmen

node name

_b ldquoVolkswagenrdquo

_a ldquoAudirdquo

node name

_a ldquoVolkswagenrdquo

_b ldquoAudirdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Gruppierung

Gruppierung

ndash Anfragemuster koumlnnen durch und zu Gruppen zusammengefasst und verschachtelt werden

ndash BeispielSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

x exhatGruendungsjahr

ndash Aber ohne zusaumltzliche Konstrukte nicht sonderlich sinnvoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Optionale Muster

OPTIONALndash Angabe optionaler Teile eines Musters

SELECT x name firmensitz WHERE

x rdftype exAutohersteller OPTIONAL x exhatFirmensitzIn firmensitz OPTIONAL x exhatNamen name

ndash Ergebnis kann teilweise ungebunden sein

praktisch wenn nicht alle Daten vorhanden sind man aber auch nicht unbedingt alle Daten benoumltigt

x name firmensitz

exVolkswagen ldquoVolkswagenrdquo ldquoWolfsburgrdquo

exAudi ldquoIngolstadtrdquo

exPorsche ldquoPorscherdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Alternative Muster

UNIONndash Angabe alternativer Teile eines Musters

SELECT x firmensitz WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz

ndash Ergebnis ist die Vereinigung (logisches ODER) der Ergebnismengen beider moumlglichen Varianten

ndash Gelten beide Varianten (Sind fuumlr einen Autohersteller beide Triple gepflegt) werden auch beide Varianten zuruumlckgeliefert

ndash Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht gegenseitig

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 11: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Gruppierung

Gruppierung

ndash Anfragemuster koumlnnen durch und zu Gruppen zusammengefasst und verschachtelt werden

ndash BeispielSELECT name firmensitz WHERE

x exhatFirmensitzIn firmensitz x exhatNamen name

x exhatGruendungsjahr

ndash Aber ohne zusaumltzliche Konstrukte nicht sonderlich sinnvoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Optionale Muster

OPTIONALndash Angabe optionaler Teile eines Musters

SELECT x name firmensitz WHERE

x rdftype exAutohersteller OPTIONAL x exhatFirmensitzIn firmensitz OPTIONAL x exhatNamen name

ndash Ergebnis kann teilweise ungebunden sein

praktisch wenn nicht alle Daten vorhanden sind man aber auch nicht unbedingt alle Daten benoumltigt

x name firmensitz

exVolkswagen ldquoVolkswagenrdquo ldquoWolfsburgrdquo

exAudi ldquoIngolstadtrdquo

exPorsche ldquoPorscherdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Alternative Muster

UNIONndash Angabe alternativer Teile eines Musters

SELECT x firmensitz WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz

ndash Ergebnis ist die Vereinigung (logisches ODER) der Ergebnismengen beider moumlglichen Varianten

ndash Gelten beide Varianten (Sind fuumlr einen Autohersteller beide Triple gepflegt) werden auch beide Varianten zuruumlckgeliefert

ndash Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht gegenseitig

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 12: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Optionale Muster

OPTIONALndash Angabe optionaler Teile eines Musters

SELECT x name firmensitz WHERE

x rdftype exAutohersteller OPTIONAL x exhatFirmensitzIn firmensitz OPTIONAL x exhatNamen name

ndash Ergebnis kann teilweise ungebunden sein

praktisch wenn nicht alle Daten vorhanden sind man aber auch nicht unbedingt alle Daten benoumltigt

x name firmensitz

exVolkswagen ldquoVolkswagenrdquo ldquoWolfsburgrdquo

exAudi ldquoIngolstadtrdquo

exPorsche ldquoPorscherdquo

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Alternative Muster

UNIONndash Angabe alternativer Teile eines Musters

SELECT x firmensitz WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz

ndash Ergebnis ist die Vereinigung (logisches ODER) der Ergebnismengen beider moumlglichen Varianten

ndash Gelten beide Varianten (Sind fuumlr einen Autohersteller beide Triple gepflegt) werden auch beide Varianten zuruumlckgeliefert

ndash Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht gegenseitig

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 13: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Alternative Muster

UNIONndash Angabe alternativer Teile eines Musters

SELECT x firmensitz WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz

ndash Ergebnis ist die Vereinigung (logisches ODER) der Ergebnismengen beider moumlglichen Varianten

ndash Gelten beide Varianten (Sind fuumlr einen Autohersteller beide Triple gepflegt) werden auch beide Varianten zuruumlckgeliefert

ndash Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht gegenseitig

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 14: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Vorrangregelung

Kombination von UNION und OPTIONALSELECT x firmensitz name WHERE

x rdftype exAutohersteller x exhatFirmensitzIn firmensitz UNION x exhatHauptstandortIn firmensitz OPTIONAL x exhatNamen name

ndash OPTIONAL gilt immer genau fuumlr das Muster (die Mustergruppe) vor dem OPTIONAL steht

ndash UNION und OPTIONAL sind gleichwertig und beziehen sich beide immer auf alle links von ihnen stehende Ausdruumlcke

ndash Beispiel s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

s1 p1 o1 OPTIONAL s2 p2 o2 UNION s3 p3 o3 OPTIONAL s4 p4 o4 OPTIONAL s5 p5 o5

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 15: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER

FILTER

ndash Graphmuster-Vergleich fuumlhrt zu einer Menge von Ergebnissen bei der jedes Ergebnis (in unseren Beispielen jede Tabellenzeile) eine Menge an Variablen liefert die an eine oder mehrere RDF Elemente gebunden sind

ndash Mit der SPARQL Anweisung FILTER kann man die Menge der Ergebnisse weiter einschraumlnken

ndash FILTER wird eine Operation uumlbergeben die als Ergebnis einen boolschen Wert liefert

ndash Nur Ergebnisse fuumlr die der Wert TRUE zuruumlckgeliefert wird werden in die Ergebnismenge uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 16: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Wofuumlr

Warum benoumltigt man FILTER

Manche Anfragen mit reinem Mustervergleich nicht moumlglich

ndash Welche Personen sind zwischen 18 und 23 Jahre altndash Der Vorname welcher Personen beginnt mit einem ldquoArdquondash Welche Attribute sind in deutscher Sprache vorhanden

Hierbei helfen uns FILTER weiter

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 17: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Beispiel

Beispiel zu FILTER

PREFIX dc lthttppurlorgdcelements11gtPREFIX ns lthttpexampleorgnsgtSELECT title price WHERE

x nsprice price FILTER (price lt 305)

x dctitle title

ndash Schluumlsselwort FILTER gefolgt von Ausdruck in Klammernndash Filter liefern Wahrheitswertendash Viele Filterfunktionen aus XqueryXPath Standard uumlbernommen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 18: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER ndash Operatoren

Vergleichsoperatoren lt lt= = gt= gt =ndash Vergleich von Literalen gemaumlszlig ldquonatuumlrlicherrdquo Reihenfolge

Numerisch nach Wert Strings alphabetisch Boolean (TRUE gt FALSE) hellip

ndash Unterstuumltzung fuumlr Numerische Datentypen (xsdint hellip) xsddateTime xsdstring xsdBoolean

ndash Andere Typen und RDF-Elemente unterstuumltzen nur = und =ndash Vergleich von Literalen inkompatibler Typen nicht moumlglich

zB xsdinteger und xsdstring Arithmetische Operatoren +-

ndash Nur fuumlr numerische Typenndash Verwendung zur Berechnung von Werten in Filterbedingungen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 19: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

RDF spezifische Filterfunktionen in SPARQL

Operator BeschreibungErlaubter Typ fuumlr A

BOUND( A ) Gibt an ob die Variable A gebunden ist Variable

isIRI( A ) isURI (A)

Gibt an ob das Element eine IRIURI ist RDF-Element

isBLANK( A ) Gibt an ob das Element ein BlankNode ist RDF-Element

isLITERAL( A ) Gibt an ob das Element ein Literal ist RDF-Element

STR( A ) Darstellung von URIs und Literalen als xsdstring URI Literal

LANG( A )Sprachangabe eines Literals (leer wenn nicht vorhanden) Literal

DATATYPE( A )Datentyp eines Literals Wenn Literal ungetypt und ohne Sprachangabe xsdstring

Literal

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 20: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FILTER - Funktionen

Weitere RDF spezifische Filterfunktionen in SPARQL

Mehrere Filter koumlnnen mittels ampamp bzw || verbunden werden sowie mit negiert werden

Operator Beschreibung

sameTERM( A B ) Pruumlfen ob A und B die gleichen RDF Terme sind

LangMATCHES(AB) Pruumlfen ob A und B die gleichen Sprachangaben sind

REGEX( A B )Pruumlfen ob in String A der Regulaumlre Ausdruck B vorkommt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 21: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Loumlsungen und Modifikatoren

SELECT Anfragen generieren unsortierte Folgen von Ergebnissen

Zum Teil sind auch unerwuumlnschte Ergebnisse enthalten Manche Saumltze koumlnnen mehrfach vorhanden sein

Hier kommen Modifikatoren zum Einsatzndash Solution Sequence Modifiers

Modifikatoren bieten uns Moumlglichkeiten zurndash Sortierung ORDER BYndash Entfernung doppelter Ergebnisse DISTINCT REDUCEDndash Aufteilung durch LIMIT und OFFSET

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 22: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash ORDER BY

ORDER BYndash Sortierung von Ergebnismengenndash Variablen nach denen sortiert werden soll werden nacheinander

aufgefuumlhrtndash Mit ASC( ) und DESC( ) kann aufsteigend bzw absteigend

sortiert werdenndash URIs werden alphabetisch als Zeichenketten sortiertndash Reihenfolge zwischen unterschiedlichen Elementarten

ungebundene Variable lt leerer Knoten lt URIs lt RDF Literale

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX ex lthttpwwwexampleorggtSELECT name WHERE x foafname name x exemployeeId empID ORDER BY name DESC(empID)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 23: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash DISTINCT REDUCED

DISTINCT REDUCED Beispielprefix foaf lthttpxmlnscomfoaf01gt _x foafname Alice _x foafmbox ltmailtoaliceexamplecomgt _y foafname Alice _y foafmbox ltmailtoasmithexamplecomgt _z foafname Alice _z foafmbox ltmailtoalicesmithexamplecomgt

SELECT name WHERE x foafname name

SELECT DISTINCT name WHERE x foafname name

SELECT REDUCED name WHERE x foafname name

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

name

ldquoAlicerdquo

ldquoAlicerdquo

ldquoAlicerdquo

v v

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 24: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash LIMIT und OFFSET

LIMITndash Nur eine bestimmte Anzahl an Ergebniszeilen ausgebenndash Definition durch Maximalwertndash 0 Keine Ergebnisse negative Werte nicht erlaubt

OFFSETndash Ergebnisausgabe erst ab angegebener Zeile beginnenndash Offset von 0 hat keinen Effekt

LIMIT und OFFSET machen nur Sinn in Verbindung mit ORDER BY da sonst Reihenfolge nicht vorhersagbar

BeispielPREFIX foaf lthttpxmlnscomfoaf01gtSELECT name WHERE x foafname name ORDER BY name LIMIT 5 OFFSET 10

ndash Nur fuumlnf Ergebniszeilen liefern beginnend ab der elften (3 Seite)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 25: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Modifikatoren Reihenfolge

Reihenfolge der Modifikatoren bei der Verarbeitung

1 Sortierung anhand von ORDER BY

2 Entfernung nicht ausgewaumlhlter Variablen3 Entfernung doppelter Ergebnisse (DISTINCT)

4 Entfernung der Ergebniszeilen vor dem OFFSET

5 Entfernung der uumlberschuumlssigen Zeilen nach LIMIT

Hinweisndash ORDER BY wird vor Entfernung nicht ausgewaumlhlter Variablen

ausgefuumlhrt Sortierung auch nach nicht ausgewaumlhlten Variablen moumlglichrarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 26: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Anfragetypen

Anfragetypen in SPARQLndash Bereits kennengelernt SELECT

Liefert als Ergebnis eine Tabelle mit den Variablenwerten Einfach sequentiell zu verarbeiten Struktur und Semantische Verknuumlpfung der Werte geht leider

verloren

ndash CONSTRUCT Liefert einen RDF-Graph der durch Ersetzung von Variablen in einer

Menge von Triple-Templates konstruiert wird

ndash ASK Liefert einen Wahrheitswert der aussagt ob ein Anfrage-Muster in

einem Graph gefunden werden kann oder nicht

ndash DESCRIBE Liefert einen RDF-Graph der gefundene Ressourcen beschreibt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 27: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - CONSTRUCT

CONSTRUCTndash Liefert einen RDF-Graph als Ruumlckgabewertndash Auch praktisch um Teilgraphen zu extrahierenndash Sequentielle Verarbeitung des Ergebnisses kompliziertndash Ungebundene Variablen koumlnnen nicht behandelt werdenndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafmbox ltmailtoaliceexampleorggt

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX vcard lthttpwwww3org2001vcard-rdf30gtCONSTRUCT lthttpexampleorgpersonAlicegt vcardFN name WHERE x foafname name

prefix vcard lthttpwwww3org2001vcard-rdf30gt lthttpexampleorgpersonAlicegt vcardFN Alice

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 28: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - ASK

ASKndash Pruumlft ob ein Muster in einem Graph vorkommtndash Ruumlckgabe ist ein boolscher Wert (truefalse)ndash Beispiel

prefix foaf lthttpxmlnscomfoaf01gt _a foafname Alice _a foafhomepage lthttpworkexampleorgalicegt _b foafname Bob _b foafmbox ltmailtobobworkexamplegt

PREFIX foaf lthttpxmlnscomfoaf01gtASK x foafname Alice

true

Daten

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 29: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - DESCRIBE

DESCRIBEndash Liefert einen RDF-Graph der die in der Anfrage angegebenen

Ressourcen beschreibtndash Nicht genau spezifiziert

Was beschrieben wird obliegt dem SPARQL Prozessorndash Beispiel

PREFIX ent lthttporgexamplecomemployeesgtDESCRIBE x WHERE x entemployeeId 1234

prefix foaf lthttpxmlnscomfoaf01gt prefix vcard lthttpwwww3org2001vcard-rdf30gt prefix exOrg lthttporgexamplecomemployeesgt prefix rdf lthttpwwww3org19990222-rdf-syntax-nsgt prefix owl lthttpwwww3org200207owlgt

_a exOrgemployeeId 1234 foafmbox_sha1sum ABCD1234 vcardN [ vcardFamily Smith vcardGiven John ] foafmbox_sha1sum rdftype owlInverseFunctionalProperty

Anfrage

Ergebnis

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 30: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - Abkuumlrzungen

ndash Es kann ein leerer PREFIX definiert werdenndash Mit BASE kann ein Standard-Prefix festgelegt werden

BASE lthttpexampleorgbookgtPREFIX lthttpexampleorgontologygtSELECT $title WHERE ltbook1gt title title

ndash rdftype kann mit ldquoardquo abgekuumlrzt werdenSELECT $x WHERE $x a ltexBookgt

ndash RDF-Collections koumlnnen mit ( ) abgekuumlrzt werden(1 x 3) p w

Ist gleichbedeutend mit _b0 rdffirst 1 rdfrest _b1 _b1 rdffirst x rdfrest _b2 _b2 rdffirst 3 rdfrest rdfnil _b0 p w

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 31: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash RDF Dataset

Viele RDF Data stores bieten die Moumlglichkeit Triple uumlber mehrere Graphen zu verteilen und Informationen zu jedem einzelnen Graph aufzunehmen

ndash Eine Menge von Graphen nennt man RDF Dataset SPARQL Queries bieten die Moumlglichkeit Anfragen uumlber

mehrere Graphen verteilt zu stellen Jedes RDF-Dataset enthaumllt

ndash immer einen ldquoDefaultrdquo Graph ohne Namen undndash 0 oder mehr ldquobenamterdquo Graphen die jeweils durch eine

URI gekennzeichnet werden Eine Anfrage muss nicht den Default-Graph ansprechen

sondern kann sich auch rein auf die benamten Graphen beziehen

Der ldquoaktiverdquo Graph wird mit GRAPH gekennzeichnet

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 32: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash FROM (NAMED)

Das RDF Dataset das mit der Query abgefragt werden soll wird mit den Stichworten FROM bzw FROM NAMED zusammengesetzt

ndash Wenn weder FROM noch FROM NAMED angegeben sind wird das Standard RDF-Dataset der Implementierung verwendet

ndash Werden mehrere FROM Graphen angegeben entsteht der Default Graph durch einen Merge der mit FROM angegebenen Graphen

ndash Werden mehrere FROM NAMED Graphen angegeben aber kein FROM Graph ist der Default Graph leer

Beispiel-Anfrage (httpexampleorgdftttl enthaumllt hier Infos uumlber andere Graphen)

SELECT who g mbox FROM lthttpexampleorgdftttlgt FROM NAMED lthttpexampleorgalicegt FROM NAMED lthttpexampleorgbobgt WHERE g dcpublisher who GRAPH g x foafmbox mbox

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 33: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Anfrage auf einen Graph beschraumlnken

PREFIX foaf lthttpxmlnscomfoaf01gtPREFIX data lthttpexampleorgfoafgt

SELECT nick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH databobFoaf x foafmbox ltmailtobobworkexamplegt x foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 34: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Auf Graphnamen zugreifenndash Folgende Query matcht auf jeden der angegebenen Graphenndash Auf den Namen des Graphen kann dann mit der src Variable

zugegriffen werden

PPREFIX foaf lthttpxmlnscomfoaf01gt

SELECT src bobNick FROM NAMED lthttpexampleorgfoafaliceFoafgt FROM NAMED lthttpexampleorgfoafbobFoafgt WHERE GRAPH src x foafmbox ltmailtobobworkexamplegt x foafnick bobNick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 35: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL - GRAPH

Moumlgliche Graph URIs beschraumlnkenndash Auf eine Variable die in einem GRAPH-Abschnitt verwendet wurde

kann auch in einem anderen GRAPH-Abschnitt oder in einem Muster fuumlr den Default-Graph zugegriffen werden

PREFIX data lthttpexampleorgfoafgtPREFIX foaf lthttpxmlnscomfoaf01gtPREFIX rdfs lthttpwwww3org200001rdf-schemagt

SELECT mbox nick ppdFROM NAMED lthttpexampleorgfoafaliceFoafgtFROM NAMED lthttpexampleorgfoafbobFoafgtWHERE GRAPH dataaliceFoaf alice foafmbox ltmailtoaliceworkexamplegt foafknows whom whom foafmbox mbox rdfsseeAlso ppd ppd a foafPersonalProfileDocument GRAPH ppd w foafmbox mbox foafnick nick

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 36: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Result XML Format

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 37: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Wie sind Antworten auf SPARQL Queries formatiert

ndash Antwort auf CONSTRUCT und DESCRIBE ist ein RDF Graph rarr Antwort erfolgt zB als RDFXML

ndash Wie werden Antworten auf SELECT codiert Antwort ist eine Tabelle von Variablenwerten

ndash Wie werden Antworten auf ASK Queries codiert Antwort ist nur ein boolscher Wert

ndash Hierfuumlr gibt es das SPARQL Query Result Format

ndash MIME-Type applicationsparql-results+xmlndash Empfohlene Dateiendung srx

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 38: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Format definiert SPARQL Result Document

ndash XML Grundgeruumlst

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparqlshyresultsgt

ltheadgt hellip Hier stehen Header-Daten hellip ltheadgt

hellip Hier stehen die Resultate hellip

ltsparqlgt

ndash Head kann zB Referenz auf Metadaten enthaltenltlink href=metadatardfgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 39: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Head enthaumllt Elemente fuumlr alle angefragten Variablenndash Die Folge der Resultate (Element result) werden im Element results zusammengefasst

ndash Jedes Resultat enthaumllt ein oder mehrere binding Elemente Gebundene Variable wird mit Attribut name angegeben

ndash Binding-Typen RDF URI Reference Ultbinding name=rdquoxrdquogtlturigtUlturigtltbindinggt

RDF Literal Sltbinding name=rdquoyrdquogtltliteralgtSltliteralgtltbindinggt

RDF Literal S with language Lltbinding name=rdquozrdquogtltliteral xmllang=LgtSltliteralgtltbindinggt

RDF Typed Literal S with datatype URI Dltbinding name=rdquoardquogtltliteral datatype=DgtSltliteralgtltbindinggt

Blank Node label Iltbinding name=rdquobrdquogtltbnodegtIltbnodegtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 40: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL SELECT Queriesndash Beispiel

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=xgt ltvariable name=hpagegt ltvariable name=namegt ltheadgt ltresultsgt ltresultgt ltbinding name=xgt ltbnodegtr2ltbnodegt ltbindinggt ltbinding name=hpagegt lturigthttpworkexampleorgboblturigt ltbindinggt ltbinding name=namegt ltliteral xmllang=engtBobltliteralgt ltbindinggt hellip ltresultgt

ltresultgt hellip ltresultgt hellip ltresultsgtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 41: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Antwort-Format fuumlr SPARQL ASK Queries

ndash Head kann (Referenz auf) Metadaten enthaltenndash Element variable darf im Head nicht vorkommenndash Resultat wird im Element ldquobooleanrdquo zuruumlckgeliefert

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt

head hellip ltheadgt ltbooleangttrueltbooleangtltsparqlgt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 42: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Protokoll

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 43: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Protokoll zum Transport von SPARQL Queries zwischen Query Client und Query Prozessor

Bindings fuumlr HTTP und SOAP Definiert als einziges Interface SparqlQuery welches

wiederum die Methode query enthaumllt Query ist definiert nach dem In-Out message exchange

pattern welches folgende 2 Nachrichten definiert1 Nachricht

Ausgezeichnet durch Label ldquoInrdquo mit Richtung ldquoinrdquo Empfangen von einem Knoten N

2 Nachricht Ausgezeichnet durch Label ldquoOutrdquo mit Richtung ldquooutrdquo Gesendet an Knoten N

Bei Fehlern wird Out durch eine ldquoFaultrdquo Message ersetzt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 44: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Auszug aus der WSDL 20 Definitionlt-- Abstract SparqlQuery Interface rarrltinterface name=SparqlQuery styleDefault=httpwwww3org200601wsdlstyleirigt

lt-- the Interface Faults --gt ltfault name=MalformedQuery element=stmalformed-querygt ltfault name=QueryRequestRefused element=stquery-request-refusedgt

lt-- the Interface Operation --gt ltoperation name=query pattern=httpwwww3org200601wsdlin-outgt ltdocumentationgt The operation is used to convey queries and their results from clients to services and back again ltdocumentationgt ltinput messageLabel=In element=stquery-requestgt ltoutput messageLabel=Out element=stquery-resultgt lt-- the interface faults are out faults --gt ltoutfault ref=tnsMalformedQuery messageLabel=Outgt ltoutfault ref=tnsQueryRequestRefused messageLabel=Outgt ltoperationgtltinterfacegt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 45: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Anfrage wird in einem Element vom Typ stqueryshyrequest verpackt

ndash Enthaumllt einen Query String (Element query) undndash 0 oder mehr RDF Dataset Beschreibungen

Elemente defaultshygraphshyuri und namedshygraphshyuri Dataset kann auch mit FROM (NAMED) im Query angegeben werden Bei Abweichungen muumlssen die Angaben im Protokoll verwendet

werden

Antwort erfolgt in einem Element vom Typ stqueryshyresult

ndash Als SPARQL Result Document bei SELECT und ASK queries Element vbrsparql

ndash Als RDFXML fuumlr CONSTRUCT und DESCRIBE Element rdfRDF

ndash Fehler als MalformedQuery und QueryRequestRefused

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 46: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

HTTP Bindingsndash queryHttpGet und queryHttpPost fuumlr HTTP GET und POSTndash Faults werden an HTTP Status codes gebunden

MalformedQuery HTTP 400 Bad requestrarr QueryRequestRefused HTTP 500 Internal Server Errorrarr

ndash queryHttpGet sollte immer verwendet werden auszliger in Faumlllen in denen die URL-codierte Query an praktische Grenzen stoumlszligt

ndash Query wird im HTTP-Form-Parameter query uumlbergeben Query String muss URL-encodiert sein Gilt gleichfalls fuumlr GET und POST

ndash Dataset kann mit Anfrageparametern default-graph-uri und named-graph-uri angegeben werden

ndash Uumlber HTTP content negotiation kann erwuumlnschtes Ruumlckgabeformat fuumlr CONSTRUCT und DESCRIBE angegeben werden

zB textturtle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 47: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - HTTP Beispiel

PREFIX dc lthttppurlorgdcelements11gtSELECT book who WHERE book dccreator who

httpexampleorgsparqlquery=PREFIX20dc3A203Chttp3A2F2Fpurlorg2Fdc2Felements2F112F3E200ASELECT203Fbook203Fwho200AWHERE207B203Fbook20dc3Acreator203Fwho207Dampdefault-graph-uri=httpwwwexampleorggraph1

HTTP11 200 OKDate Fri 06 May 2005 205512 GMTServer Apache1329 (Unix) PHP434 DAV103Connection closeContent-Type applicationsparql-results+xml

ltxml version=10gtltsparql xmlns=httpwwww3org2005sparql-resultsgt ltheadgt ltvariable name=bookgt ltvariable name=whogt ltheadgt ltresults distinct=false ordered=falsegt ltresultgt ltbinding name=bookgtlturigthttpwwwexamplebookbook5lturigtltbindinggt ltbinding name=whogtltbnodegtr29392923r2922ltbnodegtltbindinggt ltresultgt ltresultsgtltsparqlgt

Query

GETRequestURL

HTTP Response

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 48: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SOAP Bindingsndash Binding querySoapndash Verwendet HTTP POST zum Transport von Anfragenndash WSDL Binding Definition

ltbinding name=querySoap interface=SparqlQuery type=httpwwww3org200601wsdlsoap wsoapversion=12 wsoapprotocol=httpwwww3org200305soapbindingsHTTPgt ltfault ref=tnsMalformedQuery wsoapcode=soapSender gt ltfault ref=tnsQueryRequestRefused wsoapcode=soapSender gt ltoperation ref=tnsquery wsoapmep=httpwwww3org200305soapmeprequest-response gtltbindinggt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 49: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Protokoll - SOAP BeispielPOST servicessparql-query HTTP11Content-Type applicationsoap+xmlAccept applicationsoap+xml multipartrelated textUser-Agent Axis121Host wwwexampleSOAPAction Content-Length 438

ltxml version=10 encoding=UTF-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegt ltsoapenvBodygtltquery-request xmlns=httpwwww3org200509sparql-protocol-typesgt ltquerygtSELECT z x y z FILTER regex(z Harry)ltquerygt ltquery-requestgtltsoapenvBodygtltsoapenvEnvelopegt

HTTP11 200 OKContent-Type applicationsoap+xml

ltxml version=10 encoding=utf-8gtltsoapenvEnvelope xmlnssoapenv=httpwwww3org200305soap-envelope xmlnsxsd=httpwwww3org2001XMLSchema xmlnsxsi=httpwwww3org2001XMLSchema-instancegtltsoapenvBodygtltquery-result xmlns=httpwwww3org200509sparql-protocol-typesgt ltns1sparql xmlnsns1=httpwwww3org2005sparql-resultsgt ltns1headgtltns1variable name=zgtltns1headgt ltns1results distinct=false ordered=falsegt ltns1resultgt ltns1binding name=zgt ltns1literalgtHarry Potter and the Chamber of Secretsltns1literalgt ltns1bindinggt ltns1resultgt hellip ltns1resultsgtltns1sparqlgtltquery-resultgtltsoapenvBodygtltsoapenvEnvelopegt

SOAPRequest

SOAPResponse

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 50: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

SPARQL Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 51: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Version 10 von SPARQL deckt nicht alles Erwuumlnschte ab SPARQL soll schnell weiterentwickelt werden Unter

httpwwww3orgTRsparql-features

werden die zukuumlnftigen Features von der SPARQL WG bekannt gegeben (Aktueller Entwurf vom 2 Juli 2009)

Fuumlr SPARQL 11 wurde am 162010 ein neuer Entwurf veroumlffentlicht Noch keine fertige Recommendation rarraber vermutlich bald

Unterteilung inndash Required Features - Werden auf die ein oder andere Art mit hoher

Wahrscheinlichkeit in der naumlchsten Version vorhanden seinndash Time permitting Features ndash Wenn genuumlgend Zeit vorhanden ist gehen

diese Features in den Standard ein

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 52: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Required featuresndash Aggregatfunktionenndash Subqueriesndash Negationndash Project Expressionsndash SPARQL Updatendash Dienstbeschreibung

Time-permitting featuresndash BGP Erweiterungen for entailment regimes (OWL RDFS RIF)ndash Eigenschaftspfadendash Verbreitete SPARQL Funktionen (eg String maninpulation)ndash Einfache verknuumlpfte Anfragenndash Verbesserung der Syntax

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 53: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Aggregatfunktionenndash Erlauben Operationen wie Zaumlhlen Bestimmung des numerischen

MaximumsMinimumsDurchschnitts durch das Zusammenfassen von Spaltenwerten

ndash Anwendungsfaumllle zB in der Datenanalyse Bestimmung der Anzahl von einander unterschiedlicher Ressourcen

die einem bestimmten Kriterium entsprechen Berechnung der Durchschnittsnote von Studenten gruppiert nach

dem Regierungsbezirk Summierung der Wahlkampfspenden gruppiert nach PLZ und Partei

ndash Muss im momentanen Standard durch externe Skripte realisiert werden

ndash Werden bereits zu unterschiedlichen Teilen von SPARQL Engines unterstuumltzt

Redland COUNT()rarr Jena ARQ COUNT() SUM()rarr Virtuoso AVG() COUNT() SUM() MIN() MAX() +customrarr ARC COUNT() MAX() MIN() AVG() SUM()rarr

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 54: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele zu Aggregatfunktionen

SELECT COUNT(person) AS alicesWHERE person name Alice

SELECT AVG(value) AS averageWHERE good a Widget value value

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 55: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Subqueriesndash Manchmal ist es notwendig die Resultate einer Anfrage an eine

weitere Anfrage weiterzugebenndash Momentan muss man dazu

Resultate der ersten Anfrage empfangen Mit speziellen Skripten verarbeiten Und sie dann fuumlr die zweite Anfrage verwenden

ndash Anwendungsfaumllle Die 10 letzten Blogeintraumlge herausfinden die von einem Autor

verfasst worden sind Eine Liste von Leuten mit deren Freunden abfragen mit jeweils nur

einem Namen pro Person Die Anzahl eindeutiger Ergebnisse beschraumlnken anhand der Anzahl

der Ressourcen anstatt anhand der Zahl der Loumlsungenndash Die genaue Syntax ist momentan noch nicht bestimmt

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 56: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiel zu Subqueries (wie in ARQ)

SELECT person name WHERE Alice foafknows person SELECT name WHERE person foafname name LIMIT 1

Vorhandene Implementierungen Virtuoso unterstuumltzt sowohl skalare Subqueries (an

allen Stellen an denen eine Variable auftreten kann) als auch Subqueries als abgeleitete Tabellen

ndash ARQ unterstuumltzt eingebettete SELECTS (siehe oben)

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 57: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Negationndash Viele Aufgaben erfordern es zu uumlberpruumlfen ob bestimmte Triple in

einem Graph vorkommen oder nichtndash Die Abwesenheit von Triplen zu uumlberpruumlfen ist ldquoNegation by failurerdquondash Auf Umwegen auch in SPARQL 10 moumlglichSELECT nameWHERE x foafgivenName name OPTIONAL x foafknows who FILTER (BOUND(who))

ndash Anwendungsfaumllle Alle Leute identifizieren die niemanden kennen oder eine

bestimmte Eigenschaft nicht besitzen Jeden Inhalt identifizieren der in einem bestimmten Review Prozess

noch keinem Lektor zugeordnet worden ist Kunden identifizieren die ein bestimmtes Objekt nicht erstanden

habenndash Realisierung entweder mit neuem Schluumlsselwort oder mit

Filterfunktion

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 58: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele (1 mit SeRQL MINUS und 2 mit UNSAID )SELECT x FROM x foafgivenName nameMINUS SELECT x FROM x foafgivenName name foafknows who

SELECT x WHERE x foafgivenName name UNSAID x foafknows who

Existierende Implementierungenndash RDFQuery UNSAID Syntaxrarrndash SeRQL MINUS Operatorrarrndash Jena ARQ NOT EXISTS (mit UNSAID als Alias)rarr

Vermutlich wird es UNSAIDndash Bereits fuumlr Version 10 vorgeschlagen aber nicht realisiert worden

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 59: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Project Expressionsndash Moumlglichkeit die Resultate von Expressions an Variablen zu binden

anstatt von lediglich RDF Termenndash Eine PE kann sein Eine Variable eine konstante URI ein konstantes

Literal ein beliebiger Ausdruck (inkl Funktionsaufrufe) uumlber Variablen oder Konstanten

ndash Bei Funktionen sind auch benutzerdefinierte denkbarndash Anwendungsfaumllle

Die Gesamtkosten einer Position in einer Bestellung als Produkt von zwei Variablen unit_cost quantity

Verwendung von SPARQL Accessoren um die in einem Dataset verwendeten Sprachen herauszufinden LANG(o)

Ruumlckliefern berechneter Werte wie etwa der aktuelle Wochentag exdayOfTheWeek(exToday())

Stringverarbeitung exsubstring(url 8 exlength(url))ndash In Verbindung mit Subqueries ein maumlchtiges Instrument fuumlr alle

moumlglichen Anwendungsfaumllle

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 60: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

BeispieleSELECT name (age gt 18) AS over18 WHERE person name name age age

SELECT fnstring-join(givenName surname) AS fullName WHERE person foafgivenname givenName foafsurname surname foafinterest trees

CONSTRUCT x foafname fullName WHERE SELECT fnstring-join(gn sn) AS fullName WHERE foafgivenname gn foafsurname sn

Existierende Implementierungenndash Redland ARQ (mit etwas anderer Syntax) Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 61: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

SPARQLUpdatendash Spracherweiterung um Veraumlnderungen an einem Graphen

auszudruumlckenndash Lehnt sich an SPARQL Syntax an

Wer SPARQL bereits kennt soll sich SPARQLUPDATE schnell aneignen koumlnnen

ndash Folgende Operationen sollen definiert werden Einfuumlgen neuer Triple in einen Graph Loumlschen vorhandener Triple Ausfuumlhren mehrerer UPDATE-Operationen mit einer Anfrage Im Store einen neuen Graph erstellen Einen im Store vorhandenen Graph loumlschen

ndash Wurde als Member Submission ins W3C eingebracht Stammt urspruumlnglich vom JenaARQ Projekt

ndash Jedoch einige Bedenken vorhanden Sicherheitsprobleme Transaktionssicherheit Wunsch auch nach

Operationen fuumlr das Modifizieren von Daten

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 62: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Beispiele

PREFIX dc lthttppurlorgdcelements11gtINSERT DATA lthttpexamplebook3gt dctitle A new book dccreator ANOther

DELETE book p v WHERE book dcdate date FILTER ( date lt 2000-01-01T000000^^xsddateTime ) book p v

Existierende Implementierungenndash JenaARQndash Virtuoso

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 63: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Time-permitting featuresndash Basic Graph Pattern Erweiterungen fuumlr Vererbungsordnungen

Durch erweiterte Semantik in zB RDFS und OWL werden beim Graphvergleich weitere Loumlsungen als nur die direkten moumlglich

ndash Eigenschaftspfade Viele Anfragen an RDF-Graphen erfordern das Traversieren hierarchischer

Datenstrukturen mit undefinierter Tiefendash Alle Elemente einer RDF-Collection zuruumlckgebenndash Alle Namen meiner Vorfahren (alle exmother und exfather)ndash Alle direkte und inderekte Oberklassen einer rdfsClass

ndash Haumlufig verwendete SPARQL Funktionen Viele Implementierungen bieten neben den von SPARQL vorgeschriebenen noch

weitere Funktionen Ein Teil davon soll in den Standard uumlbernommen werdenndash Basic Federated Queries

Gleichzeitiges Abfragen mehrerer SPARQL Endpointsndash Dienstbeschreibung

SPARQL Endpunkte sollen die von ihnen unterstuumltzten Faumlhigkeiten an Anfragende melden koumlnnen

ndash Uumlberarbeitung der SPARQL Syntax Vereinfachungen wie Kommas zwischen Variablen und Ausdruumlcken in SELECTS

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 64: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL ndash Upcoming Features

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 65: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Noch Fragen

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66
Page 66: Semantic Web Technologies - SS 2010 - 06 - SPARQL

Semantic Web Technologien SPARQLSteffen Schloumlnvoigt HTWG Konstanz Sommersemester 2010

SPARQL

Literaturndash Buch ldquoSemantic Web Grundlagenrdquo Springer Verlag 2008

Pascal Hitzler Markus Kroumltzsch Sebastian Rudolph York SureISBN 978-3-540-33993-9

ndash W3C SPARQL Query Language for RDFhttpwwww3orgTRrdf-sparql-query

ndash W3C SPARQL Protocol for RDFhttpwwww3orgTRrdf-sparql-protocol

ndash W3C SPARQL Query Results XML Formathttpwwww3orgTRrdf-sparql-XMLres

ndash W3C SPARQL New Features and Rationalhttpwwww3orgTRsparql-features

ndash

  • Folie 1
  • Folie 2
  • Folie 3
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
  • Folie 8
  • Folie 9
  • Folie 10
  • Folie 11
  • Folie 12
  • Folie 13
  • Folie 14
  • Folie 15
  • Folie 16
  • Folie 17
  • Folie 18
  • Folie 19
  • Folie 20
  • Folie 21
  • Folie 22
  • Folie 23
  • Folie 24
  • Folie 25
  • Folie 26
  • Folie 27
  • Folie 28
  • Folie 29
  • Folie 30
  • Folie 31
  • Folie 32
  • Folie 33
  • Folie 34
  • Folie 35
  • Folie 36
  • Folie 37
  • Folie 38
  • Folie 39
  • Folie 40
  • Folie 41
  • Folie 42
  • Folie 43
  • Folie 44
  • Folie 45
  • Folie 46
  • Folie 47
  • Folie 48
  • Folie 49
  • Folie 50
  • Folie 51
  • Folie 52
  • Folie 53
  • Folie 54
  • Folie 55
  • Folie 56
  • Folie 57
  • Folie 58
  • Folie 59
  • Folie 60
  • Folie 61
  • Folie 62
  • Folie 63
  • Folie 64
  • Folie 65
  • Folie 66