84
Semantic Web Technologies Lecture Dr. Harald Sack Hasso-Plattner-Institut für IT Systems Engineering University of Potsdam Winter Semester 2012/13 Lecture Blog: http://semweb2013.blogspot.com / This file is licensed under the Creative Commons Attribution-NonCommercial 3.0 (CC BY-NC 3.0 ) Dienstag, 6. November 12

(04) Semantic Web Technologies - SPARQL

Embed Size (px)

DESCRIPTION

Presentation Slides for LEcture 'Semantic Web Technologies' winter semester 2012/13, Hasso Plattner Institute for IT Systems Engineering, 06. Nov. 2012, Dr. Harald Sack

Citation preview

Page 1: (04) Semantic Web Technologies - SPARQL

Semantic Web Technologies

LectureDr. Harald Sack

Hasso-Plattner-Institut für IT Systems EngineeringUniversity of Potsdam

Winter Semester 2012/13

Lecture Blog: http://semweb2013.blogspot.com/This file is licensed under the Creative Commons Attribution-NonCommercial 3.0 (CC BY-NC 3.0)

Dienstag, 6. November 12

Page 2: (04) Semantic Web Technologies - SPARQL

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

2 1. Introduction 2. Semantic Web - Basic Architecture

Languages of the Semantic Web - Part 1

3. Knowledge Representation and LogicsLanguages of the Semantic Web - Part 2

4. Applications in the ,Web of Data‘

Semantic Web Technologies Content

Dienstag, 6. November 12

Page 3: (04) Semantic Web Technologies - SPARQL

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

3

SO ... WE NEED A WAY TO DEFINE RDF SCHEMATA FORCLASSES AND RELATIONS ?!

RDFS

Last lecture...

Dienstag, 6. November 12

Page 4: (04) Semantic Web Technologies - SPARQL

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

4

Semantic Web Technologies Content

2. Semantic Web Basic ArchitectureThe Languages of the Semantic Web - Part 1

2.1.Uniform Resource Identifier - URI2.2.Recapitulation: XML and XMLSchema2.3.Resource Description Framework - RDF2.4.RDF Schema2.5.How Do We Get Semantics into WWW?2.6.Query Language SPARQL2.7.Why RDF(S) is not enough

Dienstag, 6. November 12

Page 5: (04) Semantic Web Technologies - SPARQL

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

5

via http://www.snee.com/bobdc.blog/2008/10/learning-more-about-sparql.html

SPARQL

Dienstag, 6. November 12

Page 6: (04) Semantic Web Technologies - SPARQL

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

6

2. Semantic Web Basic ArchitectureThe Languages of the Semantic Web - Part 1

Dienstag, 6. November 12

Page 7: (04) Semantic Web Technologies - SPARQL

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

7 A Query Language for RDF• How do we get to the knowledge from RDF/RDFS Knowledge Bases? • Manual Parsing/Reading and Combination of RDF-Triple is complex

• Can you imagine a relational database without SQL?

2. Semantic Web Basic Architecture2.6 Query Language SPARQL

• SPARQL Protocol and RDF Query Language ist• a Query Language for RDF Graph TRaversal

(SPARQL Query Language Specification)• a Protocol Layer, to use SPARQL via http

(SPARQL Protocol for RDF Specification)• an XML Output Format Specification for SPARQL Queries

(SPARQL Query XML Results Format)• W3C Standard (SPARQL 1.0 since Januar 2008) • inspired by SQL

Dienstag, 6. November 12

Page 8: (04) Semantic Web Technologies - SPARQL

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

8 •SPARQL 1.0 allows

•Extraction of data from structured or semi structures Data as

•URIs, Blank Nodes, typed and untyped Literals.

•RDF Subgraphs

•Exploration of Data via Query for unknown relations

•Execution of complex Join Operations on heterogeneous databases in a single query

•Transformation of RDF Data from one vocabulary into another

•Construction of new RDF Graphs based on RDF Query Graphs

Dienstag, 6. November 12

Page 9: (04) Semantic Web Technologies - SPARQL

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

9 •SPARQL 1.1 (in progress) allows

•additional query features

•aggregate functions, subqueries, negations, project expressions, property paths, basic federated queries

•enables logical Entailment for

•RDF, RDFS, OWL Direct and RDF-Based Semantics entailment, and RIF Core entailment.

•enables Update of RDF Graphs as a full data manipulation language

•enables the Discovery of information about the SPARQL service

•enables Federated Queries distributed over different SPARQL

Dienstag, 6. November 12

Page 10: (04) Semantic Web Technologies - SPARQL

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

10

SPARQL 1.0 firstDienstag, 6. November 12

Page 11: (04) Semantic Web Technologies - SPARQL

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

11 • SPARQL Variables are bound to RDF terms• e.g. ?journal, ?disease, ?price

• In the same way as in SQL a Query for variables is performed via SELECT statement• e.g. SELECT ?title ?author ?published

• A SELECT statement returns Query Results as a table

?title ?author ?published

1984 George Orwell 1948

Brave New World Aldous Huxley 1932

Fahrenheid 451 Ray Bradbury 1953

Dienstag, 6. November 12

Page 12: (04) Semantic Web Technologies - SPARQL

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

12

?title ?author ?published

1984 George Orwell 1948

Brave New World Aldous Huxley 1932

Fahrenheid 451 Ray Bradbury 1953

SELECT ?title ?author ?published

SPARQL Query

SPARQL Endpoint

Dienstag, 6. November 12

Page 13: (04) Semantic Web Technologies - SPARQL

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

13 Graph Pattern• SPARQL is based on RDF Turtle serialization and

basic graph pattern matching.• A Graph Pattern (Triple Pattern) is a RDF Triple that contains

variables at any arbitrary place (Subject, Predicate, Object).• (Graph) Triple Pattern = Turtle + Variables• Examples:• Look for countries and their capitals:

•?country geo:capital ?capital .• Given a FOAF URI, find the name of a person:

•<http://hpi-web.de/id#haraldsack> foaf:name ?surname .• Which persons have the family name „Schmidt“?

•?person pers:familyName “Schmidt“ .

Dienstag, 6. November 12

Page 14: (04) Semantic Web Technologies - SPARQL

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

14

?country geo:capital ?capital .Triple Pattern

RDF Graphdbpedia:Venezuela rdf:type dbpedia-owl:Country .dbpedia:Venezuela geo:capital “Caracas“ .dbpedia:Venezuela dbprop:language “Spanish“ .dbpedia:Germany rdf:type dbpedia-owl:Country .dbpedia:Germany geo:capital “Berlin“ .dbpedia:Germany dbprop:language “German“ ....

Dienstag, 6. November 12

Page 15: (04) Semantic Web Technologies - SPARQL

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

15 Simple Query Pattern• Graph Pattern can be combined to form complex (conjunctive)

queries for RDF graph traversal.• Find countries, their capitals and their population:

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

• Given a FOAF URI, find the name of a person and her friends:•<http://hpi-web.de/id#haraldsack> foaf:name ?surname ; foaf:knows ?friend .?friend foaf:name ?friend_surname .

• Find all superiors of the 3. management level:•?emp hr:managedBy ?first_line .?first_line hr:managedBy ?second_line .?second_line hr:managedBy ?third_line .

Dienstag, 6. November 12

Page 16: (04) Semantic Web Technologies - SPARQL

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

16 SPARQL Query Format• inspired by SQL

• Triple in „WHERE“ part defines graph query with variables ?p and ?o• Query returns table with matching ?p, ?o pairs

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

?o

?o

?o

?p

?o

?p

?p

?p

subject

Dienstag, 6. November 12

Page 17: (04) Semantic Web Technologies - SPARQL

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

17SPARQL Query Format• Search all lectures and their managers:

• WHERE - specifies graph pattern to be matched• PREFIX - specifies one or more namespaces for using compact URIs (CURIEs)• FROM - specifies one or more RDF source graphs• BASE - defines a base URI

PREFIX hpi: <http://hpi-web.de/swt1213#>PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>SELECT ?lecture ?managerFROM <...>WHERE { ?x rdf:type hpi:Lecture . ?x rdfs:label ?lecture . ?y rdf:type hpi:Staff . ?y rdfs:label ?manager ?x hpi:isManagedBy ?y .}

Dienstag, 6. November 12

Page 18: (04) Semantic Web Technologies - SPARQL

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

18 SPARQL Query Format• Search all lectures and their managers ordered by managers in

descending order and limit the results to the first 10 starting the list at position 10:

PREFIX hpi: <http://hpi-web.de/swt1213#>PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>SELECT ?lecture ?managerFROM <...>WHERE { ?x rdf:type hpi:Lecture ; rdfs:label ?lecture . ?y rdf:type hpi:Staff ; rdfs:label ?manager ?x hpi:isManagedBy ?y .}ORDER BY DESC (?manager)LIMIT 10OFFSET 10

Dienstag, 6. November 12

Page 19: (04) Semantic Web Technologies - SPARQL

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

19

Blank Nodes in SPARQL Queries• as subject or object of a triple pattern• „non selectable“ variables

• blank node identifier might also occur in the results

PREFIX hpi: <http://hpi-web.de/swt1213#>PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>SELECT ?nameWHERE { _:x rdf:type hpi:Lecture ; hpi:isManagedBy [ rdfs:label ?name] .}

Dienstag, 6. November 12

Page 20: (04) Semantic Web Technologies - SPARQL

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

20

How should I know all those prefixes?

Dienstag, 6. November 12

Page 21: (04) Semantic Web Technologies - SPARQL

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

21 SPARQL Query Format• The keyword FILTER specifies constraints for the results

• FILTER expressionscontain operatorsand functions

• FILTERs can NOT assign/create new values

# Default Graph (stored at http://example.org/book) @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> WHERE { ?x ns:price ?price . FILTER (?price < 30.5) ?x dc:title ?title . }

Dienstag, 6. November 12

Page 22: (04) Semantic Web Technologies - SPARQL

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

22 SPARQL Unary Operators in Constraints

Operator Type(A) Result Type!A xsd:boolean xsd:boolean

+A numeric numeric

-a numeric numeric

BOUND(A) variable xsd:boolean

isURI(A) RDF term xsd:boolean

isBLANK(A) RDF term xsd:boolean

isLITERAL(A) RDF term xsd:boolean

STR(A) literal/URI simple literal

LANG(A) literal simple literal

DATATYPE(A) literal URI

Dienstag, 6. November 12

Page 23: (04) Semantic Web Technologies - SPARQL

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

23 More SPARQL Operators

• Logical connectives && and || for xsd:boolean• Comparison operators =, !=, <, >, <=, and >= for numeric

datatypes, xsd:dateTime, xsd:string, and xsd:boolean• Comparison operators = and != for other datatypes• Arithmetic operators +, -, *, and / for numeric datatypes

• and in addition:• REGEX(String,Pattern) or REGEX(String,Pattern,Flags)• sameTERM(A,B) • langMATCHES(A,B)

Dienstag, 6. November 12

Page 24: (04) Semantic Web Technologies - SPARQL

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

24 Filter Constraints are Evaluated in 3-valued Logic• true, false, and error

A !AT FF TE E

A B A || B A && B

T T T T

T F T F

F T T F

F F F F

T E T E

E T T E

F E E F

E F E F

E E E E

Dienstag, 6. November 12

Page 25: (04) Semantic Web Technologies - SPARQL

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

25 SPARQL Query Format• The keyword OPTIONAL selects optional elements from the RDF graph• complies to a Left Outer Join

# Default Graph (stored at http://example.org/addresses) @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/addresses>WHERE { ?x foaf:name ?name . OPTIONAL { ?x foaf:mbox ?mbox }}

Dienstag, 6. November 12

Page 26: (04) Semantic Web Technologies - SPARQL

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

26

SPARQL Query Format• The keyword UNION allows for alternatives (logical disjunction)

# Default Graph (stored at http://example.org/book) @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>WHERE { { ?book dc10:title ?title } UNION { ?book dc11:title ?title } }

Dienstag, 6. November 12

Page 27: (04) Semantic Web Technologies - SPARQL

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

27 SPARQL Query Format• Negation in SPARQL• (complies to ,NOT EXISTS‘ in SQL)

@prefix foaf: <http://xmlns.com/foaf/0.1/> .@prefix dc: <http://purl.org/dc/elements/1.1/> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

_:a foaf:givenName "Alice".

_:b foaf:givenName "Bob" ._:b dc:date "2005-04-04T04:04:04Z"^^xsd:dateTime .

PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX dc: <http://purl.org/dc/elements/1.1/>SELECT ?name WHERE { ?x foaf:givenName ?name . OPTIONAL { ?x dc:date ?date } . FILTER (!bound(?date)) }

Dienstag, 6. November 12

Page 28: (04) Semantic Web Technologies - SPARQL

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

28 SPARQL Query Format•SPARQL queries are executed over an RDF dataset•one (or more) default RDF graph•zero or more named RDF graphs

•Named Graphs can explicitely addressed via keyword GRAPH and the URI of the named graph

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

Dienstag, 6. November 12

Page 29: (04) Semantic Web Technologies - SPARQL

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

29PREFIX hpi: ...SELECT ...FROM hpi:g1FROM hpi:g4FROM NAMED hpi:g1FROM NAMED hpi:g2FROM NAMED hpi:g3WHERE { ... A ... GRAPH hpi:g3 { ... B ... } GRAPH ?g { ... C ... }}

hpi:g1

hpi:g4

Default Graph

hpi:g1

hpi:g2

hpi:g3

Default Graph

Named Graphs

Dienstag, 6. November 12

Page 30: (04) Semantic Web Technologies - SPARQL

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

30 SPARQL Query Format• Example for 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

Dienstag, 6. November 12

Page 31: (04) Semantic Web Technologies - SPARQL

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

31 SPARQL Query Format• Example for 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

Dienstag, 6. November 12

Page 32: (04) Semantic Web Technologies - SPARQL

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

32 SPARQL Result Format• SPARQL results are given as well formed and valid XML documents

• In a <head> element all variables of the SPARQL query are listed

<?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>

Dienstag, 6. November 12

Page 33: (04) Semantic Web Technologies - SPARQL

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

33 SPARQL Result Format• For each SPARQL Query result exists a <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>

Dienstag, 6. November 12

Page 34: (04) Semantic Web Technologies - SPARQL

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

34 SPARQL Result Format• Within a <binding> element a <head> variable is bound to a result

<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>

Dienstag, 6. November 12

Page 35: (04) Semantic Web Technologies - SPARQL

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

35 SPARQL Query Format (continued)• In addition to SELECT queries SPARQL allows:

•ASK•Check whether there is at least one result •Result: true or false•Result is delivered as XML or JSON

•CONSTRUCT•Result: an RDF graph constructed from a template•Template: graph pattern with variables from the query pattern•Result is RDF/XML or Turtle

•DESCRIBE•Result: an RDF graph with data about resources•Result is RDF/XML or Turtle

Dienstag, 6. November 12

Page 36: (04) Semantic Web Technologies - SPARQL

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

36 SPARQL Construction of RDF Graphs• CONSTRUCT defines a template for the construction of new RDF Graphs

@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 }

Dienstag, 6. November 12

Page 37: (04) Semantic Web Technologies - SPARQL

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

37 SPARQL Construction of RDF Graphs• Result of a CONSTRUCT query as serialized 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>

Dienstag, 6. November 12

Page 38: (04) Semantic Web Technologies - SPARQL

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

38 SPARQL Protocol• Method to query/respond of SPARQL queries via http• A SPARQL URI consists out of 3 parts:1.URL of a SPARQL endpoint

(e.g. http://example.org/sparql)2.RDF Graph(s) to be queried

(optional, part of the query string, z.B. named-graph-uri=http://example.org/testrdf.rdf)

3.Query string (part of the query string, e.g. 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

Dienstag, 6. November 12

Page 39: (04) Semantic Web Technologies - SPARQL

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

39 SPARQL Protocol -- Example• Simple SPARQL Query

• HTTP Trace of the 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

Dienstag, 6. November 12

Page 40: (04) Semantic Web Technologies - SPARQL

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

40 • HTTP Trace of the SPARQL Response

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>

Dienstag, 6. November 12

Page 41: (04) Semantic Web Technologies - SPARQL

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

41 • some popular SPARQL (1.0) Endpoints• http://sparql.org/sparql.html --

General Purpose SPARQL Endpoint• http://dbpedia.org/sparql --

DBpedia SPARQL Endpoint• http://www4.wiwiss.fu-berlin.de/dblp/sparql --

DBLP (Computer Science Bibliographies) SPARQL Endpoint• http://linkedmdb.org/sparql --

Linked Movie Database SPARQL Endpoint• http://www4.wiwiss.fu-berlin.de/factbook/sparql --

CIA World Factbook SPARQL Endpoint• ...

Dienstag, 6. November 12

Page 42: (04) Semantic Web Technologies - SPARQL

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

42

SPARQL 1.1 nextAtt

ention

: There

might

occur

chang

es in

syntax

and

semant

ics be

cause

this i

s stil

l a wo

rking

draft.

..

Dienstag, 6. November 12

Page 43: (04) Semantic Web Technologies - SPARQL

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

43

SPARQL 1.1 -- New Features• SPARQL 1.1 Query:

• Assignments (e.g. BIND, SELECT expressions) • Aggregate functions (e.g. COUNT, SUM, AVG) • Subqueries• Negation (EXISTS, NOT EXISTS, MINUS) • Property paths• Basic query federation (SERVICE, BINDINGS)

• SPARQL 1.1 Update:• Graph update (INSERT DATA, DELETE DATA, INSERT,

DELETE, DELETE WHERE, LOAD, CLEAR)• Graph management (CREATE, DROP, COPY, MOVE, ADD)

• SPARQL 1.1 Entailment for RDF, RDFS, OWL, RIF• SPARQL 1.1 Service Descriptions

Dienstag, 6. November 12

Page 44: (04) Semantic Web Technologies - SPARQL

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

44 SPARQL 1.1 -- Assignments• SPARQL 1.1 allows the creation of new values in a query

PREFIX ex: <http://example.org/> SELECT ?Item (?Pr * 1.1 AS ?NewP )WHERE { ?Item ex:price ?Pr }

@prefix ex: <http://example.org/> .

ex:lemonade1 ex:price 3 .ex:beer1 ex:price 3.ex:wine1 ex:price 3.50 .ex:liqueur1 ex:price "n/a".

?Item ?NewP

lemonade1 3.3

beer1 3.3

wine1 3.85

liqueur1

Data

Result

Dienstag, 6. November 12

Page 45: (04) Semantic Web Technologies - SPARQL

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

45 SPARQL 1.1 -- Aggregate Functions• SPARQL 1.1 allows the use of aggregate functions in queries

?C

5

DataResult

PREFIX ex: <http://example.org/> SELECT (Count(?Item) AS ?C)WHERE { ?Item ex:price ?Pr }

@prefix ex: <http://example.org/> .

ex:lemonade1 ex:price 3 ; rdf:type ex:Softdrink.ex:beer1 ex:price 3; rdf:type ex:Beer.ex:wine1 ex:price 3.50 ; rdf:type ex:Wine.ex:wine2 ex:price 4 . rdf:type ex:Wine.ex:wine3 ex:price "n/a”; rdf:type ex:Wine.

Dienstag, 6. November 12

Page 46: (04) Semantic Web Technologies - SPARQL

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

46 SPARQL 1.1 -- Aggregate Functions• SPARQL 1.1 allows the use of aggregate functions in queries

?C

3

DataResult

@prefix ex: <http://example.org/> .

ex:lemonade1 ex:price 3 ; rdf:type ex:Softdrink.ex:beer1 ex:price 3; rdf:type ex:Beer.ex:wine1 ex:price 3.50 ; rdf:type ex:Wine.ex:wine2 ex:price 4 . rdf:type ex:Wine.ex:wine3 ex:price "n/a”; rdf:type ex:Wine.

PREFIX ex: <http://example.org/> SELECT (Count(DISTINCT ?T) AS ?C)WHERE { ?Item rdf:type ?T }

Dienstag, 6. November 12

Page 47: (04) Semantic Web Technologies - SPARQL

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

47 SPARQL 1.1 -- Aggregate Functions• SPARQL 1.1 allows the use of aggregate functions in queries

DataResult

@prefix ex: <http://example.org/> .

ex:lemonade1 ex:price 3 ; rdf:type ex:Softdrink.ex:beer1 ex:price 3; rdf:type ex:Beer.ex:wine1 ex:price 3.50 ; rdf:type ex:Wine.ex:wine2 ex:price 4 . rdf:type ex:Wine.ex:wine3 ex:price "n/a”; rdf:type ex:Wine.

PREFIX ex: <http://example.org/> SELECT ?T (Count(?Item) AS ?C)WHERE { ?Item rdf:type ?T }GROUP BY ?T

?T ?C

Softdrink 1

Beer 1

Wine 3

Dienstag, 6. November 12

Page 48: (04) Semantic Web Technologies - SPARQL

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

48 SPARQL 1.1 -- Aggregate Functions• SPARQL 1.1 allows the use of aggregate functions in queries

Data Result@prefix ex: <http://example.org/> .

ex:lemonade1 ex:price 3 ; rdf:type ex:Softdrink.ex:beer1 ex:price 3; rdf:type ex:Beer.ex:wine1 ex:price 3.50 ; rdf:type ex:Wine.ex:wine2 ex:price 4 . rdf:type ex:Wine.ex:wine3 ex:price "n/a”; rdf:type ex:Wine.

?T ?C

Wine 3

PREFIX ex: <http://example.org/> SELECT ?T (Count(?Item) AS ?C)WHERE { ?Item rdf:type ?T }GROUP BY ?THAVING Count(?Item) > 1

Dienstag, 6. November 12

Page 49: (04) Semantic Web Technologies - SPARQL

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

49 SPARQL 1.1 -- Aggregate Functions• more aggregate functions

• SUM• AVG• MIN• MAX• SAMPLE -- „pick“ one non-deterministically• GROUP_CONCAT -- concatenate values with a designated

string separator

Dienstag, 6. November 12

Page 50: (04) Semantic Web Technologies - SPARQL

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

50

SPARQL 1.1 -- Aggregate Functions• Example for SAMPLE, GROUP_CONCAT

Result

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

ex:alice a foaf:Person; foaf:name "Alice Wonderland"; foaf:nick "Alice", "The real Alice".

ex:bob a foaf:Person; foaf:name "Robert Doe", "Robert Charles Doe", "Robert C. Doe"; foaf:nick "Bob","Bobby","RobC","BobDoe".

ex:charles a foaf:Person; foaf:name "Charles Charles"; foaf:nick "Charlie" .

Data

PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ( SAMPLE(?N) as ?Name) ( GROUP_CONCAT(?M; SEPARATOR = ", ") AS ?Nicknames )WHERE { ?P a foaf:Person ; foaf:name ?N ; foaf:nick ?M . }GROUP BY ?P

?Name ?Nicknames

Alice Wonderland The real Alice, Alice

Charles Charles Charlie

Robert C. Doe Bob, BobDoe, RobC, Bobby

Dienstag, 6. November 12

Page 51: (04) Semantic Web Technologies - SPARQL

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

51

SPARQL 1.1 -- Subqueries• Subqueries are a way to embed SPARQL queries within other

queries

• returns titles for 10 persons, instead of just 10 rows• result is achieved by first evaluating the inner query

SELECT ?TWHERE { ?D foaf:maker ?P ; rdfs:label ?T . { SELECT DISTINCT ?P WHERE { ?D foaf:maker <http://dblp.l3s.de/…/authors/Harald_Sack>, ?P . FILTER ( ?P != <http://dblp.l3s.de/…/authors/Harald_Sack> ) } LIMIT 10 }}

Dienstag, 6. November 12

Page 52: (04) Semantic Web Technologies - SPARQL

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

52

SPARQL 1.1 -- Negation• Filtering of query solutions is done within a FILTER expression

using NOT EXISTS and EXISTS.PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?personWHERE { ?person rdf:type foaf:Person . FILTER NOT EXISTS { ?person foaf:name ?name }}

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

:alice rdf:type foaf:Person .:alice foaf:name "Alice" .:bob rdf:type foaf:Person .

Data

Result

?person

:bob

Dienstag, 6. November 12

Page 53: (04) Semantic Web Technologies - SPARQL

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

53

SPARQL 1.1 -- Negation• Filtering of query solutions be removing possible solutions with

MINUS.PREFIX : <http://example/>PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT DISTINCT ?sWHERE { ?s ?p ?o . MINUS { ?s foaf:givenName "Bob" . }}

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

:alice foaf:givenName "Alice" ; foaf:familyName "Smith" .

:bob foaf:givenName "Bob" ; foaf:familyName "Jones" .

:carol foaf:givenName "Carol" ; foaf:familyName "Smith" .

Data

Result

?s

:alice

:carol

Dienstag, 6. November 12

Page 54: (04) Semantic Web Technologies - SPARQL

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

54

SPARQL 1.1 -- Property Paths• A property path is a possible route through an RDF graph

between two graph nodes.• trivial case: property path of length 1, i.e. a triple pattern• alternatives: match one or both possibilities

• sequence: property path of length >1

• inverse property paths: reversing the direction of the triple

{ :book1 dc:title|rdfs:label ?displayString }

{ ?x foaf:mbox <mailto:alice@example> . ?x foaf:knows/foaf:knows/foaf:name ?name . }

{ ?x foaf:mbox <mailto:alice@example> }

=

{ <mailto:alice@example> ^foaf:mbox ?x }

Dienstag, 6. November 12

Page 55: (04) Semantic Web Technologies - SPARQL

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

55

SPARQL 1.1 -- Property Paths

• inverse path sequences paths

• arbitrary length match

• negated property paths

{ ?x foaf:knows/^foaf:knows ?y . FILTER(?x != ?y) }

{ ?x foaf:mbox <mailto:alice@example> . ?x foaf:knows+/foaf:name ?name . }

{ ?x !(rdf:type|^rdf:type) ?y }

Dienstag, 6. November 12

Page 56: (04) Semantic Web Technologies - SPARQL

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

56

SPARQL 1.1 -- Property Paths

Dienstag, 6. November 12

Page 57: (04) Semantic Web Technologies - SPARQL

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

57

SPARQL 1.1 -- Property Paths

• can be used for some ontological inference• e.g. „find all beers in the beer ontology“

PREFIX beer: <http://www.purl.org/net/ontology/beer#>PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?beerFROM <http://www.purl.org/net/ontology/beer>WHERE { ?beer rdf:type/rdfs:subClassOf* beer:Beer .}

Dienstag, 6. November 12

Page 58: (04) Semantic Web Technologies - SPARQL

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

58

SPARQL 1.1 -- New Features• SPARQL 1.1 Query:

• Assignments (e.g. BIND, SELECT expressions) • Aggregate functions (e.g. COUNT, SUM, AVG) • Subqueries• Negation (EXISTS, NOT EXISTS, MINUS) • Property paths• Basic query federation (SERVICE, BINDINGS)

• SPARQL 1.1 Update:• Graph update (INSERT DATA, DELETE DATA, INSERT,

DELETE, DELETE WHERE, LOAD, CLEAR)• Graph management (CREATE, DROP, COPY, MOVE, ADD)

• SPARQL 1.1 Entailment for RDF, RDFS, OWL, RIF• SPARQL 1.1 Service Descriptions

more to come...

Dienstag, 6. November 12

Page 59: (04) Semantic Web Technologies - SPARQL

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

59

Semantic Web Technologies Content

2. Semantic Web Basic ArchitectureThe Languages of the Semantic Web - Part 1

• Uniform Resource Identifier - URI• Recapitulation: XML and XMLSchema• Resource Description Framework - RDF

• RDF Schema• How Do We Get Semantics into WWW?

• µFormats, schema.org, RDFa and GRDDL• Query Language SPARQL• Why RDF(S) is not enough

Short Excursion:

Triple Stores

Dienstag, 6. November 12

Page 60: (04) Semantic Web Technologies - SPARQL

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

60 RDF in RDBMS• RDF Graph can be represented by a set of Triples (s,p,o)• Triples can simply be stored in a relational database system

• Idea: Use a specific relational schema for RDF data and benefit from 40 years of research in the DB community

• 3 steps for SPARQL query processing:(1) Convert SPARQL query to SQL query (w.r.t. the schema)(2) Use RDBMS to answer SQL query(3) Generate SPARQL query result from SQL query result

How to store RDF Data?

Dienstag, 6. November 12

Page 61: (04) Semantic Web Technologies - SPARQL

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

61 • RDF Graph can be represented by a set of Triples (s,p,o)• Triples can simply be stored in a relational database

management system (RDBMS)

• Motivation: Use a specific relational schema for RDF data and benefit from 40 years of research in the DB community

• 3 steps for SPARQL query processing:(1) Convert SPARQL query to SQL query

(w.r.t. the schema)(2) Use RDBMS to answer SQL query(3) Generate SPARQL query result from SQL query result

RDF in RDBMS

Dienstag, 6. November 12

Page 62: (04) Semantic Web Technologies - SPARQL

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

62

Problem

• How to store RDF triples to carry out efficient SPARQLqueries?

• 4 alternatives:1.Giant Triple Storage2.Property Tables3.Vertically Partitioned Tables (Binary Tables)4.Hexastore

Dienstag, 6. November 12

Page 63: (04) Semantic Web Technologies - SPARQL

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

63

• Basic idea:• Store all RDF triples in a single table• performance depends on efficient indexing

Pros:• easy to implement• works for huge numbers of properties,

if indexes are chosen with care

Cons:• many self joins

Giant Triple Storage

Dienstag, 6. November 12

Page 64: (04) Semantic Web Technologies - SPARQL

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

64

SELECT ?university WHERE { ?v rdf:type :GradStudent; :bachelorsFrom ?university . }

SELECT t2.o AS universityFROM triples AS t1, triples AS t2WHERE t1.p=‘type‘ AND t1.o=‘GradStudent‘ AND t2.p=‘bachelorsFrom‘ AND t1.s=t2.s

SPARQL

SQL

Giant Triple Storage

• Basic idea:• Store all RDF triples in a single table• performance depends on efficient indexing

Dienstag, 6. November 12

Page 65: (04) Semantic Web Technologies - SPARQL

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

65 • Use numerical identifier for each RDF term in the dataset• saves space and enhances efficiency

RDF Term ID:ID1 1

rdf:type 2:FullProfessor 3

:teacherOf 4“AI“ 5

:bachelorsFrom 6“MIT“ 7

:mastersFrom 8“Cambridge 9

s p o

1 2 31 4 51 6 71 8 91 10 11

12 13 1412 15 712 4 16

ID Based Triple Storage

Dienstag, 6. November 12

Page 66: (04) Semantic Web Technologies - SPARQL

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

66 • Storing multiple RDF graphs• used for provenance, versioning, contexts, etc.

RDF Term ID:ID1 1

rdf:type 2:FullProfessor 3

:teacherOf 4“AI“ 5

:bachelorsFrom 6“MIT“ 7

:mastersFrom 8“Cambridge 9

g s p o

100 1 2 3100 1 4 5101 12 16 7100 1 8 9102 23 21 11100 1 6 7102 23 22 8101 12 4 16

Quad Tables

Dienstag, 6. November 12

Page 67: (04) Semantic Web Technologies - SPARQL

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

67 • Combining all (or some) properties of similar subjects in n-ary tables

• Use ID based encoding for efficiency

Pros:• Fewer joins• If the data is structured, we

have a relational DB

Cons:• Potentially a lot of NULLs• Clustering is not trivial• Multi-value properties are

complicated

Property Tables

Dienstag, 6. November 12

Page 68: (04) Semantic Web Technologies - SPARQL

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

68 • for each unique property create a two column table• Use ID based encoding for efficiency

Pros:• Supports multi-value properties• No NULLs• Read only needed attributes

(i.e. less I/O)• No clustering• Excellent performance (if number

of properties is small, queries with bounded properties)

Cons:• Expensive inserts• Bad performance (large number

of properties, queries with unbounded properties)

Vertically Partitioned Tables (Binary Tables)

Dienstag, 6. November 12

Page 69: (04) Semantic Web Technologies - SPARQL

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

69

Olaf Hartig - Linked Data Management and SPARQL Querying 72

Row Store vs. Column Store

● Different physical storage models for relational DBs

● Row based storage:

● Tuples (i.e. DB records)are stored consecutively

● Entire row needs to beread even if few attributesare projected

● Column based storage:

● Read columns relevant to thequery → projection is free

● Inserts are expensive

● Column based storage model fit binary tables very well

1 2

3

1 2

3

1 2

3

• Different physical storage models for relational DBs

• Row Based Storage• Tuples (i.e. DB records) are stored consecutively• Entire row needs to be read even if few

attributes are projected

• Column Based Storage• Read columns relevant to the query → projection is free

• Inserts are expensive

Vertically Partitioned Tables (Binary Tables)

Dienstag, 6. November 12

Page 70: (04) Semantic Web Technologies - SPARQL

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

70 • Create an index for every possible combination to enable efficient processing• spo, pos, osp, sop, pso, ops

Hexastores

Dienstag, 6. November 12

Page 71: (04) Semantic Web Technologies - SPARQL

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

71

Pros:• fast joins (in the beginning)

Cons:• 5 times more storage• weak performance, when

disk access is necessary

Hexastores

• Create an index for every possible combination to enable efficient processing• spo, pos, osp, sop, pso, ops

Dienstag, 6. November 12

Page 72: (04) Semantic Web Technologies - SPARQL

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

72

Semantic Web Technologies Content

2. Semantic Web Basic ArchitectureThe Languages of the Semantic Web - Part 1

2.1.Uniform Resource Identifier - URI2.2.Recapitulation: XML and XMLSchema2.3.Resource Description Framework - RDF2.4.RDF Schema2.5.How Do We Get Semantics into WWW?2.6.Query Language SPARQL2.7.Why RDF(S) is not enough

Dienstag, 6. November 12

Page 73: (04) Semantic Web Technologies - SPARQL

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

73

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

Is there more in the World than RDF(S)?

Dienstag, 6. November 12

Page 74: (04) Semantic Web Technologies - SPARQL

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

74 Locality of global properties

Problem: Cows only eat vegetablesOther animals also eat meat.

2.7 Why RDF(S) is not enough

Animal eats FoodDomain Range

Vegetables

Meat

subClassOf

subClassOf

Dienstag, 6. November 12

Page 75: (04) Semantic Web Technologies - SPARQL

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

75Disjunctive Classes

Problem: Subclass relation cannot express disjunctive class (subclass) membership

2.7 Why RDF(S) is not enough

Human

Woman

Man

subClassOf

subClassOf

Dienstag, 6. November 12

Page 76: (04) Semantic Web Technologies - SPARQL

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

76Class Combinations

Problem: Combination of classes define a new class.New class contains only members from given class combinations.

2.7 Why RDF(S) is not enough

Motorist

Pedestrian

Motorcyclist

Cyclist

Road User

subClassOf

subClassOf

subClassOf

subClassOf

Dienstag, 6. November 12

Page 77: (04) Semantic Web Technologies - SPARQL

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

77Cardinality Restrictions

Problem: Every human (usually) has two partents

2.7 Why RDF(S) is not enough

Human ParenthasParent

Dienstag, 6. November 12

Page 78: (04) Semantic Web Technologies - SPARQL

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

78 Special Property Constraints

• Transitivity (e.g. „is greater than“)• Uniqueness (e.g. „is mother of“) • Inversiveness (e.g. „is parent of“ and „is child of“)

We need more se

mantic express

ivity!

2.7 Why RDF(S) is not enough

Dienstag, 6. November 12

Page 79: (04) Semantic Web Technologies - SPARQL

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

79

2. Semantic Web Basic ArchitectureThe Languages of the Semantic Web - Part 1

Dienstag, 6. November 12

Page 80: (04) Semantic Web Technologies - SPARQL

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

80

Semantic Web Technologies Content

2. Semantic Web Basic ArchitectureThe Languages of the Semantic Web - Part 1

2.1.Uniform Resource Identifier - URI2.2.Recapitulation: XML and XMLSchema2.3.Resource Description Framework - RDF2.4.RDF Schema2.5.How Do We Get Semantics into WWW?2.6.Query Language SPARQL2.7.Why RDF(S) is not enough

Dienstag, 6. November 12

Page 81: (04) Semantic Web Technologies - SPARQL

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

81

Ontolo

gies

next Lecture:

Dienstag, 6. November 12

Page 82: (04) Semantic Web Technologies - SPARQL

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

82

Bibliography

• P. Hitzler, S. Roschke, Y. Sure: Semantic Web Grundlagen, Springer, 2007.

• P. Hitzler, M. Krötzsch, S. Rudolph:Foundations of Semantic Web Technologies,CRC Press, 2009.

2. Semantic Web Basic Architecture2.6 Query Language SPARQL2.7. Why RDF(S) is not enough

Dienstag, 6. November 12

Page 83: (04) Semantic Web Technologies - SPARQL

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

83

• B. du Charme: Learning SPARQL,O‘Reilly Media, 2011.

Acknowledgements:Thanks a lot to Olaf Hartig and Axel Polleres, who I stole some examples from...

2. Semantic Web Basic Architecture2.6 Query Language SPARQL2.7. Why RDF(S) is not enough

Dienstag, 6. November 12