Semantic Web Grundlagen



Ähnliche Dokumente
RDF(S) & Datalog Regeln 10. Nov SPARQL Implemetierung 19. Jan. OWL Syntax & Intuition 14. Nov Ontology Editing 23. Jan

Anwendungsfall: Semantische Prozessmodellierung (C. Schäfer) Gruppenübung: Spezifikationsgerechte Anfrage an eigene Ontologie

Verknüpfte Daten abfragen mit SPARQL. Thomas Tikwinski, W3C.DE/AT

Semantik von SPARQL. Foliensatz: Markus Krötzsch, Sebastian Rudolph. Webbasierte Informationssysteme 15. November 2010

Semantic Web Grundlagen

Semantic Web Grundlagen

Informatik 12 Datenbanken SQL-Einführung

Semantic Web Technologies I! Lehrveranstaltung im WS10/11! Dr. Andreas Harth! Dr. Sebastian Rudolph!

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

Programmiersprachen und Übersetzer

Semantic Web Technologies 1

Semantic Web Technologies I

Grammatiken. Einführung

Binäre Suchbäume (binary search trees, kurz: bst)

Grundlagen der Künstlichen Intelligenz

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Semantic Web Technologies 1

Formale Sprachen und Grammatiken

Java Einführung Operatoren Kapitel 2 und 3

Organisatorisches: Inhalt. Die Abfragesprache SPARQL. Agenda

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

Einführung in. Logische Schaltungen

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Grundbegriffe der Informatik

Datenbanken Microsoft Access 2010

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

<is web> Information Systems & Semantic Web University of Koblenz Landau, Germany

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

5.2 Neue Projekte erstellen

Semantic Web Grundlagen

Theorie der Informatik

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

der Eingabe! Haben Sie das Ergebnis? Auf diesen schwarzen Punkt kommen wir noch zu sprechen.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Software Engineering Klassendiagramme Assoziationen

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Semantic Web Technologies I!

Theoretische Informatik I

Theoretische Grundlagen des Software Engineering

Übungen Programmieren 1 Felix Rohrer. Übungen

Organisatorisches: Inhalt. RDF Schema. Agenda

Variablen & erweiterte Aktionen nutzen

Projektgruppe. Knowledge Representation Persistence and Reasoning

Berechnungen in Access Teil I

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Access Verbrecherdatenbank Teil 3

Auswahlabfragen mit ACCESS

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

-Inhalte an cobra übergeben

Das Bayes-Theorem. Christian Neukirchen Gleichwertige Leistungsfeststellung, Juni 2005

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Probleme beim Arbeiten mit Variablen, Termen und Gleichungen

4 Aufzählungen und Listen erstellen

Das Handbuch zu KSystemLog. Nicolas Ternisien

Text-Zahlen-Formatieren

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

2.11 Kontextfreie Grammatiken und Parsebäume

Professionelle Seminare im Bereich MS-Office

Einführung und Motivation

Datenaufbereitung in SPSS. Daten zusammenfügen

Semantik von Formeln und Sequenzen

Informatik A ( Frank Hoffmann)

Zeichen bei Zahlen entschlüsseln

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

RDF und SPARQL. Kursfolien. Karin Haenelt

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Abfragen: Grundbausteine

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

SEP 114. Design by Contract

Rundung und Casting von Zahlen

Semantic Web Grundlagen

Organisatorisches: Inhalt. Ontology Engineering. Agenda

1 Mathematische Grundlagen

Grundlagen der Informatik I Informationsdarstellung

Reporting Services und SharePoint 2010 Teil 1

IV. Datenbankmanagement

Algorithmen & Datenstrukturen 1. Klausur

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Einführung in die Java- Programmierung

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Qualitätssicherung bei der mobilen Datenerfassung

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Access Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli inkl. zusätzlichem Übungsanhang ACC2010-UA

Cayuga. A General Purpose Event Monotoring System. David Pfeiffer. 19. Juli 2007

SEMINAR Modifikation für die Nutzung des Community Builders

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Hin zum perfekten Preis

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

N Bit binäre Zahlen (signed)

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Informatik-Sommercamp Mastermind mit dem Android SDK

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2)

Transkript:

Birte Glimm Institut für Künstliche Intelligenz 19. Dez 2011 Semantic Web Grundlagen SPARQL Syntax & Intuition Foliensatz adaptiert von M. Krötzsch. Die nichtkommerzielle Vervielfältigung, Verbreitung und Bearbeitung ist zulässig ( Lizenz CC-BY-NC).

2/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Organisatorisches: Inhalt Einleitung und XML 17. Okt Hypertableau II 12. Dez Einführung in RDF 20. Okt Übung 4 15. Dez RDF Schema 24. Okt SPARQL Syntax & Intuition 19. Dez fällt aus 27. Okt SPARQL Semantik 22. Dez Logik Grundlagen 31. Okt SPARQL 1.1 9. Jan Übung 1 3. Nov Übung 5 12. Jan Semantik von RDF(S) 7. Nov SPARQL Entailment 16. Jan RDF(S) & Datalog Regeln 10. Nov SPARQL Implemetierung 19. Jan OWL Syntax & Intuition 14. Nov Ontology Editing 23. Jan Übung 2 17. Nov Übung 6 26. Jan OWL & BLs 21. Nov Ontology Engineering 30. Jan OWL 2 24. Nov Linked Data 2. Feb Tableau 28. Nov SemWeb Anwendungen 6. Feb Übung 3 1. Dez Übung 7 9. Feb Blocking & Unravelling 5. Dez Wiederholung 13. Feb Hypertableau 8. Dez Übung 8 16. Feb Abfragen und RIF wurde gestrichen

3/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Die Abfragesprache SPARQL

3/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Die Abfragesprache SPARQL

4/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Agenda Einleitung und Motivation Einfache SPARQL-Anfragen Komplexe Graph-Muster in SPARQL Filter in SPARQL Ausgabeformate in SPARQL Modifikatoren in SPARQL Zusammenfassung Syntax SPARQL Semantik Umwandlung von Anfragen in SPARQL-Algebra Ausblick

4/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Agenda Einleitung und Motivation Einfache SPARQL-Anfragen Komplexe Graph-Muster in SPARQL Filter in SPARQL Ausgabeformate in SPARQL Modifikatoren in SPARQL Zusammenfassung Syntax SPARQL Semantik Umwandlung von Anfragen in SPARQL-Algebra Ausblick

5/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Anfragesprachen für das Semantic Web? Wie kann auf in RDF oder OWL spezifizierte Informationen zugegriffen werden?

5/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Anfragesprachen für das Semantic Web? Wie kann auf in RDF oder OWL spezifizierte Informationen zugegriffen werden? Abfrage von Informationen in RDF(S) Einfache Folgerung RDF-Folgerung RDFS-Folgerung Folgt ein bestimmter RDF-Graph aus einem gegebenen?

5/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Anfragesprachen für das Semantic Web? Wie kann auf in RDF oder OWL spezifizierte Informationen zugegriffen werden? Abfrage von Informationen in RDF(S) Einfache Folgerung RDF-Folgerung RDFS-Folgerung Folgt ein bestimmter RDF-Graph aus einem gegebenen? Abfrage von Informationen in OWL Logisches Schließen Folgt eine Subklassen-Beziehung aus einer OWL-Ontologie? Welches sind die Instanzen einer Klasse einer OWL-Ontologie?

6/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Genügen OWL und RDF nicht? Selbst OWL ist als Anfragesprache oft zu schwach Welche Zeichenketten in deutscher Sprache sind in der Ontologie angegeben? Welche Propertys verbinden zwei bestimmte Indiviuen? Welche Paare von Personen haben eine gemeinsames Elternteil? weder in RDF noch in OWL ausdrückbar.

6/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Genügen OWL und RDF nicht? Selbst OWL ist als Anfragesprache oft zu schwach Welche Zeichenketten in deutscher Sprache sind in der Ontologie angegeben? Welche Propertys verbinden zwei bestimmte Indiviuen? Welche Paare von Personen haben eine gemeinsames Elternteil? weder in RDF noch in OWL ausdrückbar. Anforderungen: Große Ausdruckstärke zur Beschreibung der gefragten Information Möglichkeiten zur Formatierung, Einschränkung und Manipulation der Ergebnisse

7/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Agenda Einleitung und Motivation Einfache SPARQL-Anfragen Komplexe Graph-Muster in SPARQL Filter in SPARQL Ausgabeformate in SPARQL Modifikatoren in SPARQL Zusammenfassung Syntax SPARQL Semantik Umwandlung von Anfragen in SPARQL-Algebra Ausblick

8/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 SPARQL SPARQL (sprich engl. sparkle) steht für SPARQL Protocol And RDF Query Language W3C Spezifikation seit 2008 Zur Zeit Erweiterung auf SPARQL 1.1 Anfragsprache zur Abfrage von Instanzen aus RDF-Dokumenten Große praktische Bedeutung Teile der SPARQL 1.0 Spezifikation Anfragesprache: Thema dieser Vorlesung Ergebnisformat: Darstellung von Ergebnissen in XML Anfrageprotokoll: Übermittlung von Anfragen und Ergebnissen

9/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Teile der SPARQL 1.1 Spezifikation Query: Erweitert die Sprachkonstrukte für SPARQL Abfragen Update: zur Modifikation von RDF Graphen (Hinzufügen, Löschen) Graph Store HTTP Protocol: HTTP Operationen um eine Menge von Graphen zu verwalten Entailment Regimes: Abfragen auch von impliziten Konsequenzen Service Description: Methode zum Beschreiben von SPARQL Endpunkten Federation Extensions: Ausführung von verteilten Abfragen Query Results JSON Format: Abfrageergebnisse in JSON Query Results CSV, TSV Format: Komma und Tab separierte Abfrageergebnisse

10/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Einfache Anfragen Eine einfache Beispielanfrage: PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?name?mbox WHERE {?x foaf:name?name.?x foaf:mbox?mbox }

10/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Einfache Anfragen Eine einfache Beispielanfrage: PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?name?mbox WHERE {?x foaf:name?name.?x foaf:mbox?mbox } Die Bedingung der WHERE Klausel heisst query pattern/abfragemuster

10/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Einfache Anfragen Eine einfache Beispielanfrage: PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?name?mbox WHERE {?x foaf:name?name.?x foaf:mbox?mbox } Die Bedingung der WHERE Klausel heisst query pattern/abfragemuster Tripel mit Variablen heissen basic graph pattern (BGP) BGPs verwenden Turtle Syntax für RDF BGPs können Variablen (?variable oder $variable) enthalten

10/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Einfache Anfragen Eine einfache Beispielanfrage: PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?name?mbox WHERE {?x foaf:name?name.?x foaf:mbox?mbox } Die Bedingung der WHERE Klausel heisst query pattern/abfragemuster Tripel mit Variablen heissen basic graph pattern (BGP) BGPs verwenden Turtle Syntax für RDF BGPs können Variablen (?variable oder $variable) enthalten Abgekürzte IRIs sind möglich (PREFIX)

10/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Einfache Anfragen Eine einfache Beispielanfrage: PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?name?mbox WHERE {?x foaf:name?name.?x foaf:mbox?mbox } Die Bedingung der WHERE Klausel heisst query pattern/abfragemuster Tripel mit Variablen heissen basic graph pattern (BGP) BGPs verwenden Turtle Syntax für RDF BGPs können Variablen (?variable oder $variable) enthalten Abgekürzte IRIs sind möglich (PREFIX) Abfrageergebnis für die selektierten Variablen (SELECT)

11/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Beispielergebnis BGP: {?x foaf:name?name.?x foaf:mbox?mbox} @prefix foaf: http://xmlns.com/foaf/0.1/. _:a foaf:name "Birte Glimm" ; foaf:mbox "b.glimm@googlemail.com" ; foaf:icqchatid "b.glimm" ; foaf:aimchatid "b.glimm". _:b foaf:name "Sebastian Rudolph" ; foaf:mbox <rudolph@kit.edu>. _:c foaf:name "Pascal Hitzler" ; foaf:aimchatid "phi". foaf:icqchatid rdfs:subpropertyof foaf:nick. foaf:name rdfs:domain foaf:person. BGP Matching Ergebnis (Tabelle mit einer Zeile je Ergebnis): x name mbox _ :a "Birte Glimm" "b.glimm@googlemail.com" _ :b "Sebastian Rudolph" <mailto:rudolph@kit.edu>

12/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Beispielergebnis PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?name?mbox WHERE {?x foaf:name?name.?x foaf:mbox?mbox } BGP Matching Ergebnis: x name mbox _ :a "Birte Glimm" "b.glimm@googlemail.com" _ :b "Sebastian Rudolph" <mailto:rudolph@kit.edu> Abfrageergebnis: name "Birte Glimm" "Sebastian Rudolph" mbox "b.glimm@googlemail.com" <mailto:rudolph@kit.edu>

13/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Einfache Graph-Muster Die grundlegenden Anfragemuster sind einfache Graph-Muster oder basic graph patterns (BGPs) Menge von RDF-Tripeln in Turtle-Syntax Turtle-Abkürzungen (mittels, und ;) zulässig Variablen werden durch? oder $ gekennzeichnet (?variable hat gleiche Bedeutung wie $variable) Variablen zulässig als Subjekt, Prädikat oder Objekt

13/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Einfache Graph-Muster Die grundlegenden Anfragemuster sind einfache Graph-Muster oder basic graph patterns (BGPs) Menge von RDF-Tripeln in Turtle-Syntax Turtle-Abkürzungen (mittels, und ;) zulässig Variablen werden durch? oder $ gekennzeichnet (?variable hat gleiche Bedeutung wie $variable) Variablen zulässig als Subjekt, Prädikat oder Objekt Zulässig lesbar: PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?rf456df?ac66sB WHERE {?h4df8q foaf:name?rf456df.?h4df8q foaf:mbox?ac66sb } (semantisch äquivalent zur vorherigen Anfrage)

14/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Was bedeuten leere Knoten in SPARQL? Leere Knoten in Anfragemustern: Zulässig als Subjekt oder Objekt ID beliebig, aber niemals gleiche ID mehrfach pro Anfrage Verhalten sich wie Variablen, die nicht ausgewählt werden können

14/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Was bedeuten leere Knoten in SPARQL? Leere Knoten in Anfragemustern: Zulässig als Subjekt oder Objekt ID beliebig, aber niemals gleiche ID mehrfach pro Anfrage Verhalten sich wie Variablen, die nicht ausgewählt werden können Leere Knoten in Ergebnissen: Platzhalter für unbekannte Elemente IDs beliebig, aber eventuell an andere Ergebnisteile gebunden: subj Wert _:a "zum" _:b "Beispiel" subj Wert _:y "zum" _:g "Beispiel" subj Wert _:z "zum" _:z "Beispiel"

15/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Datasets und FROM (NAMED) Keine FROM Klausel notwendug Jeder SPARQL Service spezifiziert ein Dataset bestehend aus einem Default Graphen und keinem oder mehr benannten Graphen (named graphs) Keine FROM Klausel Auswertung bzgl. des Default Graphen FROM NAMED in Kombination mit dem GRAPH Schlüsselwort Auswertung über den benannten Graphen FROM Klausel Erzeugung eines neuen Default Graphen für die Abfrage SELECT?name?mbox FROM NAMED <http://ex.org/a> <http://ex.org/b> WHERE { GRAPH?g {?x foaf:name?name.?x foaf:mbox?mbox } }

16/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Datentypen @prefix xsd: <http://www.w3.org/2001/xmlschema#>. @prefix ex: <http://example.org/>. ex:ex1 ex:p "test". ex:ex2 ex:p "test"^^xsd:string. ex:ex3 ex:p "test"@en. ex:ex4 ex:p "42"^^xsd:integer. Was liefert eine Anfrage mit folgendem Muster? {?subject <http://example.org/p> "test". }

16/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Datentypen @prefix xsd: <http://www.w3.org/2001/xmlschema#>. @prefix ex: <http://example.org/>. ex:ex1 ex:p "test". ex:ex2 ex:p "test"^^xsd:string. ex:ex3 ex:p "test"@en. ex:ex4 ex:p "42"^^xsd:integer. Was liefert eine Anfrage mit folgendem Muster? {?subject <http://example.org/p> "test". } ex:ex1 als einziges Ergebnis genaue Übereinstimmung der Datentypen gefordert Aber: Abkürzung für Zahlenwerte möglich {?subject <http://example.org/p> 42. } Datentyp wird aus syntaktischer Form bestimmt: xsd:integer (42), xsd:decimal (42.2), xsd:double (1.0e6)

17/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Agenda Einleitung und Motivation Einfache SPARQL-Anfragen Komplexe Graph-Muster in SPARQL Filter in SPARQL Ausgabeformate in SPARQL Modifikatoren in SPARQL Zusammenfassung Syntax SPARQL Semantik Umwandlung von Anfragen in SPARQL-Algebra Ausblick

18/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Gruppierende Graph-Muster Einfache Graph-Muster können durch {... } gruppiert werden. Beispiel: PREFIX ex: <http://example.org/> SELECT?titel?author WHERE { {?buch ex:publishedby <http://springer.com/verlag>.?buch ex:titel?titel. } { }?buch ex:author?author. } Sinnvoll erst bei Verwendung zusätzlicher Konstruktoren

19/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Optionale Muster Das Schlüsselwort OPTIONAL erlaubt die Angabe optionaler Teile eines Musters. Beispiel: {?book ex:publishedby <http://springer.com/verlag>. OPTIONAL {?book ex:titel?titel. } OPTIONAL {?book ex:author?author. } }

19/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Optionale Muster Das Schlüsselwort OPTIONAL erlaubt die Angabe optionaler Teile eines Musters. Beispiel: {?book ex:publishedby <http://springer.com/verlag>. OPTIONAL {?book ex:titel?titel. } OPTIONAL {?book ex:author?author. } } Teile eines Anfrageergebnisses können ungebunden sein: book titel author <http://ex.org/book1> "Titel1" <http://ex.org/author1> <http://ex.org/book2> "Titel2" <http://ex.org/book3> "Titel3" _:a <http://ex.org/book4> _:a <http://ex.org/book5>

20/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Alternative Muster Das Schlüsselwort UNION erlaubt die Angabe alternativer Teile eines Musters. Example: {?book ex:publishedby <http://springer.com/verlag>. {?book ex:author?author. } UNION {?book ex:editor?author. } } Ergebnis entspricht Vereinigung der Ergebnisse mit einer der beiden Bedingungen Anm.: Gleiche Variablennamen in beiden Teilen von UNION beeinflussen sich nicht

21/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Kombination von Optionen und Alternativen (1) Wie sind Kombinationen von OPTIONAL und UNION zu verstehen? {?book ex:publishedby <http://springer.com/verlag>. {?book ex:author?author. } UNION {?book ex:editor?author. } OPTIONAL {?author ex:surname?name. } } Vereinigung zweier Muster mit angefügtem optionalem Muster oder Vereinigung zweier Muster, wobei das zweite einen optionalen Teil hat?

21/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Kombination von Optionen und Alternativen (1) Wie sind Kombinationen von OPTIONAL und UNION zu verstehen? {?book ex:publishedby <http://springer.com/verlag>. {?book ex:author?author. } UNION {?book ex:editor?author. } OPTIONAL {?author ex:surname?name. } } Vereinigung zweier Muster mit angefügtem optionalem Muster oder Vereinigung zweier Muster, wobei das zweite einen optionalen Teil hat? Erste Interpretation korrekt: {?book ex:publishedby <http://springer.com/verlag>. { {?book ex:author?author. } UNION {?book ex:editor?author. } } OPTIONAL {?author ex:surname?name. } }

22/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Kombination von Optionen und Alternativen (2) Allgemeine Regeln OPTIONAL bezieht sich immer auf genau ein gruppierendes Muster rechts davon. OPTIONAL und UNION sind gleichwertig und beziehen sich auf jeweils alle links davon stehenden Ausdrücke (linksassoziativ)

23/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Kombination von Optionen und Alternativen (3) Beispiel: { {s1 p1 o1} OPTIONAL {s2 p2 o2} UNION {s3 p3 o3} OPTIONAL {s4 p4 o4} OPTIONAL {s5 p5 o5} }

23/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Kombination von Optionen und Alternativen (3) Beispiel: { {s1 p1 o1} OPTIONAL {s2 p2 o2} UNION {s3 p3 o3} OPTIONAL {s4 p4 o4} OPTIONAL {s5 p5 o5} } bedeutet: { { { { {s1 p1 o1} OPTIONAL {s2 p2 o2} } UNION {s3 p3 o3} } OPTIONAL {s4 p4 o4} } OPTIONAL {s5 p5 o5} }

24/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Agenda Einleitung und Motivation Einfache SPARQL-Anfragen Komplexe Graph-Muster in SPARQL Filter in SPARQL Ausgabeformate in SPARQL Modifikatoren in SPARQL Zusammenfassung Syntax SPARQL Semantik Umwandlung von Anfragen in SPARQL-Algebra Ausblick

25/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Wozu Filter? Viele Anfragen sind auch mit komplexen Graph-Mustern nicht möglich: Welche Personen sind zwischen 18 und 23 Jahre alt? Der Nachname welcher Personen enthält einen Bindestrich? Welche Texte in deutscher Sprache sind in der Ontologie angegeben? Filter als allgemeiner Mechanismus für solche Ausdrucksmittel

26/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Filter in SPARQL Beispiel: PREFIX ex: <http://example.org/> SELECT?book WHERE {?book ex:publishedby <http://springer.com/verlag>.?book ex:price?price FILTER (?price < 35) } Schlüsselwort FILTER, gefolgt von Filterausdruck in Klammern Filterbedingungen liefern Wahrheitswerte (und ev. auch Fehler) Viele Filterfunktionen nicht durch RDF spezifiziert Funktionen teils aus XQuery/XPath-Standard für XML übernommen

27/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Filterfunktionen: Vergleiche und Arithmetik Vergleichoperatoren: <, =, >, <=, >=,!= Vergleich von Datenliteralen gemäß der jeweils natürlichen Reihenfolge Unterstützung für numerische Datentypen, xsd:datetime, xsd:string (alphabetische Ordnung), xsd:boolean (1 > 0) für andere Typen und sonstige RDF-Elemente nur = und!= verfügbar kein Vergleich von Literalen inkompatibler Typen (z.b. xsd:string und xsd:integer)

27/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Filterfunktionen: Vergleiche und Arithmetik Vergleichoperatoren: <, =, >, <=, >=,!= Vergleich von Datenliteralen gemäß der jeweils natürlichen Reihenfolge Unterstützung für numerische Datentypen, xsd:datetime, xsd:string (alphabetische Ordnung), xsd:boolean (1 > 0) für andere Typen und sonstige RDF-Elemente nur = und!= verfügbar kein Vergleich von Literalen inkompatibler Typen (z.b. xsd:string und xsd:integer) Arithmetische Operatoren: +, -, *, / Unterstützung für numerische Datentypen Verwendung zur Kombination von Werten in Filterbedingungen Bsp.: FILTER(?gewicht/(?groesse *?groesse) >= 25 )

28/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Filterfunktionen: Spezialfunktionen für RDF (1) SPARQL unterstützt auch RDF-spezifische Filterfunktionen: BOUND(A) true falls A eine gebundene Variable ist isuri(a) true falls A eine URI ist isblank(a) true falls A ein leerer Knoten ist isliteral(a) true falls A ein RDF-Literal ist STR(A) lexikalische Darstellung (xsd:string) von RDF-Literalen oder URIs LANG(A) Sprachcode eines RDF-Literals (xsd:string) oder leerer String falls kein Sprachcode DATATYPE(A) Datentyp-URI eines RDF-Literals (xsd:string bei ungetypten Literalen ohne Sprachangabe)

29/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Filterfunktionen: Spezialfunktionen für RDF (2) Weitere RDF-spezifische Filterfunktionen: sameterm(a,b) langmatches(a,b) REGEX(A,B) true, falls A und B dieselben RDF-Terme sind true, falls die Sprachangabe A auf das Muster B passt true, falls in der Zeichenkette A der reguläre Ausdruck B gefunden werden kann Beispiel: PREFIX ex: <http://example.org/> SELECT?book WHERE {?book ex:review?text. FILTER ( langmatches( LANG(?text), "de") ) }

30/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Filterfunktionen: Boolesche Operatoren Filterbedingungen können mit Booleschen Operatoren verknüpft werden: &&,,! Teilweise auch durch Graph-Muster ausdrückbar: Konjunktion entspricht Angaben mehrerer Filter Disjunktion entspricht Anwendung von Filtern in alternativen Mustern

31/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Agenda Einleitung und Motivation Einfache SPARQL-Anfragen Komplexe Graph-Muster in SPARQL Filter in SPARQL Ausgabeformate in SPARQL Modifikatoren in SPARQL Zusammenfassung Syntax SPARQL Semantik Umwandlung von Anfragen in SPARQL-Algebra Ausblick

32/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Ausgabeformatierung mit SELECT Bisher waren alle Ergebnisse Tabellen: Ausgabeformat SELECT Syntax: SELECT <Variablenliste> oder SELECT * Vorteil Einfache sequentielle Abarbeitung von Ergebnissen Nachteil Struktur/Beziehungen der Objekte im Ergebnis nicht offensichtlich

33/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Ausgabeformatierung mit CONSTRUCT Kodierung von Ergebnissen in RDF-Graphen: Ausgabeformat CONSTRUCT Syntax: CONSTRUCT <RDF-Schablone in Turtle> PREFIX ex: <http://example.org/> CONSTRUCT {?person ex:mailbox?email.?person ex:telefon?telefon. } WHERE {?person ex:email?email.?person ex:tel?telefon. }

33/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Ausgabeformatierung mit CONSTRUCT Kodierung von Ergebnissen in RDF-Graphen: Ausgabeformat CONSTRUCT Syntax: CONSTRUCT <RDF-Schablone in Turtle> PREFIX ex: <http://example.org/> CONSTRUCT {?person ex:mailbox?email.?person ex:telefon?telefon. } WHERE {?person ex:email?email.?person ex:tel?telefon. } Vorteil Stukturiertes Ergebnis mit Beziehungen zwischen Elementen Nachteile Sequentielle Abarbeitung von Ergebnissen erschwert Keine Behandlung von ungebundenen Variablen

34/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 CONSTRUCT Schablonen mit Leeren Knoten @prefix foaf: <http://xmlns.com/foaf/0.1/>. _:a foaf:firstname "Alice" ; foaf:surname "Hacker". _:b foaf:firstname "Bob" ; foaf:surname "Hacker".

34/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 CONSTRUCT Schablonen mit Leeren Knoten @prefix foaf: <http://xmlns.com/foaf/0.1/>. _:a foaf:firstname "Alice" ; foaf:surname "Hacker". _:b foaf:firstname "Bob" ; foaf:surname "Hacker". PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> CONSTRUCT {?x vcard:n _:v. _:v vcard:givenname?gname ; vcard:familyname?fname } WHERE {?x foaf:firstname?gname.?x foaf:surname?fname }

34/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 CONSTRUCT Schablonen mit Leeren Knoten @prefix foaf: <http://xmlns.com/foaf/0.1/>. _:a foaf:firstname "Alice" ; foaf:surname "Hacker". _:b foaf:firstname "Bob" ; foaf:surname "Hacker". PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> CONSTRUCT {?x vcard:n _:v. _:v vcard:givenname?gname ; vcard:familyname?fname } WHERE {?x foaf:firstname?gname.?x foaf:surname?fname } Erzeugt den folgenden RDF Graphen: @prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>. _:v1 vcard:n _:x. _:x vcard:givenname "Alice" ; vcard:familyname "Hacker". _:v2 vcard:n _:z. _:z vcard:givenname "Bob" ; vcard:familyname "Hacker".

35/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Weitere Formate: ASK und DESCRIBE SPARQL unterstützt zwei weitere Ausgabeformate: ASK prüft nur, ob es Ergebnisse gibt, keine Parameter DESCRIBE (informativ) liefert zu jeder gefundenen URI eine RDF-Beschreibung (anwendungsabhängig) DESCRIBE?x WHERE {?x <http://ex.org/employeeid> "1234" } Kann als Ergebnis z.b. die folgende Ausgabe haben (ohne Prefix Deklarationen): _:a exorg:employeeid "1234" ; foaf:mbox_sha1sum "ABCD1234" ; vcard:n [ vcard:family "Smith" ; vcard:given "John" ]. foaf:mbox_sha1sum rdf:type owl:inversefunctionalproperty.

36/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Agenda Einleitung und Motivation Einfache SPARQL-Anfragen Komplexe Graph-Muster in SPARQL Filter in SPARQL Ausgabeformate in SPARQL Modifikatoren in SPARQL Zusammenfassung Syntax SPARQL Semantik Umwandlung von Anfragen in SPARQL-Algebra Ausblick

37/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Wozu Modifikatoren? Bisher nur grundsätzliche Formatierungseinstellungen für Ergebnisse: Wie kann man definierte Teile der Ergebnismenge abfragen? Wie werden Ergebnisse geordnet? Können wiederholte Ergebniszeilen sofort entfernt werden? Modifikatoren der Lösungssequenz (solution sequence modifiers)

38/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Ergebnisse Sortieren Sortierung von Ergebnissen mit Schlüsselwort ORDER BY SELECT?book?price WHERE {?book <http://example.org/price>?price. } ORDER BY?price

38/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Ergebnisse Sortieren Sortierung von Ergebnissen mit Schlüsselwort ORDER BY SELECT?book?price WHERE {?book <http://example.org/price>?price. } ORDER BY?price Sortierung wie bei Filter-Vergleichoperatoren, Sortierung von URIs alphabetisch als Zeichenketten Reihenfolge zwischen unterschiedlichen Arten von Elementen: Ungebundene Variable < leere Knoten < URIs < RDF-Literale Nicht jede Möglichkeit durch Spezifikation definiert

39/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Ergebnisse sortieren Weitere mögliche Angaben: ORDER BY DESC(?price): absteigend ORDER BY ASC(?price): aufsteigend, Voreinstellung ORDER BY DESC(?price),?titel: hierarchische Ordnungskriterien

40/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 LIMIT, OFFSET und DISTINCT Einschränkung der Ergebnismenge: LIMIT: maximale Anzahl von Ergebnissen (Tabellenzeilen) OFFSET: Position des ersten gelieferten Ergebnisses SELECT DISTINCT: Entfernung von doppelten Tabellenzeilen SELECT DISTINCT?book?price WHERE {?book <http://example.org/price>?price. } ORDER BY?price LIMIT 5 OFFSET 25 LIMIT und OFFSET nur mit ORDER BY sinnvoll!

41/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Kombination von Modifikatoren Reihenfolge bei Abarbeitung von Modifikatoren: 1. Sortierung gemäß ORDER BY 2. Entfernung der nicht ausgewählten Variablen 3. Entfernung doppelter Ergebnisse (DISTINCT) 4. Enfernung der ersten OFFSET Ergebnisse 5. Entfernung aller Ergebnisse bis auf LIMIT Sortierung auch nach nicht ausgewählten Variablen möglich ORDER BY nicht nur für SELECT relevant

42/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Agenda Einleitung und Motivation Einfache SPARQL-Anfragen Komplexe Graph-Muster in SPARQL Filter in SPARQL Ausgabeformate in SPARQL Modifikatoren in SPARQL Zusammenfassung Syntax SPARQL Semantik Umwandlung von Anfragen in SPARQL-Algebra Ausblick

43/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Vorgestellte SPARQL-Merkmale im Überblick Grundstruktur PREFIX WHERE Ausgabeformate SELECT CONSTRUCT ASK DESCRIBE Graph-Muster Basic Graph Patterns {... } OPTIONAL UNION Filter BOUND isuri isblank isliteral STR LANG DATATYPE sameterm langmatches REGEX Modifikatoren ORDER BY LIMIT OFFSET DISTINCT

44/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 SPARQL 1.1 Erweiterungen SPARQL 1.1 vorerst ausgelassen Aggregate Subqueries Negation Ausdrücke in der SELECT Klausel Property Paths Assignment/Zuweisung CONSTRUCT Kurzform Weitere Funktionen und Operatoren Vorlesung 16: SPARQL 1.1

44/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 SPARQL 1.1 Erweiterungen SPARQL 1.1 vorerst ausgelassen Aggregate Subqueries Negation Ausdrücke in der SELECT Klausel Property Paths Assignment/Zuweisung CONSTRUCT Kurzform Weitere Funktionen und Operatoren Vorlesung 16: SPARQL 1.1 Nun erst einmal Semantik!

45/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Agenda Einleitung und Motivation Einfache SPARQL-Anfragen Komplexe Graph-Muster in SPARQL Filter in SPARQL Ausgabeformate in SPARQL Modifikatoren in SPARQL Zusammenfassung Syntax SPARQL Semantik Umwandlung von Anfragen in SPARQL-Algebra Ausblick

46/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Wozu Semantik? Bisher lediglich informelle Darstellung von SPARQL Anwender: Welche Antworten kann ich auf meine Anfrage erwarten? Entwickler: Wie genau soll sich meine SPARQL-Implementierung verhalten? Hersteller: Ist mein Produkt bereits SPARQL-konform? Formale Semantik schafft (hoffentlich) Klarheit...

47/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Semantik von Anfragesprachen (1) Semantik formaler Logik (siehe Vorlesung 5): Modelltheoretische Semantik: Welche Interpretationen erfüllen eine Wissensbasis? Beweistheoretische Semantik: Welche Ableitungen aus einer Wissenbasis sind zulässig?...

47/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Semantik von Anfragesprachen (1) Semantik formaler Logik (siehe Vorlesung 5): Modelltheoretische Semantik: Welche Interpretationen erfüllen eine Wissensbasis? Beweistheoretische Semantik: Welche Ableitungen aus einer Wissenbasis sind zulässig?... Semantik von Programmiersprachen: Axiomatische Semantik: Welche logischen Aussagen gelten für ein Programm? Operationale Semantik: Wie wirkt sich die Abbarbeitung eines Programms aus? Denotationelle Semantik: Wie kann ein Programm als Eingabe/Ausgabe-Funktion abstrakt dargestellt werden? Was tun mit Anfragesprachen?

48/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Semantik von Anfragesprachen (2) Anfragefolgerung (query entailment) Anfrage als Beschreibung zulässiger Anfrageergebnisse Datenbasis als Menge logischer Annahmen (Theorie) Ergebnis als logische Schlussfolgerung Bsp.: OWL DL und RDF(S) als Anfragesprachen, konjunktive Anfragen

48/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Semantik von Anfragesprachen (2) Anfragefolgerung (query entailment) Anfrage als Beschreibung zulässiger Anfrageergebnisse Datenbasis als Menge logischer Annahmen (Theorie) Ergebnis als logische Schlussfolgerung Bsp.: OWL DL und RDF(S) als Anfragesprachen, konjunktive Anfragen Anfragealgebra Anfrage als Rechenvorschrift zur Ermittlung von Ergebnissen Datenbasis als Eingabe Ergebnis als Ausgabe Bsp.: Relationale Algebra für SQL, SPARQL-Algebra

49/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Agenda Einleitung und Motivation Einfache SPARQL-Anfragen Komplexe Graph-Muster in SPARQL Filter in SPARQL Ausgabeformate in SPARQL Modifikatoren in SPARQL Zusammenfassung Syntax SPARQL Semantik Umwandlung von Anfragen in SPARQL-Algebra Ausblick

50/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra {?book ex:price?price. FILTER (?price < 15) OPTIONAL {?book ex:titel?titel } {?book ex:author ex:shakespeare } UNION {?book ex:author ex:marlowe } } Semantik einer SPARQL-Anfrage: 1. Umwandlung der Anfrage in einen algebraischen Ausdruck 2. Berechnung des Ergebnisses dieses Ausdrucks

51/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra {?book ex:price?price FILTER (?price < 15) OPTIONAL {?book ex:titel?titel } {?book ex:author ex:shakespeare } UNION {?book ex:author ex:marlowe } } Achtung: Filter beziehen sich immer auf die gesamte Gruppe in der sie auftauchen

52/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra {?book ex:price?price OPTIONAL {?book ex:titel?titel } {?book ex:author ex:shakespeare } UNION {?book ex:author ex:marlowe } FILTER (?price < 15) } 1. Auflösen von abgekürzten IRIs

53/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra {?book <http://ex.org/price>?price OPTIONAL {?book <http://ex.org/titel>?titel } {?book <http://eg.org/author> <http://eg.org/shakespeare> } UNION {?book <http://eg.org/author> <http://eg.org/marlowe> } FILTER (?price < 15) }

53/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra {?book <http://ex.org/price>?price OPTIONAL {?book <http://ex.org/titel>?titel } {?book <http://eg.org/author> <http://eg.org/shakespeare> } UNION {?book <http://eg.org/author> <http://eg.org/marlowe> } FILTER (?price < 15) } 2. Ersetzung einfacher Graph-Muster mit Operator Bgp( )

54/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra { Bgp(?book <http://eg.org/price>?price) OPTIONAL {Bgp(?book <http://eg.org/titel>?titel)} {Bgp(?book <http://eg.org/author> <http://eg.org/shakespeare>)} UNION {Bgp(?book <http://eg.org/author> <http://eg.org/marlowe>)} FILTER (?price < 15) }

54/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra { Bgp(?book <http://eg.org/price>?price) OPTIONAL {Bgp(?book <http://eg.org/titel>?titel)} {Bgp(?book <http://eg.org/author> <http://eg.org/shakespeare>)} UNION {Bgp(?book <http://eg.org/author> <http://eg.org/marlowe>)} FILTER (?price < 15) } 3. Einfügung des LeftJoin( ) Operators für optionale Teile

55/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra { LeftJoin(Bgp(?book <http://eg.org/price>?price), Bgp(?book <http://eg.org/titel>?titel), true) {Bgp(?book <http://eg.org/author> <http://eg.org/shakespeare>)} UNION {Bgp(?book <http://eg.org/author> <http://eg.org/marlowe>)} FILTER (?price < 15) }

55/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra { LeftJoin(Bgp(?book <http://eg.org/price>?price), Bgp(?book <http://eg.org/titel>?titel), true) {Bgp(?book <http://eg.org/author> <http://eg.org/shakespeare>)} UNION {Bgp(?book <http://eg.org/author> <http://eg.org/marlowe>)} FILTER (?price < 15) } 4. Kombination alternativer Muster mit Union( ) Operator Bezieht sich auf benachbarte Muster und hat höhere Priorität als Konjunktion (linksassoziativ)

56/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra { LeftJoin(Bgp(?book <http://eg.org/price>?price), Bgp(?book <http://eg.org/titel>?titel), true) Union(Bgp(?book <http://eg.org/author> <http://eg.org/shakespeare>), Bgp(?book <http://eg.org/author> <http://eg.org/marlowe>)) FILTER (?price < 15) }

56/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra { LeftJoin(Bgp(?book <http://eg.org/price>?price), Bgp(?book <http://eg.org/titel>?titel), true) Union(Bgp(?book <http://eg.org/author> <http://eg.org/shakespeare>), Bgp(?book <http://eg.org/author> <http://eg.org/marlowe>)) FILTER (?price < 15) } 5. Anwendung des Join( ) Operators um nicht-filter Elemente zu verbinden

57/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra { Join( LeftJoin(Bgp(?book <http://eg.org/price>?price), Bgp(?book <http://eg.org/titel>?titel), true), Union(Bgp(?book <http://eg.org/author> <http://eg.org/shakespeare>), Bgp(?book <http://eg.org/author> <http://eg.org/marlowe>))) FILTER (?price < 15) }

57/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra { Join( LeftJoin(Bgp(?book <http://eg.org/price>?price), Bgp(?book <http://eg.org/titel>?titel), true), Union(Bgp(?book <http://eg.org/author> <http://eg.org/shakespeare>), Bgp(?book <http://eg.org/author> <http://eg.org/marlowe>))) FILTER (?price < 15) } 6. Übersetzung einer Gruppe mit Filtern durch Filter( ) Operator

58/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra Filter(?price < 15, Join( LeftJoin(Bgp(?book <http://eg.org/price>?price), Bgp(?book <http://eg.org/titel>?titel), true), Union(Bgp(?book <http://eg.org/author> <http://eg.org/shakespeare>), Bgp(?book <http://eg.org/author> <http://eg.org/marlowe>))))

58/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Übersetzung in SPARQL-Algebra Filter(?price < 15, Join( LeftJoin(Bgp(?book <http://eg.org/price>?price), Bgp(?book <http://eg.org/titel>?titel), true), Union(Bgp(?book <http://eg.org/author> <http://eg.org/shakespeare>), Bgp(?book <http://eg.org/author> <http://eg.org/marlowe>)))) Online Umwandlungstool: http://sparql.org/query-validator.html

59/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Agenda Einleitung und Motivation Einfache SPARQL-Anfragen Komplexe Graph-Muster in SPARQL Filter in SPARQL Ausgabeformate in SPARQL Modifikatoren in SPARQL Zusammenfassung Syntax SPARQL Semantik Umwandlung von Anfragen in SPARQL-Algebra Ausblick

60/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Zusammenfassung Wir haben die SPARQL 1.0 Features durch Beispiele kennengelernt Grundlegende Strukturen (Prefixe, Muster) Ausgabeformate Einfache und komplexe Muster (Alternativen, Optionale Teile, Gruppen) Filter Modifikatoren Semantik definiert durch Übersetzung in SPARQL Algebra Bisher nur informell eingeführt

61/61 Birte Glimm Semantic Web Grundlagen 19. Dez 2011 Ausblick Offene Fragen Wie können wir SPARQL Algebra Objects auswerten? Wie funktioniert die systematische Algebra Übersetzung? Wie sind die neuen SPARQL 1.1 Features definiert? Wie funktioniert das SPARQL Protokoll? Wie können wir auch implizite Konsequenzen unter RDF Schema oder OWL Semantik abfragen? Wie schwer ist SPARQL (mit Entailment) zu implementieren? Welche Implementierungstechniken können wir anwenden?...