10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

84
Vorlesung Dr. Harald Sack Hasso-Plattner-Institut für Softwaresystemtechnik Universität Potsdam Wintersemester 2009/10 Semantic Web http://sw0910.blogspot.com / Blog zur Vorlesung: http://sewe0910.blogspot.com / Die nichtkommerzielle Vervielfältigung, Verbreitung und Bearbeitung dieser Folien ist zulässig (Lizenzbestimmungen CC-BY-NC ).

description

Diese Vorlesung gibt eine Einführung in die Schema-Beschreibungssprache RDFS, zeigt die Möglichkeit der Einbettung von RDF in HTML via RDFa, zeigt GRDDL zum Auslesen der RDFa Information aus HTML und behandelt detailliert die Abfragesprache SPARQL. Zusätzlich wird auf die Problematik der Implementierung unterschiedlicher Tripel Stores eingegangen.

Transcript of 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Page 1: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung

Dr. Harald Sack

Hasso-Plattner-Institut für Softwaresystemtechnik

Universität Potsdam

Wintersemester 2009/10

Semantic Web

http://sw0910.blogspot.com/

Blog zur Vorlesung: http://sewe0910.blogspot.com/Die nichtkommerzielle Vervielfältigung, Verbreitung und Bearbeitung dieser Folien ist zulässig (Lizenzbestimmungen CC-BY-NC).

Page 2: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

1. Einführung

2. Semantic Web BasisarchitekturDie Sprachen des Semantic Web - Teil 1

3. Wissensrepräsentation und LogikDie Sprachen des Semantic Web - Teil 2

4. Ontology Engineering

5. Semantic Web Applications

2

Semantic Web - Vorlesungsinhalt

Page 3: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

3

2. Semantic Web Basisarchitektur2.4 RDF Schema

Motivation für RDF Schema• Programm kann RDF-Daten definieren und nutzen….vorausgesetzt, dem

Programm ist bekannt, welche Terme benutzt werden können…

• z.B. •name, titel, jahr, … •name, blog, telefonnr…•author, cites, …

• Sind alle bekannt?Sind alle korrekt?Gibt es (logische) Beziehungen zwischen den Termen?

• Wir benötigen eine entsprechende Datendefinition RDF Schema

• offiziell: “RDF Vocabulary Description Language”

Page 4: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

Semantic Web Architektur4

URI / IRI

XML / XSDData Interchange: RDF

RDFS

Ontology: OWL Rule: RIF

Query:SPARQL

Proof

Unifying Logic

Cry

pto

Trust

Interface & Application

2. Semantic Web Basisarchitektur

Page 5: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

510.11.2009 – Vorlesung Nr. 41 2 3 5 6 7 8 9 1110 12

13

2. Semantic Web BasisarchitekturDie Sprachen des Semantic Web - Teil 1

2.1.Uniform Resource Identifier - URI

2.2.XML und XMLSchema

2.3.Resource Description Framework - RDF

2.4.RDF Schema

2.5.Wie kommt die Semantik ins WWW?

2.6.Abfragesprache SPARQL

2.7.Warum reicht RDF(S) noch nicht aus?

14

Semantic Web - Vorlesungsinhalt

Page 6: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

6

2. Semantic Web Basisarchitektur2.4 RDF Schema

Motivation für RDF Schema• Programm kann RDF-Daten definieren und nutzen….vorausgesetzt, dem

Programm ist bekannt, welche Terme benutzt werden können…

• z.B. •name, titel, jahr, … •name, blog, telefonnr…•author, cites, …

• Sind alle bekannt?Sind alle korrekt?Gibt es (logische) Beziehungen zwischen den Termen?

Page 7: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

7

2. Semantic Web Basisarchitektur2.4 RDF Schema

Motivation für RDF Schema• Programm kann RDF-Daten definieren und nutzen….vorausgesetzt, dem

Programm ist bekannt, welche Terme benutzt werden können…

• z.B. •name, titel, jahr, … •name, blog, telefonnr…•author, cites, …

• Sind alle bekannt?Sind alle korrekt?Gibt es (logische) Beziehungen zwischen den Termen?

• Wir benötigen eine entsprechende Datendefinition RDF Schema

• offiziell: “RDF Vocabulary Description Language”

Page 8: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

8

2. Semantic Web Basisarchitektur2.4 RDF Schema

RDF Schema• Erster W3C Draft im April 1998,

W3C Recommendation seit Feb. 2004.• RDFSchema spezifiziert ein Datenmodell, über das RDF-Statements

entworfen werden können • Abstrakter Datentyp (Klasse)

• Hierarchisches Klassenmodell und Vererbung (Subklassen)

• Syntax für gemeinsamen Datenaustausch

• = „Beschreibungssprache zur Definition strukturierter Vokabularien…“

• RDFSchema erlaubt:• Klassendefinitonen

•Klasseninstantiierung in RDF via <rdf:type>• Festlegung von Eigenschaften und Restriktionen (Properties)• Festlegung von Hierarchiebeziehungen

•Subklassen und Superklassen

Page 9: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

9

wird betreut vonhttp://hpi-web.de/ws0910#semanticweb http://hpi-web.de/HaraldSack

2. Semantic Web Basisarchitektur2.4 RDF Schema

RDF Schema -- ein Beispiel

RDFS

Vorlesung

Mitarbeiter

Prof. SeniorResearcher

Person

Lehrveranstaltung

Seminar

wird betreut von

domainrange

subClassOf

subClassOf

subClassOfsubClassOf

class

classclass class

classproperty

class

class

subClassOf

rdf:type rdf:typeRDF

Page 10: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

10

2. Semantic Web Basisarchitektur2.4 RDF Schema

RDFS Sprachkomponenten• Klassen

• rdfs:Resource jede Entität in einem RDF-Modell ist Instanz dieser Klasse

• rdf:Property Basisklasse für Eigenschaften

• rdfs:Class Klassenkonzept, legt ein abstraktes Objekt fest und dient in Verbindung mit rdf:type zur Erzeugung von Instanzen

• rdfs:Literal Klasse für Literalwerte, also Zeichenketten, …

• zusätzlich nochrdfs:Datatype, rdfs:XMLLiteral, rdfs:Container, rdfs:ContainerMembershipProperty

Page 11: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

11

2. Semantic Web Basisarchitektur2.4 RDF Schema

•RDFS Sprachkomponenten• Eigenschaften

• rdfs:subClassOftransitive Eigenschaft zur Festlegung von Vererbungshierarchien von Klassen

• rdfs:subPropertyOftransitive Eigenschaft zur Festlegung von Vererbungshierarchien von Eigenschaften

• rdfs:domain legt Anwendungsbereich einer Eigenschaft in Bezug auf eine Klasse fest

• rdfs:range legt Wertebereich einer Eigenschaft fest

Page 12: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

12

2. Semantic Web Basisarchitektur2.4 RDF Schema

RDFS Sprachkomponenten■ Eigenschaften

□ rdfs:subClassOftransitive Eigenschaft zur Festlegung von Vererbungshierarchien von Klassen

(1)

(2)

(3)

Page 13: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

13

2. Semantic Web Basisarchitektur2.4 RDF Schema

RDFS Sprachkomponenten■ Eigenschaften

□ rdfs:subPropertyOftransitive Eigenschaft zur Festlegung von Vererbungshierarchien von Eigenschaften

(1)

(2)

(3)

Page 14: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

14

2. Semantic Web Basisarchitektur2.4 RDF Schema

RDFS Sprachmodell (verkürzt...)

s – Subklassen-Beziehungent – Instanzen-Beziehungen

rdfs:Resourcerdfs:Class

t

ts

rdfs:Literal

t s

rdf:Property

t s

rdfs:range rdfs:domain

tt

rdfs:subClassOf

t rdfs:comment

t

rdf:typet

rdfs:subPropertyOf

t

Page 15: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

15

2. Semantic Web Basisarchitektur2.4 RDF Schema

RDFS Sprachkomponenten:• Weitere Eigenschaften

• rdfs:seeAlsostellt Beziehung einer Ressource zu einer anderen her, die diese erklärt

• rdfs:isDefinedBysubproperty zu rdf:seeAlso, stellt Beziehung von Ressource zu deren Definition (auch in RDFS) her

• rdfs:comment

Kommentar, gewöhnlich in Textform

• rdfs:label „lesbarer“ Name einer Ressource (im Gegensatz zu ID)

Page 16: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

16

wird betreut vonhttp://hpi-web.de/ws0910#semanticweb http://hpi-web.de/HaraldSack

2. Semantic Web Basisarchitektur2.4 RDF Schema

RDF Schema -- zurück zum Beispiel

Vorlesung

Mitarbeiter

Prof.

Person

Lehrveranstaltung

Seminar

wird betreut von

domainrange

subClassOf

subClassOf

subClassOfsubClassOf

class

classclass class

classproperty

class

class

subClassOf

rdf:type rdf:type

SeniorResearcher

RDFSTerminologiesches Wissen - T-Box

RDFAssertionales Wissen - A-Box

Page 17: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

17

2. Semantic Web Basisarchitektur2.4 RDF Schema

<?xml version="1.0" encoding="utf-8"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://hpi-web.de/WS0910#">

<rdfs:Class rdf:ID=“Lehrveranstaltung“> <rdfs:SubClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource“/></rdfs:Class><rdfs:Class rdf:ID=“Vorlesung“> <rdfs:SubClassOf rdf:resource=“Lehrveranstaltung“/></rdfs:Class> <rdfs:Class rdf:ID=“Seminar“> <rdfs:SubClassOf rdf:resource=“Lehrveranstaltung“/></rdfs:Class>

<rdfs:Class rdf:ID=“Person“> <rdfs:SubClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource“/></rdfs:Class><rdfs:Class rdf:ID=“Mitarbeiter“> <rdfs:SubClassOf rdf:resource=“Person“/></rdfs:Class><rdfs:Class rdf:ID=“SeniorResearcher“> <rdfs:SubClassOf rdf:resource=“Mitarbeiter“/></rdfs:Class>…

Page 18: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

18

2. Semantic Web Basisarchitektur2.4 RDF Schema

<rdf:Property rdf:ID=“wirdBetreutVon“> <rdfs:SubPropertyOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Property/> <rdfs:domain rdf:resource="Lehrveranstaltung“/> <rdfs:range rdf:resource=“Mitarbeiter“/></rdf:Property>

<rdf:Description rdf:about=“semanticweb“> <rdf:type rdf:resource=“Vorlesung“/></rdf:Description><rdf:Description rdf:about=“http://hpi-web.de/HaraldSack“> <rdf:type rdf:resource=“SeniorResearcher“/></rdf:Description>

<rdf:Description rdf:about=“semanticweb“> <wirdBetreutVon rdf:resource=“http://hpi-web.de/HaraldSack“/></rdf:Description>…</rdf:RDF>

RDFS – Teil2

Page 19: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

19

2. Semantic Web Basisarchitektur2.4 RDF Schema

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.@base < http://hpi-web.de/WS0910 >

:Lehrveranstaltung a rdfs:Class .:Vorlesung a rdfs:Class; rdfs:subClassOf :Lehrveranstaltung.:Seminar a rdfs:Class ; rdfs:subClassOf :Lehrveranstaltung.

:Person a rdfs:Class .:Mitarbeiter a rdfs:Class ; rdfs:subClassOf :Person .:SeniorResearcher a rdfs:Class ; rdfs:subClassOf :Mitarbeiter .

:wirdBetreutVon a rdfs:Property; rdfs:domain :Lehrveranstaltung ; rdfs:range :Mitarbeiter .

:semanticweb a :Vorlesung .:HaraldSack a :SeniorResearcher .:semanticweb :wirdBetreutVon :HaraldSack .

Turtle

Page 20: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

20

2. Semantic Web Basisarchitektur2.4 RDF Schema

RDFS Zusammenfassung:

• RDFSchema spezifiziert ein Datenmodell, über das RDF-Statements entworfen werden können

• Mehr als XML:

• (kleine) ontologische Einigung auf Modellierungs-primitive

• Möglichkeit eigene Vokabulare zu definieren

• Nächste Schritte:

• Logik

• Regeln

Page 21: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

2110.11.2009 – Vorlesung Nr. 41 2 3 5 6 7 8 9 1110 12

13

2. Semantic Web BasisarchitekturDie Sprachen des Semantic Web - Teil 1

2.1.Uniform Resource Identifier - URI

2.2.XML und XMLSchema

2.3.Resource Description Framework - RDF

2.4.RDF Schema

2.5.Wie kommt die Semantik ins WWW?

2.6.Abfragesprache SPARQL

2.7.Warum reicht RDF(S) noch nicht aus?

14

Semantic Web - Vorlesungsinhalt

Page 22: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

22

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

Semantische Annotation im WWW • Eigentlich kann RDF/XML direkt in ein HTML-Dokument via <head> und <script>-Element eingebettet werden

• In RFC 3870 wurde der Mime-Type application/rdf+xml definiert

<head> <title>My Document</title> <script type="application/rdf+xml"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:Description rdf:about="http://www.w3.org/" dc:title="W3C Homepage"/> </rdf:RDF> </script></head>

Page 23: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

23

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

Semantische Annotation im WWW • Das W3C empfiehlt die Einbettung von externen RDF-Dokumenten via

HTML <link>-Element

• Daneben können RDF-Dokumente auch via <a href=...> und einer entsprechenden Kennzeichnung (z.B. RDF-Logo) im <body> des HTML-Dokuments verlinkt werden

<link rel="meta" type="application/rdf+xml" href="Meta-Data-for-Web-Page.rdf"/>

Page 24: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

24

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

Semantische Annotation im WWW • Prinzipiell existieren heute zwei Möglichkeiten, strukturierte Daten mit

semantischen Annotationen im WWW-Dokumente explizit einzubetten

• Domain-spezifische Microformate

• Generisches RDFa und embedded RDF

Page 25: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

25

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

µformats -- Microformate • XHTML Markup, mit dem es möglich ist, (in einem begrenzten Umfang) Semantik

in einem HTML-Dokument auszudrücken

• Anwendungen können leichter Daten aus HTML-Dokumenten extrahieren

• Verwendung in folgenden XHTML-Tag Attributen:

• class

• rel

• rev

• Vordefinierte Standard-Microformate:

• hCard - Personendaten ( vCard, RFC2426)

• hCalender – Events

• rel-Tag – social tagging

• XFN – XHTML Friends Network

Page 26: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

26

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

µFormats -- Microformate • Beispiel:

<span class="vcard"> <span class="fn">Joe Blow</span> <span class="org">The Example Company</span> <span class="tel">604-555-1234</span> <a class="url" href="http://example.com/"> http://example.com/</a></span>

Page 27: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

27

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

µFormats -- Einsatz • Last.fm

Nutzerprofile und Geodaten, Veranstaltungen und CD-Bewertungen

• Mac webmailKontaktdaten

• LinkedInLebensläufe

• FlickrKontaktdaten, Geodaten

• WordPressSocial Networking

• SerendipityBookmarks

Page 28: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

28

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

µFormats -- Bewertung • Microformate nutzen vorhandene XHTML-Attribute um strukturierte Daten

zu kodieren

• Mit passenden XSLT Transformationen kann Microformat/XHTML in RDF umgewandelt werden

• Neues Microformat-Vokabular muss erst externe Konsolidierungsprozedur durchlaufen, bei der jedesmal auch ein neues XSLT Stylesheet entwickelt werden muss

• Wird mehr als ein Microformat-Vokabular in einer XHMTL-Seite genutzt, steigt die Komplexität rapide

• Es können Konflikte mit genutzte XHTML-Attributen auftreten

Page 29: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

29

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

Page 30: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

30

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

RDFa •RDFa = RDF in HTML attributes

• bringt generische RDF-Annotationen in XHTML-Dokumente

•RDFa nutzt

•bereits vorhandene XHTML-Attribute•href, content, rel, rev, und src

•neue XHTML-Attribute•about, datatype, property, resource und typeof

(aus XHTML2 Metainformation Attributes)

Page 31: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

31

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

RDFa • Unterscheidet grundsätzlich 2 Varianten von RDF-Triples

•Triple mit URI als Objekt•Triple mit Literal als Objekt

Subjekt Prädikat Objekt

Literal als Objekt

about propertycontent oder

#PCDATA

URI als Objekt about rel href

Page 32: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

32

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

RDFa • <span about=”subject”>...</span>

...erzeugt ein temporäres Subjekt für ein/mehrere Triples

• <a href=”object” rel=”predicate”>...</a>...definiert ein verlinktes Triple

• <span property=”predicate”>object</span>...definiert ein unverlinktes Triple

Page 33: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

33

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

RDFa -- einfaches Beispiel

...

<div xmlns:dc="http://purl.org/dc/elements/1.1/">

I'm currently reading

<span about=”urn:ISBN:0-596-00027-8”>

<span property="dc:title">Programming Perl</span>

by

<span property="dc:creator">Larry Wall</span>

</span>.</div>...

Page 34: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

34

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

RDFa -- einfaches Beispiel...<div typeof="foaf:Person" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <p property="foaf:name"> Alice Birpemswick </p> <p> Email: <a rel="foaf:mbox" href="mailto:[email protected]"> [email protected]</a> </p> <p> Phone: <a rel="foaf:phone" href="tel:+1-617-555-7332"> +1 617.555.7332</a> </p> <p> <img src="photo1.jpg" rel="dc:creator" rev="foaf:depicts" href="http://www.blogger.com/profile/1109404" /> </p></div>...

Page 35: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

35

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

RDFa -- einfaches Beispiel<div typeof="foaf:Person" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <p property="foaf:name"> Alice Birpemswick </p> <p> Email: <a rel="foaf:mbox" href="mailto:[email protected]"> [email protected]</a> </p> <p> Phone: <a rel="foaf:phone" href="tel:+1-617-555-7332"> +1 617.555.7332</a> </p> <p> <img src="photo1.jpg" rel="dc:creator" rev="foaf:depicts" href="http://www.blogger.com/profile/1109404" /> </p></div>

Page 36: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

36

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

RDFa -- einfaches Beispiel

<?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml" version="XHTML+RDFa 1.0" xml:lang="en"> <head>...</head> <body>...</body> </html></xml>

...und wie wird aus XHTML+RDFa dann RDF?

Page 37: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

37

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

GRDDL • Gleaning Resource Descriptions from Dialects of Languages

• GRDDL bietet einen einfachen Weg, um RDF-Daten aus XML-Dokumenten (insbesondere XHTML) zu gewinnen

• GRDDL verbindet Transformationen (XSLT Stylesheets), um

•RDFa•Mircoformats•RSS

• aus XHTML-Dokumenten herauszulösen

Page 38: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

38

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

GRDDL • Um ein Semantische Annotationen aus einem Dokument zu extrahieren

und in das RDF Format zu bringen, nutzt GRDDL folgende

• Schritte:

1.Erkennung der GRDDL Profil Metadaten

2.Beziehen der passenden Transformationsdaten

3.Anwenden der Transformationen zum Konvertieren in das RDF Format

Page 39: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

39

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

GRDDL

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head profile="http://www.w3.org/2003/g/data-view"> ... <link rel="transformation" href="http://www.w3.org/2002/12/cal/glean-hcal“ /> <link rel="transformation" href="http://www.w3.org/2003/12/rdf-in-xhtml-xslts/grokFOAF.xsl" /> <link rel="transformation" href="http://www.w3.org/2003/12/rdf-in-xhtml-xslts/grokCC.xsl" /> <link rel="transformation" href="http://www.w3.org/2003/12/rdf-in-xhtml-xslts/grokGeoURL.xsl" /> ... </head>...</html>

GRDDL Profildaten

GRDDL Transformationen

Page 40: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

40

2. Semantic Web Basisarchitektur2.5 Wie kommt die Semantic ins WWW?

GRDDL - Anwendungsbeispiel

Page 41: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

4110.11.2009 – Vorlesung Nr. 41 2 3 5 6 7 8 9 1110 12

13

2. Semantic Web BasisarchitekturDie Sprachen des Semantic Web - Teil 1

2.1.Uniform Resource Identifier - URI

2.2.XML und XMLSchema

2.3.Resource Description Framework - RDF

2.4.RDF Schema

2.5.Wie kommt die Semantik ins WWW?

2.6.Abfragesprache SPARQL

2.7.Warum reicht RDF(S) noch nicht aus?

14

Semantic Web - Vorlesungsinhalt

Page 42: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

Semantic Web Architektur42

URI / IRI

XML / XSDData Interchange: RDF

RDFS

Ontology: OWL Rule: RIF

Query:SPARQL

Proof

Unifying Logic

Cry

pto

Trust

Interface & Application

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

Page 43: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

43

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

Eine Abfragesprache für RDF• Wie gelangt man an das Wissen aus RDF/RDFS Wissensbasen?

• Manuelles Parsen/Auslesen und Kombinieren der RDF-Tripel sehr aufwändig

• Können Sie sich eine relationale Datenbank ohne SQL vorstellen?

• SPARQL Protocol and RDF Query Language ist

• eine Abfragesprache zur Traversierung von RDF-Graphen

• ein Protokoll-Layer, um SPARQL, z.B. via http zu nutzen

• ein XML-Rückgabeformat für SPARQL-Anfragen

• ein W3C Standard (seit Januar 2008)

• angelehnt an die Abfragesprache SQL

Page 44: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

44

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL•SPARQL erlaubt

• die Extraktion von Werten aus strukturierten und semi-strukturierten Daten als

• URIs, leere Knoten (Blank Nodes), typisierte und nicht-typisierte Literale.

• RDF Subgraphen

• die Erkundung von Daten über die Abfrage unbekannter Beziehungsstrukturen

• die Durchführung komplexer Join-Operationen über heterogene, verteilte Datenbanken in einer einzigen, einfachen Abfrage

• die Transformation von RDF-Daten von einem Vokabular in ein anderes

• Konstruktion neuer RDF Graphen basierend auf RDF Abfragegraphen

Page 45: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

45

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL• SPARQL Variablen werden an RDF-Terme gebunden

• z.B. ?journal, ?disease, ?price

• Wie in SQL erfolgt die Abfrage von Variablen über ein SELECT Statement

• z.B. SELECT ?article ?author ?published

• Ein SELECT-Statement liefert Abfrageergebnisse in Form einer Tabelle

?artist ?album ?times_platinum

Michael Jackson Thriller 27

Led Zepellin Led Zepellin IV 22

Pink Floyd The Wall 22

Page 46: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

46

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

Triple Pattern• SPARQL basiert auf Turtle Serialisierung.

• Ein Triple Pattern ist ein RDF-Triple, das an beliebiger Stelle (Subject, Predicate, Object) Variablen beinhalten kann.

•Triple Pattern = Turtle + Variables

• Beispiele:

• Finde Länder und ihre Hauptstädte:

•?country geo:capital ?capital .• Ausgehend von einem FOAF URI, finde Namen einer Person:

•<http://hpi-web.de/id#haraldsack> foaf:name ?surname .• Welche Personen tragen den Nachnamen „Schmidt“?

•?person pers:nachname “Schmidt“ .

Page 47: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

47

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

Einfache Abfrage Pattern• Triple Pattern können zu komplexen Suchabfragen kombiniert werden,

mit denen ein RDF-Graph auf einfache Weise traversiert werden kann.

• Finde Länder, ihre Hauptstädte und die Bevolkerungszahl:

•?country geo:capital ?capital .?country geo:population ?population .

• Ausgehend von einem FOAF URI, finde den Namen einer Person und ihrer Freunde:

•<http://hpi-web.de/id#haraldsack> foaf:name ?surname .<http://hpi-web.de/id#haraldsack> foaf:knows ?friend .?friend foaf:name ?friend_surname .

• Finde alle Vorgesetzten, der 3. Managementebene

•?emp hr:managedBy ?first_line .?first_line hr:managedBy ?second_line .?second_line hr:managedBy ?third_line .

Page 48: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

48

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Abfrageformat• angelehnt an SQL

• Triple im „WHERE“-Teil definieren Graph-Abfrage mit ?p und ?o als Variablen

• Abfrage liefert Tabelle mit passenden ?p, ?o Paaren

SELECT ?p, ?oWHERE { subject ?p ?o. }

subject

?o

?o

?o

?o

?p

?o

?p

?p

?p

Page 49: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

49

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Abfrageformat• Gebe alle Lehrveranstaltungen mit den zugehörigen Dozenten aus

• PREFIX - Legt einen oder mehrere Namespaces fest

• FROM - gibt ein oder mehrere RDF-Quellgraphen an

• BASE - legt Basis-URI fest, um relative URIs zu absoluten URIs zu ergänzen

PREFIX hpi: <http://hpi-web.de/WS0910#>SELECT ?vorlesung ?dozentFROM <http://hpi-web.de/WS0910.rdf> WHERE { ?x hpi:lehrveranstaltung ?vorlesung . ?y hpi:mitarbeiter ?dozent . ?x hpi:wirdBetreutVon ?y .}

Page 50: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

50

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Abfrageformat• Gebe alle Lehrveranstaltungen mit den zugehörigen Dozenten aus,

absteigend nach Dozenten geordnet, und zwar nur die Ergebnisse Nummer 11 bis 20

PREFIX hpi: <http://hpi-web.de/WS0910#>SELECT ?vorlesung ?dozentFROM <http://hpi-web.de/WS0910.rdf> WHERE { ?x hpi:lehrveranstaltung ?vorlesung . ?y hpi:mitarbeiter ?dozent . ?x hpi:wirdBetreutVon ?y .}ORDER BY DESC (?dozent)LIMIT 10OFFSET 10

Page 51: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

51

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Abfrageformat• Über das Schlüsselwort FILTER kann die Ergebnismenge eingeschränkt

werden

@prefix dc: <http://purl.org/dc/elements/1.1/> .@prefix : <http://example.org/book/> .@prefix ns: <http://example.org/ns#> .

:book1 dc:title "SPARQL Tutorial" .:book1 ns:price 42 .:book2 dc:title "The Semantic Web" .:book2 ns:price 23 . PREFIX dc: <http://purl.org/dc/elements/1.1/>

PREFIX ns: <http://example.org/ns#>SELECT ?title ?priceFROM <http://example.org/book.rdf> WHERE { ?x ns:price ?price . FILTER (?price < 30.5) ?x dc:title ?title . }

http://example.org/book.rdf

Page 52: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

52

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Abfrageformat• Über das Schlüsselwort OPTIONAL können optionale Elemente aus dem

RDF-Graphen selektiert werden

@prefix foaf: <http://xmlns.com/foaf/0.1/> .@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

_:a rdf:type foaf:Person ._:a foaf:name "Alice" ._:a foaf:mbox <mailto:[email protected]> ._:a foaf:mbox <mailto:[email protected]> .

_:b rdf:type foaf:Person ._:b foaf:name "Bob" . PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT ?name ?mboxFROM <http://example.org/adressen.rdf>WHERE { ?x foaf:name ?name . OPTIONAL { ?x foaf:mbox ?mbox }}

http://example.org/adressen.rdf

Page 53: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

53

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Abfrageformat• Über das Schlüsselwort UNION können Abfragen aus mehreren Graph-

Pattern kombiniert werden (ODER-Verknüpfung)

@prefix dc10: <http://purl.org/dc/elements/1.0/> .@prefix dc11: <http://purl.org/dc/elements/1.1/> .

_:a dc10:title "SPARQL Query Language Tutorial" ._:a dc10:creator "Alice" .

_:b dc11:title "SPARQL Protocol Tutorial" ._:b dc11:creator "Bob" .

_:c dc10:title "SPARQL" ._:c dc11:title "SPARQL (updated)" .

PREFIX dc10: <http://purl.org/dc/elements/1.0/>PREFIX dc11: <http://purl.org/dc/elements/1.1/>

SELECT ?titleFROM <http://example.org/books.rdf>WHERE { { ?book dc10:title ?title } UNION { ?book dc11:title ?title } }

http://example.org/books/

Page 54: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

54

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Abfrageformat•Kombination mehrerer Datenquellen:

•Default RDF-Graph

•Named RDF-Graph

•Named Graph kann explizit über das Schlüsselwort GRAPH angesprochen werden

GRAPH <http://example.org/graph1.rdf> { ?x foaf:mbox ?mbox }

Page 55: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

55

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Abfrageformat• Verwendung von Named Graphs

@prefix dc: <http://purl.org/dc/elements/1.1/> .

<http://example.org/bob> dc:publisher "Bob Hacker" .<http://example.org/alice> dc:publisher "Alice Hacker" .

Default Graph (stored at http://example.org/dft.ttl)

@prefix foaf: <http://xmlns.com/foaf/0.1/> .

_:a foaf:name "Bob" ._:a foaf:mbox <mailto:[email protected]> .

Named Graph: http://example.org/bob

@prefix foaf: <http://xmlns.com/foaf/0.1/> .

_:a foaf:name "Alice" ._:a foaf:mbox <mailto:[email protected]> .

Named Graph: http://example.org/alice

Page 56: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

56

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Abfrageformat• Verwendung von Named Graphs

PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX dc: <http://purl.org/dc/elements/1.1/>

SELECT ?who ?g ?mboxFROM <http://example.org/dft.ttl>FROM NAMED <http://example.org/alice>FROM NAMED <http://example.org/bob>WHERE{ ?g dc:publisher ?who . GRAPH ?g { ?x foaf:mbox ?mbox }}

Default Graph

Named Graph

Page 57: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

57

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Antwortformat• SPARQL Ergebnisse werden in Form wohlgeformter und valider XML-Dokumente

erbracht

• In einem <head>-Element werden alle Variablen der SPARQL-Query aufgelistet

<?xml version="1.0"?><sparql xmlns="http://www.w3.org/2005/sparql-results#"> ...</sparql>

<head> <variable name="x"/> <variable name="hpage"/> <variable name="name"/> <variable name="mbox"/> <variable name="blurb"/> </head>

Page 58: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

58

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Antwortformat• Für jedes SPARQL-Query Ergebnis steht ein <result>-Element

<?xml version="1.0"?><sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head> <variable name="x"/> ... </head> <results> <result> <binding name="x"> ... </binding> <binding name="hpage"> ... </binding> </result>

<result> ... </result> ... </results></sparql>

Page 59: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

59

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Antwortformat• Im <binding>-Element erfolgt die Bindung einer <head>-Variablen an einen

Ergebniswert

<result> <binding name="x"> <bnode>r2</bnode> </binding> <binding name="hpage"> <uri>http://work.example.org/bob/</uri> </binding> <binding name="name"> <literal xml:lang="en">Bob</literal> </binding> <binding name="age"> <literal datatype="http://www.w3.org/2001/XMLSchema#integer">30</literal> </binding> <binding name="mbox"> <uri>mailto:[email protected]</uri> </binding> </result>

Page 60: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

60

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Abfrageformat•Neben der SELECT-Abfrage erlaubt SPARQL noch folgende

Abfrageformate:

• ASK•liefert Boolesche Antwort („hat die Abfrage ein Ergebnis?“)

•Antwort wie bei SELECT als XML oder JSON

•CONSTRUCT•nutzt Variablenbindung, um neue RDF-Tripel zurückzuliefern

•Antwort als RDF/XML oder Turtle

•DESCRIBE•liefert Server-generiertes RDF zur Beschreibung der angefragten Ressourcen

•Antwort als RDF/XML oder Turtle

Page 61: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

61

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Konstrution von RDF-Graphen• CONSTRUCT definiert ein Template zur Konstruktion neuer RDF-Graphen

@prefix org: <http://example.com/ns#> .

_:a org:employeeName "Alice" ._:a org:employeeId 12345 .

_:b org:employeeName "Bob" ._:b org:employeeId 67890 .

data

PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX org: <http://example.com/ns#>

CONSTRUCT { ?x foaf:name ?name }WHERE { ?x org:employeeName ?name }

Page 62: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

62

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Konstrution von RDF-Graphen• Ergebnis einer CONSTRUCT-Query als serialisiertes RDF/XML

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description> <foaf:name>Alice</foaf:name> </rdf:Description> <rdf:Description> <foaf:name>Bob</foaf:name> </rdf:Description></rdf:RDF>

Page 63: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

63

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Protokoll• Methode zur Anfrage/Antwort von SPARQL Queries über http

• Eine SPARQL URI besteht aus drei Teilen:

1.Die URL eines SPARQL Endpoints (z.B. http://example.org/sparql)

2.Die abzufragenden RDF-Graphen (Optional, als Teil des Query-Strings, z.B. named-graph-uri=http://example.org/testrdf.rdf)

3.Der Query-String selbst (Als Teil des Query-Strings, z.B. query=SELECT...)

http://example.org/sparql?named-graph-uri=http%3A%2F%2Fexample.org%2Ftestrdf&query=SELECT+%3Freview_graph+WHERE+%7B%0D%0A++GRAPH+%3Freview_graph+%7B%0D%0A+++++%3Freview+rev%3Arating+10+.%0D%0A++%7D%0D%0A%7D

Page 64: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

64

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

SPARQL Protokoll -- Beispiel• Einfache SPARQL Query

• HTTP Trace der SPARQL Query

PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?book ?who WHERE { ?book dc:creator ?who }

GET /sparql/?query=EncodedQuery&default-graph-uri=http://www.other.example/books HTTP/1.1Host: www.other.exampleUser-agent: my-sparql-client/0.1

Page 65: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

65

2. Semantic Web Basisarchitektur2.6 Abfragesprache SPARQL

• HTTP Trace der SPARQL Antwort

HTTP/1.1 200 OKDate: Fri, 06 May 2008 20:55:12 GMTServer: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3Connection: closeContent-Type: application/sparql-results+xml<?xml version="1.0"?><sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head> <variable name="book"/> <variable name="who"/> </head> <results ordered="false" distinct="false"> <result> <binding name="who"> <literal>Bob Hacker</literal> </binding> <binding name=“book"> <literal>The Art of Hacking</literal> </binding> ...</sparql>

Page 66: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

6610.11.2009 – Vorlesung Nr. 41 2 3 5 6 7 8 9 1110 12

13

2. Semantic Web BasisarchitekturDie Sprachen des Semantic Web - Teil 1

2.1.Uniform Resource Identifier - URI

2.2.XML und XMLSchema

2.3.Resource Description Framework - RDF

2.4.RDF Schema

2.5.Wie kommt die Semantik ins WWW?

2.6.Abfragesprache SPARQL

2.7.Warum reicht RDF(S) noch nicht aus?

14

Semantic Web - Vorlesungsinhalt

Kurze Exkursion:Triple Stores

Page 67: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

67

Kurze Exkursion: Triple Stores

• Ein RDF Graph kann durch eine Menge von Tripeln (s,p,o) repräsentiert werden

• Oft werden Tripel in einem relationalen Datenbanksystem gespeichert

• Problem:• Wie soll man die Tripel speichern, damit Anfragen effizient

durchgeführt werden können?

Page 68: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

68

Kurze Exkursion: Triple Stores

• Wie soll man die Tripel speichern, damit Anfragen effizient durchgeführt werden können?

• 4 unterschiedliche Ansätze:• Giant Triple Storage• Property Tables• Vertically Partitioned Tables• Hexastore

Page 69: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

69

Kurze Exkursion: Triple Stores

Giant Triple Storage• Grundidee:

• Alle Tripel in einer einzigen Tabelle abspeichern• Performance abhängig von der geschickten Wahl des

richtigen IndexVorteile:• einfach zu implementieren• Funktioniert für große Mengen an Properties,

Wenn die richtigen Indices gewählt werden

Nachteile• Es fallen zahlreiche Self-Joins an...

Page 70: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

70

Kurze Exkursion: Triple Stores

Property Tables• Grundidee:

• entwickle relationales Datenbankschema aus RDF-Daten• sammle dazu mehrere Properties in eine Tabelle

Vorteile:• Gute relationale Tabellen, wenn die RDF-Daten strukturiert sind

Nachteile• Setzt Struktur auf semi-strukturierte Daten• Enthält zahlreiche „NULL“ Einträge• Korrekte Auswahl der Properties für Tabelle ist nicht trivial

Page 71: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

71

Kurze Exkursion: Triple Stores

Vertically Partitioned Tables• Grundidee:

• Erzeuge für jedes Property eine 2-spaltige Tabelle

Vorteile:• Sehr performant,• wenn nur wenige Properties• wenn Abfragen jeweils nur auf

wenigen Properties beruhen

Nachteile• Ineffizient,• wenn Property in Abfrage nicht

gebunden• wenn Property erst zur Laufzeit

gebunden wird• wenn es sehr viele Properties

gibt

Page 72: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

72

Kurze Exkursion: Triple Stores

Hexastore• Grundidee:

• Erzeuge Index für jede mögliche Permutation, um schnelle Verarbeitung zu ermöglichen:

• spo, pos, osp, sop, pso, ops

Page 73: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

73

Kurze Exkursion: Triple Stores

Hexastore• Grundidee:

• Erzeuge Index für jede mögliche Permutation, um schnelle Verarbeitung zu ermöglichen:

• spo, pos, osp, sop, pso, ops

Vorteile:• Schnelle Joins (anfänglich)

möglich

Nachteile• Bis zu 5-facher Speicherplatz • Performanceprobleme, wenn auf

Diskspace zurückgegriffen werden muss

Page 74: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

7410.11.2009 – Vorlesung Nr. 41 2 3 5 6 7 8 9 1110 12

13

2. Semantic Web BasisarchitekturDie Sprachen des Semantic Web - Teil 1

2.1.Uniform Resource Identifier - URI

2.2.XML und XMLSchema

2.3.Resource Description Framework - RDF

2.4.RDF Schema

2.5.Wie kommt die Semantik ins WWW?

2.6.Abfragesprache SPARQL

2.7.Warum reicht RDF(S) noch nicht aus?

14

Semantic Web - Vorlesungsinhalt

Page 75: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

75

2. Semantic Web Basisarchitektur2.7 Warum RDF noch nicht ausreicht

Page 76: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

76

2. Semantic Web Basisarchitektur2.7 Warum RDF noch nicht ausreicht

Lokalität globaler Properties

Tier frisst NahrungDomain Range

PflanzlicheNahrung

nichtpflanzlicheNahrung

subClassOf

subClassOf

Problem:Kühe fressen nur pflanzliche Nahrung,andere Tiere fressen nur Fleisch bzw. beides…

Page 77: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

77

2. Semantic Web Basisarchitektur2.7 Warum RDF noch nicht ausreicht

Disjunktheit von Klassen

Mensch

Frau

Mann

subClassOf

subClassOf

Problem:Subklassenbeziehung vermag nicht auszudrücken, dass Subklassenzugehörigkeit disjunkt sein kann

entweder…oder…?

Page 78: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

78

2. Semantic Web Basisarchitektur2.7 Warum RDF noch nicht ausreicht

Kombination von Klassen

Autofahrer

Fußgänger

Problem:Alle Autofahrer, Motorradfahrer, Fußgänger und Radfahrer bildenzusammengenommen die Gruppe der Verkehrsteilnehmer

Motorradfahrer

Radfahrer

Verkehrsteilnehmer

subClassOf

Page 79: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

79

2. Semantic Web Basisarchitektur2.7 Warum RDF noch nicht ausreicht

Kardinalitätsrestriktionen

Mensch

Problem:Jeder Mensch hat in der Regel immer ZWEI Eltern

Elternproperty

Page 80: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

80

2. Semantic Web Basisarchitektur2.7 Warum RDF noch nicht ausreicht

Spezielle Eigenschaften von Properties

• Transitivität (z.B. „ist größer als“)

• Eineindeutigkeit (z.B. „ist Mutter von“)

• Inversivität (z.B. „ist Elternteil von“ und „ist Kind von“)

Wir benötigen zusätzliche Semantik !

Page 81: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

Semantic Web Architektur81

URI / IRI

XML / XSDData Interchange: RDF

RDFS

Ontology: OWL Rule: RIF

Query:SPARQL

Proof

Unifying Logic

Cry

pto

Trust

Interface & Application

2. Semantic Web Basisarchitektur

Page 82: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

8210.11.2009 – Vorlesung Nr. 41 2 3 5 6 7 8 9 1110 12

13

2. Semantic Web BasisarchitekturDie Sprachen des Semantic Web - Teil 1

2.1.Uniform Resource Identifier - URI

2.2.XML und XMLSchema

2.3.Resource Description Framework - RDF

2.4.RDF Schema

2.5.Wie kommt die Semantik ins WWW?

2.6.Abfragesprache SPARQL

2.7.Warum reicht RDF(S) noch nicht aus?

14

Semantic Web - Vorlesungsinhalt

Page 83: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

83

Literatur

»P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure Semantic Web Grundlagen, Springer, 2008.

2. Semantic Web Basisarchitektur

Page 84: 10.11.2009, 04-RDFS, RDFa, SPARQL und Triple Stores

Vorlesung Semantic Web, Dr. Harald Sack, Hasso-Plattner-Institut, Universität Potsdam

84

Literatur

•Bloghttp://sewe0910.blogspot.com/

•Materialien-Webseitehttp://www.hpi.uni-potsdam.de/meinel/teaching/lectures_classes/semanticweb_ws0910.html

•bibsonomy - Bookmarkshttp://www.bibsonomy.org/user/lysander07/sw0910_04

2. Semantic Web Basisarchitektur