Semantic Web Technologies - SS 2010 - 06 - SPARQL
-
Upload
steffen-schloenvoigt -
Category
Technology
-
view
2.622 -
download
0
description
Transcript of 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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-