103
SPARQL - Query Language for RDF Fulvio Corno, Laura Farinetti Politecnico di Torino Dipartimento di Automatica e Informatica e-Lite Research Group – http://elite.polito.it

SPARQL - Query Language for RDF - The e-Lite Research Group

  • Upload
    others

  • View
    21

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SPARQL - Query Language for RDF - The e-Lite Research Group

SPARQL - Query Language for RDF

Fulvio Corno, Laura FarinettiPolitecnico di TorinoDipartimento di Automatica e Informaticae-Lite Research Group – http://elite.polito.it

Page 2: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 2

The “new” Semantic Web visionTo make data machine processable, we need:

Unambiguous names for resources (that may also bind data to real world objects): URIs A common data model to access, connect, describe the resources: RDF Access to that data: SPARQLDefine common vocabularies: RDFS, OWL, SKOS Reasoning logics: OWL, Rules

“SPARQL will make a huge difference” (Tim Berners-Lee, May 2006)

Page 3: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 3

SPARQL

Queries are very important for distributed RDF data

Complex queries into the RDF data are often necessary E.g.: “give me the (a,b) pair of resources, for which there is an x such that (x parent a) and (b brother x) holds” (i.e., return the uncles)

This is the goal of SPARQL (Query Language for RDF)

Page 4: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 4

SPARQL

W3C Recommendation: January 15th, 2008 SPARQL queries RDF graphs

An RDF graph is a set of triplesSPARQL can be used to express queries across diverse data sources, whether the data is stored natively as RDF or viewed as RDF via middleware

Page 5: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 5

SPARQL and RDF

It is the triples that matter, not the serialization

RDF/XML is the W3C recommendation but it not a good choice because it allows multiple ways to encode the same graph

SPARQL uses the Turtle syntax, an N-Triples extension

Page 6: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 6

Turtle - Terse RDF Triple Language

A serialization format for RDFA subset of Tim Berners-Lee and Dan Connolly’s Notation 3 (N3) language

Unlike full N3, doesn’t go beyond RDF’s graph model A superset of the minimal N-Triples formatTurtle has no official status with any standards organization, but has become popular amongst Semantic Web developers as a human-friendly alternative to RDF/XML

Page 7: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 7

“Triple” or “Turtle” notation

Page 8: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 8

“Triple” or “Turtle” notation

<http://www.w3.org/People/EM/contact#me><http://www.w3.org/2000/10/swap/pim/contact#fullName>"Eric Miller" .

<http://www.w3.org/People/EM/contact#me><http://www.w3.org/2000/10/swap/pim/contact#mailbox><mailto:[email protected]> .

<http://www.w3.org/People/EM/contact#me><http://www.w3.org/2000/10/swap/pim/contact#personalTitle>"Dr." .

<http://www.w3.org/People/EM/contact#me><http://www.w3.org/1999/02/22-rdf-syntax-ns#type><http://www.w3.org/2000/10/swap/pim/contact#Person> .

Page 9: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 9

Triple” or “Turtle” notation (abbreviated)

w3people:EM#me contact:fullName "Eric Miller" .

w3people:EM#me contact:mailbox <mailto:[email protected]> .

w3people:EM#me contact:personalTitle "Dr." .

w3people:EM#me rdf:type contact:Person .

Page 10: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 10

Turtle - Terse RDF Triple Language

Plain text syntax for RDFBased on Unicode

Mechanisms for namespace abbreviationAllows grouping of triples according to subjectShortcuts for collections

Page 11: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 11

Turtle - Terse RDF Triple Language

Simple triple: subject predicate object .

Grouping triples: subject predicate object ; predicate object ...

:john rdf:label "John" .:john rdf:label "John" .

:johnrdf:label "John" ;rdf:type ex:Person ;ex:homePage http://example.org/johnspage/ .

:johnrdf:label "John" ;rdf:type ex:Person ;ex:homePage http://example.org/johnspage/ .

Page 12: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 12

Prefixes

Mechanism for namespace abbreviation

Example:

Default:

Example:

@prefix abbr: <URI>@prefix abbr: <URI>

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

@prefix : <URI>@prefix : <URI>

@prefix : <http://example.org/myOntology#>@prefix : <http://example.org/myOntology#>

Page 13: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 13

IdentifiersURIs: <URI>

Qnames (Qualified names)namespace-abbr?:localname

Literals"string"(@lang)?(ˆˆtype)?

http://www.w3.org/1999/02/22-rdf-syntax-ns#http://www.w3.org/1999/02/22-rdf-syntax-ns#

rdf:type dc:title :hasName

rdf:type dc:title :hasName

"John" "Hello"@en-GB "1.4"^^xs:decimal

"John" "Hello"@en-GB "1.4"^^xs:decimal

Page 14: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 14

Blank nodes

Simple blank node: [] or _:x

Blank node as subject: [ predicate object ; predicate object ... ] .

:john ex:hasFather [] .:john ex:hasFather _:x .:john ex:hasFather [] .:john ex:hasFather _:x .

[ ex:hasName "John"] .[ ex:authorOf :lotr ;ex:hasName "Tolkien"] .

[ ex:hasName "John"] .[ ex:authorOf :lotr ;ex:hasName "Tolkien"] .

Page 15: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 15

Collections

( object1 ... objectn )

Short for:doc1 ex:hasAuthor

[ rdf:first :john;rdf:rest [ rdf:first :mary; rdf:rest rdf:nil ]

] .

:doc1 ex:hasAuthor[ rdf:first :john;rdf:rest [ rdf:first :mary; rdf:rest rdf:nil ]

] .

:doc1 ex:hasAuthor (:john :mary) .:doc1 ex:hasAuthor (:john :mary) .

Page 16: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 16

Example

@prefix rdf: http://www.w3.org/1999/02/22-rdf-syntaxns# .@prefix dc: <http://purl.org/dc/elements/1.1/> .@prefix : <http://example.org/#> .

<http://www.w3.org/TR/rdf-syntax-grammar>dc:title "RDF/XML Syntax Specification (Revised)" ;:editor [:fullName "Dave Beckett";:homePage <http://purl.org/net/dajobe/>

] .

@prefix rdf: http://www.w3.org/1999/02/22-rdf-syntaxns# .@prefix dc: <http://purl.org/dc/elements/1.1/> .@prefix : <http://example.org/#> .

<http://www.w3.org/TR/rdf-syntax-grammar>dc:title "RDF/XML Syntax Specification (Revised)" ;:editor [:fullName "Dave Beckett";:homePage <http://purl.org/net/dajobe/>

] .

Page 17: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 17

SPARQL

Uses SQL-like syntax

PREFIX dc: <http://purl.org/dc/elements/1.1/>SELECT ?titleWHERE { <http://example.org/book/book1> dc:title?title }

PREFIX dc: <http://purl.org/dc/elements/1.1/>SELECT ?titleWHERE { <http://example.org/book/book1> dc:title?title }

Prefix mechanism to abbreviate URIs

Variables to be returnedQuery pattern (list of triple patterns)

FROM Name of the graph

Page 18: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 18

SELECT

Variables selectionVariables: ?string

Syntax: SELECT var1,…,varn

?x ?title ?name

?x ?title ?name

SELECT ?nameSELECT ?x,?titleSELECT ?nameSELECT ?x,?title

Page 19: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 19

WHEREGraph patterns to matchSet of triples{ (subject predicate object .)* }

Subject: URI, QName, Blank node, Literal, VariablePredicate: URI, QName, Blank node, VariableObject: URI, QName, Blank node, Literal, Variable

Page 20: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 20

Graph patterns

The pattern contains unbound symbolsBy binding the symbols (if possible), subgraphs of the RDF graph are selectedIf there is such a selection, the query returns the bound resources

Page 21: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 21

Graph patterns

E.g.: (subject,?p,?o)?p and ?o are “unknowns”

Page 22: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 22

Graph patterns

The triplets in WHERE define the graph pattern, with ?p and ?o “unbound” symbols The query returns a list of matching p,o pairs

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

Page 23: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 23

Example 1

Returns:

SELECT ?cat ?val WHERE { ?x rdf:value ?val.

?x category ?cat }

SELECT ?cat ?val WHERE { ?x rdf:value ?val.

?x category ?cat }

[["Total Members",100],["Total Members",200],…,["Full Members",10],…][["Total Members",100],["Total Members",200],…,["Full Members",10],…]

Page 24: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 24

Example 2

Returns:[["Total Members",200],…][["Total Members",200],…]

SELECT ?cat ?valWHERE { ?x rdf:value ?val.

?x category ?cat. FILTER(?val>=200). }

SELECT ?cat ?valWHERE { ?x rdf:value ?val.

?x category ?cat. FILTER(?val>=200). }

Page 25: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 25

Example 3

Returns:[["Total Members",100,Resource(http://...)],…,] [["Total Members",100,Resource(http://...)],…,]

SELECT ?cat ?val ?uriWHERE { ?x rdf:value ?val.

?x category ?cat. ?al contains ?x. ?al linkTo ?uri }

SELECT ?cat ?val ?uriWHERE { ?x rdf:value ?val.

?x category ?cat. ?al contains ?x. ?al linkTo ?uri }

Page 26: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 26

Example 4

Returns:

SELECT ?cat ?val ?uriWHERE { ?x rdf:value ?val.

?x category ?cat. OPTIONAL ?al contains ?x.

?al linkTo ?uri }

SELECT ?cat ?val ?uriWHERE { ?x rdf:value ?val.

?x category ?cat. OPTIONAL ?al contains ?x.

?al linkTo ?uri }

[["Total Members",100,Resource(http://...)], …, ["Full Members",20, ],…,][["Total Members",100,Resource(http://...)], …, ["Full Members",20, ],…,]

Page 27: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 27

Other SPARQL Features

Limit the number of returned resultsRemove duplicates, sort them,…Specify several data sources (via URI-s) within the query (essentially, a merge) Construct a graph combining a separate pattern and the query results Use datatypes and/or language tags when matching a pattern

Page 28: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 28

SPARQL use in practice

Locally, i.e., bound to a programming environments like Jena

Jena is a Java framework for building Semantic Web applications; provides an environment for RDF, RDFS and OWL, SPARQL and includes a rule- based inference engine

Remotely, e.g., over the network or into a database

Page 29: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 29

Page 30: SPARQL - Query Language for RDF - The e-Lite Research Group

Tools for conversionGRDDL (Gleaning Resource Descriptions from Dialects of Languages)

W3C Recommendation (Sep 11th, 2007)Enables users to obtain RDF triples out of XML documents

RDFa (Resource Description Framework-in-attributes) W3C RecommendationSet of extensions to XHTML that allows to annotate XHTML markup with semanticsUses attributes from XHTML's meta and link elements, and generalizes them so that they are usable on all elementsA simple mapping is defined so that RDF triples may be extracted

F. Corno, L. Farinetti - Politecnico di Torino 30

Page 31: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 31

SPARQL query structure

A SPARQL query includes, in orderPrefix declarations, for abbreviating URIs A result clause, identifying what information to return from the query The query pattern, specifying what to query for in the underlying dataset Query modifiers: slicing, ordering, and otherwise rearranging query results

Page 32: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 32

SPARQL query structure

A SPARQL query includes, in order# prefix declarationsPREFIX foo: <http://example.com/resources/>...# result clauseSELECT ...# query patternWHERE {

...}# query modifiersORDER BY ...

# prefix declarationsPREFIX foo: <http://example.com/resources/>...# result clauseSELECT ...# query patternWHERE {

...}# query modifiersORDER BY ...

Page 33: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 33

Dataset: Friend of a Friend (FOAF)FOAF is a standard RDF vocabulary for describing people and relationships Tim Berners-Lee's FOAF information available at http://www.w3.org/People/Berners-Lee/card

@prefix card: <http://www.w3.org/People/Berners-Lee/card#> .@prefix foaf: <http://xmlns.com/foaf/0.1/> .card:i foaf:name "Timothy Berners-Lee" .<http://bblfish.net/people/henry/card#me> foaf:name "Henry Story" .<http://www.cambridgesemantics.com/people/about/lee> foaf:name "Lee Feigenbaum" .card:amy foaf:name "Amy van der Hiel" ....

@prefix card: <http://www.w3.org/People/Berners-Lee/card#> .@prefix foaf: <http://xmlns.com/foaf/0.1/> .card:i foaf:name "Timothy Berners-Lee" .<http://bblfish.net/people/henry/card#me> foaf:name "Henry Story" .<http://www.cambridgesemantics.com/people/about/lee> foaf:name "Lee Feigenbaum" .card:amy foaf:name "Amy van der Hiel" ....

Page 34: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 34

Example 1 – simple triple patternIn the graph http://www.w3.org/People/Berners-Lee/card, find all subjects (?person) and objects (?name) linked with the foaf:name predicate. Then return all the values of ?name. In other words, find all names mentioned in Tim Berners-Lee’s FOAF file

PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?nameWHERE {

?person foaf:name ?name .}

PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?nameWHERE {

?person foaf:name ?name .}

Page 35: SPARQL - Query Language for RDF - The e-Lite Research Group

SPARQL endpointsAccept queries and returns results via HTTP

Generic endpoints queries any Web-accessible RDF data Specific endpoints are hardwired to query against particular datasets

The results of SPARQL queries can be returned in a variety of formats:

XML, JSON, RDF, HTMLJSON (JavaScript Object Notation): lightweight computer data interchange format; text-based, human-readable format for representing simple data structures and associative arrays

F. Corno, L. Farinetti - Politecnico di Torino 35

Page 36: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 36

SPARQL endpointsThis query is for an arbitrary bit of RDF data (Tim Berners-Lee's FOAF file)=> generic endpoint to run itPossible choices

HP's ARQ at sparql.orghttp://sparql.org/sparql.html

OpenLink's Virtuoso (Make sure to choose "Retrieve remote RDF data for all missing source graphs")

http://demo.openlinksw.com/sparqlRedland’s Rasqal

http://librdf.org/query/

Page 37: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 37

OpenLink’s Virtuoso

Dataset

SPARQL query

Page 38: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 38

Example 1 - simple triple pattern

PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?nameWHERE {

?person foaf:name ?name .}

PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?nameWHERE {

?person foaf:name ?name .}

Page 39: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 39

Example 2 – multiple triple patternFind all people in Tim Berners- Lee’s FOAF file that have names and email addressesReturn each person’s URI, name, and email address

Multiple triple patterns retrieve multiple properties about a particular resource SELECT * selects all variables mentioned in the query

PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT *WHERE {

?person foaf:name ?name .?person foaf:mbox ?email .

}

PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT *WHERE {

?person foaf:name ?name .?person foaf:mbox ?email .

}

Page 40: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 40

Example 2 - multiple triple pattern

Page 41: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 41

Example 3 – traversing a graphFind the homepage of anyone known by Tim Berners-Lee

Page 42: SPARQL - Query Language for RDF - The e-Lite Research Group

Example 3 – traversing a graph

The FROM keyword specifies the target graph in the queryBy using ?known as an object of one triple and the subject of another, it is possible to traverse multiple links in the graph

F. Corno, L. Farinetti - Politecnico di Torino 42

PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX card: <http://www.w3.org/People/Berners-Lee/card#>SELECT ?homepageFROM <http://www.w3.org/People/Berners-Lee/card>WHERE {

card:i foaf:knows ?known .?known foaf:homepage ?homepage .

}

PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX card: <http://www.w3.org/People/Berners-Lee/card#>SELECT ?homepageFROM <http://www.w3.org/People/Berners-Lee/card>WHERE {

card:i foaf:knows ?known .?known foaf:homepage ?homepage .

}

Page 43: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 43

Dataset: DBPedia

DBPedia is an RDF version of information from WikipediaContains data derived from Wikipedia’s infoboxes, category hierarchy, article abstracts, and various external linksContains over 100 million triplesDataset: http://dbpedia.org/

Page 44: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 44

Example 4 – exploring DBPedia

Find 15 example concepts in the DBPedia datasetSELECT DISTINCT ?conceptWHERE {

?s a ?concept .} LIMIT 15

SELECT DISTINCT ?conceptWHERE {

?s a ?concept .} LIMIT 15

Page 45: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 45

Example 4 – exploring DBPediaLIMIT is a solution modifier that limits the number of rows returned from a query SPARQL has two other solution modifiers

ORDER BY for sorting query solutions on the value of one or more variables OFFSET, used in conjunction with LIMIT and ORDER BY to take a slice of a sorted solution set (e.g. for paging)

The SPARQL keyword a is a shortcut for the common predicate rdf:type (class of a resource)The DISTINCT modifier eliminates duplicate rows from the query results

Page 46: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 46

Example 5 – basic SPARQL filtersFind all landlocked countries with a population greater than 15 million

FILTER constraints use boolean conditions to filter outunwanted query results A semicolon (;) can be used to separate two triple patterns that share the same subject

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX type: <http://dbpedia.org/class/yago/>PREFIX prop: <http://dbpedia.org/property/>SELECT ?country_name ?populationWHERE {

?country a type:LandlockedCountries ;rdfs:label ?country_name ;prop:populationEstimate ?population .

FILTER (?population > 15000000) .}

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX type: <http://dbpedia.org/class/yago/>PREFIX prop: <http://dbpedia.org/property/>SELECT ?country_name ?populationWHERE {

?country a type:LandlockedCountries ;rdfs:label ?country_name ;prop:populationEstimate ?population .

FILTER (?population > 15000000) .}

Page 47: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 47

SPARQL filters

Conditions on literal valuesSyntax

Examples

FILTER expressionFILTER expression

FILTER (?age > 30) FILTER isIRI(?x) FILTER !BOUND(?y)

FILTER (?age > 30) FILTER isIRI(?x) FILTER !BOUND(?y)

Page 48: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 48

SPARQL filters

BOUND(var)true if var is bound in query answerfalse, otherwise!BOUND(var) enables negation- as- failure

Testing typesisIRI(A): A is an “Internationalized Resource Identifier”isBLANK(A): A is a blank nodeisLITERAL(A): A is a literal

Page 49: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 49

SPARQL filtersComparison between RDF terms

Comparison between Numeric and Date types

Boolean AND/OR

Basic arithmetic

A = BA != BA = BA != B

A = BA != BA <= BA >= BA < BA > B

A = BA != BA <= BA >= BA < BA > B

A && BA || BA && BA || B

A + BA - BA * BA / B

A + BA - BA * BA / B

Page 50: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 50

Example 5 – basic SPARQL filters

Note all the translated duplicates in the resultsHow can we deal with that?

Page 51: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 51

Example 6 – SPARQL filtersFind me all landlocked countries with a population greater than 15 million (revisited), with the highest population country first

PREFIX type: <http://dbpedia.org/class/yago/>PREFIX prop: <http://dbpedia.org/property/>SELECT ?country_name ?populationWHERE {

?country a type:LandlockedCountries ;rdfs:label ?country_name ;prop:populationEstimate ?population .

FILTER (?population > 15000000 && langMatches(lang(?country_name), "EN")) .

} ORDER BY DESC(?population)

PREFIX type: <http://dbpedia.org/class/yago/>PREFIX prop: <http://dbpedia.org/property/>SELECT ?country_name ?populationWHERE {

?country a type:LandlockedCountries ;rdfs:label ?country_name ;prop:populationEstimate ?population .

FILTER (?population > 15000000 && langMatches(lang(?country_name), "EN")) .

} ORDER BY DESC(?population)

Page 52: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 52

Example 6 – SPARQL filters

lang extracts a literal’s language tag, if any langMatches matches a language tag against a language range

Page 53: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 53

Dataset: Jamendo

Jamendo is a community collection of music all freely licensed under Creative Commonslicenses

http://www.jamendo.com/it/DBTune.org hosts a queryable RDF version of information about Jamendo's music collection

Data on thousands of artists, tens of thousands of albums, and nearly 100,000 trackshttp://dbtune.org/

Page 54: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 54

Example 7 – the wrong way

Find all Jamendo artists along with their image, home page, and the location they’re near

PREFIX mo: <http://purl.org/ontology/mo/>PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?name ?img ?hp ?locWHERE {?a a mo:MusicArtist ;

foaf:name ?name ;foaf:img ?img ;foaf:homepage ?hp ;foaf:based_near ?loc .

}

PREFIX mo: <http://purl.org/ontology/mo/>PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?name ?img ?hp ?locWHERE {?a a mo:MusicArtist ;

foaf:name ?name ;foaf:img ?img ;foaf:homepage ?hp ;foaf:based_near ?loc .

}

Page 55: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 55

Example 7 – DBTune SPARQL endpoint

Jamendo has information on about 3,500 artists Trying the query we only get 2,667 results. What's wrong?

http://dbtune.org/jamendo/store/

Page 56: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 56

Example 7 – the right wayNot every artist has an image, homepage, or location! OPTIONAL tries to match a graph pattern, but doesn't fail the whole query if the optional match failsIf an OPTIONAL pattern fails to match for a particular solution, any variables in that pattern remain unbound(no value) for that solution

PREFIX mo: <http://purl.org/ontology/mo/>PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?name ?img ?hp ?locWHERE {?a a mo:MusicArtist ;

foaf:name ?name .OPTIONAL { ?a foaf:img ?img }OPTIONAL { ?a foaf:homepage ?hp }OPTIONAL { ?a foaf:based_near ?loc }

}

PREFIX mo: <http://purl.org/ontology/mo/>PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?name ?img ?hp ?locWHERE {?a a mo:MusicArtist ;

foaf:name ?name .OPTIONAL { ?a foaf:img ?img }OPTIONAL { ?a foaf:homepage ?hp }OPTIONAL { ?a foaf:based_near ?loc }

}

Page 57: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 57

Dataset: GovTrack

GovTrack provides SPARQL access to data on the U.S. Congress Contains over 13,000,000 triples about legislators, bills, and voteshttp://www.govtrack.us/

Page 58: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 58

Example 8 – querying alternatives

PREFIX bill: <http://www.rdfabout.com/rdf/schema/usbill/>PREFIX dc: <http://purl.org/dc/elements/1.1/>PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?title ?sponsor ?status WHERE { { ?bill bill:sponsor ?mccain ; bill:cosponsor ?obama . }

UNION{ ?bill bill:sponsor ?obama ; bill:cosponsor ?mccain . }

?bill a bill:SenateBill ;bill:status ?status ;bill:sponsor ?sponsor ;dc:title ?title .

?obama foaf:name "Barack Obama" .?mccain foaf:name "John McCain" .

}

PREFIX bill: <http://www.rdfabout.com/rdf/schema/usbill/>PREFIX dc: <http://purl.org/dc/elements/1.1/>PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?title ?sponsor ?status WHERE { { ?bill bill:sponsor ?mccain ; bill:cosponsor ?obama . }

UNION{ ?bill bill:sponsor ?obama ; bill:cosponsor ?mccain . }

?bill a bill:SenateBill ;bill:status ?status ;bill:sponsor ?sponsor ;dc:title ?title .

?obama foaf:name "Barack Obama" .?mccain foaf:name "John McCain" .

}

Find Senate bills that either John McCain or Barack Obama sponsored and the other cosponsored

Page 59: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 59

Example 8 – GovTrack specific endpoint

The UNION keyword forms a disjunction of two graph patterns: solutions to both sides of the UNION are included in the results

http://www.govtrack.us/developers/rdf.xpd

Page 60: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 60

RDF datasetsAll queries so far have been against a single graphIn SPARQL this is known as the default graphRDF datasets are composed of a single default graph and zero or more named graphs, identified by a URI Named graphs can be specified with one or more FROM NAMED clauses, or they can be hardwired into a particular SPARQL endpoint The SPARQL GRAPH keyword allows portions of a query to match against the named graphs in the RDF datasetAnything outside a GRAPH clause matches against the default graph

Page 61: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 61

Dataset: semanticweb.org

data.semanticweb.org hosts RDF data regarding workshops, schedules, and presenters for the International Semantic Web (ISWC) and European Semantic Web Conference (ESWC) series of events Presents data via FOAF, SWRC, and iCal ontologies The data for each individual ISWC or ESWC event is stored in its own named graph

i.e., there is one named graph per conference event contained in this dataset

http://data.semanticweb.org/

Page 62: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 62

Example 9 – querying named graphs

Find people who have been involved with at least three ISWC or ESWC conference events

SELECT DISTINCT ?personWHERE {

GRAPH ?g1 { ?person a foaf:Person }GRAPH ?g2 { ?person a foaf:Person }GRAPH ?g3 { ?person a foaf:Person }FILTER(?g1 != ?g2 && ?g1 != ?g3 && ?g2 != ?g3) .

}

SELECT DISTINCT ?personWHERE {

GRAPH ?g1 { ?person a foaf:Person }GRAPH ?g2 { ?person a foaf:Person }GRAPH ?g3 { ?person a foaf:Person }FILTER(?g1 != ?g2 && ?g1 != ?g3 && ?g2 != ?g3) .

}

Page 63: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 63

Example 9 – querying named graphs

The GRAPH ?g construct allows a pattern to match against one of the named graphs in the RDF datasetThe URI of the matching graph is bound to ?g (or whatever variable was actually used) The FILTER assures that we’re finding a person who occurs in three distinct graphs The Web interface used for this SPARQL query defines the foaf: prefix, which is why it is omitted here

Page 64: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 64

Data.semanticweb.org specific SPARQL endpoint

http://data.semanticweb.org/snorql/

Page 65: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 65

Exercises - RDF@prefix : <http://example.org/data#> .@prefix ont: <http://example.org/myOntology#> .@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> .

:johnvcard:FN "John Smith" ;vcard:N [vcard:Given "John" ;vcard:Family "Smith" ] ;

ont:hasAge 32 ;ont:marriedTo :mary .

:maryvcard:FN "Mary Smith" ;vcard:N [vcard:Given "Mary" ;vcard:Family "Smith" ] ;

ont:hasAge 29 .

@prefix : <http://example.org/data#> .@prefix ont: <http://example.org/myOntology#> .@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0#> .

:johnvcard:FN "John Smith" ;vcard:N [vcard:Given "John" ;vcard:Family "Smith" ] ;

ont:hasAge 32 ;ont:marriedTo :mary .

:maryvcard:FN "Mary Smith" ;vcard:N [vcard:Given "Mary" ;vcard:Family "Smith" ] ;

ont:hasAge 29 .

Page 66: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 66

SPARQL query – exercise 1

Return the full names of all people in the graph

Result

PREFIX vCard: <http://www.w3.org/2001/vcardrdf/3.0#>SELECT ?fullNameWHERE {?x vCard:FN ?fullName}

PREFIX vCard: <http://www.w3.org/2001/vcardrdf/3.0#>SELECT ?fullNameWHERE {?x vCard:FN ?fullName}

fullName===============“John Smith”“Mary Smith”

fullName===============“John Smith”“Mary Smith”

Page 67: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 67

SPARQL query – exercise 2

Return the relation between John and Mary

Result

PREFIX : <http://example.org/data#>SELECT ?pWHERE { :john ?p :mary }

PREFIX : <http://example.org/data#>SELECT ?pWHERE { :john ?p :mary }

p=================<http://example.org/myOntology#marriedTo>

p=================<http://example.org/myOntology#marriedTo>

Page 68: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 68

SPARQL query – exercise 3Return the spouse of a person whose name is John Smith

Result

PREFIX vCard: <http://www.w3.org/2001/vcard-rdf/3.0#>PREFIX ont: <http://example.org/myOntology#>SELECT ?yWHERE {?x vCard:FN "John Smith".

?x ont:marriedTo ?y}

PREFIX vCard: <http://www.w3.org/2001/vcard-rdf/3.0#>PREFIX ont: <http://example.org/myOntology#>SELECT ?yWHERE {?x vCard:FN "John Smith".

?x ont:marriedTo ?y}

y=================<http://example.org/data#mary>

y=================<http://example.org/data#mary>

Page 69: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 69

SPARQL query – exercise 4Return the name and the first name of all people in the knowledge base

Result

PREFIX vCard: <http://www.w3.org/2001/vcard-rdf/3.0#>SELECT ?name, ?firstNameWHERE {?x vCard:N ?name .

?name vCard:Given ?firstName}

PREFIX vCard: <http://www.w3.org/2001/vcard-rdf/3.0#>SELECT ?name, ?firstNameWHERE {?x vCard:N ?name .

?name vCard:Given ?firstName}

name firstName========================“John Smith” "John"“Mary Smith” "Mary"

name firstName========================“John Smith” "John"“Mary Smith” "Mary"

Page 70: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 70

SPARQL query – exercise 5

Return all people over 30 in the knowledge base

Result

PREFIX ont: <http://example.org/myOntology#>SELECT ?xWHERE {?x ont:hasAge ?age .

FILTER(?age > 30)}

PREFIX ont: <http://example.org/myOntology#>SELECT ?xWHERE {?x ont:hasAge ?age .

FILTER(?age > 30)}

x=================<http://example.org/data#john>

x=================<http://example.org/data#john>

Page 71: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 71

FROM

Select RDF graph (= dataset) to be queriedIn case of multiple FROM clauses, graphs are mergedExample

PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?nameFROM <http://example.org/foaf/aliceFoaf>WHERE { ?x foaf:name ?name }

PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?nameFROM <http://example.org/foaf/aliceFoaf>WHERE { ?x foaf:name ?name }

Page 72: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 72

SPARQL query – exercise 6

Graph http://example.org/bob

Graph http://example.org/alice

@prefix foaf: <http://xmlns.com/foaf/0.1/> ._:a foaf:name "Alice" ._:a foaf:mbox <mailto:[email protected]> .

@prefix foaf: <http://xmlns.com/foaf/0.1/> ._:a foaf:name "Alice" ._:a foaf:mbox <mailto:[email protected]> .

@prefix foaf: <http://xmlns.com/foaf/0.1/> ._:a foaf:name "Bob" ._:a foaf:mbox <mailto:[email protected]> .

@prefix foaf: <http://xmlns.com/foaf/0.1/> ._:a foaf:name "Bob" ._:a foaf:mbox <mailto:[email protected]> .

Page 73: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 73

SPARQL query – exercise 6

Return the names of people in both graphs

Result

PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?src ?nameFROM NAMED <http://example.org/alice>FROM NAMED <http://example.org/bob>WHERE{ GRAPH ?src { ?x foaf:name ?name } }

PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT ?src ?nameFROM NAMED <http://example.org/alice>FROM NAMED <http://example.org/bob>WHERE{ GRAPH ?src { ?x foaf:name ?name } }

src name=======================================<http://example.org/bob> "Bob"<http://example.org/alice> "Alice"

src name=======================================<http://example.org/bob> "Bob"<http://example.org/alice> "Alice"

Page 74: SPARQL - Query Language for RDF - The e-Lite Research Group

The Linking Open Data Project

Page 75: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 75

The Linking Open Data ProjectA fundamental prerequisite of the Semantic Web is the existence of large amounts of meaningfully interlinked RDF data on the Web.Linked Data is about using the Web to connect related data that wasn’t previously linked, or using the Web to lower the barriers to linking data currently linked using other methodsIt is a recommended best practice for exposing, sharing, and connecting pieces of data, information, and knowledge on the Semantic Web using URIs and RDF

F. Corno, L. Farinetti - Politecnico di Torino 75

Page 76: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 76

The Linking Open Data ProjectCommunity effort to make various open datasets available on the Web as RDF and to set RDF links between data items from different datasets The datasets are published according to the Linked Data principles and can therefore be crawled by Semantic Web search engines and navigated using Semantic Web browsersSupported by W3CBegan early 2007

http://linkeddata.org/homeF. Corno, L. Farinetti - Politecnico di Torino 76

Page 77: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 77

The Web of Documents

Analogy: a global filesystemDesigned for human consumptionPrimary objects: documentsLinks between documents (or sub-parts) Degree of structure in objects: fairly lowSemantics of content and links: implicit

F. Corno, L. Farinetti - Politecnico di Torino 77

Page 78: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 78

The Web of Linked DataAnalogy: a global databaseDesigned for machines first, humans laterPrimary objects: things (or descriptions of things)Links between thingsDegree of structure in (descriptions of) things: highSemantics of content and links: explicit

F. Corno, L. Farinetti - Politecnico di Torino 78

Page 79: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 79

Linked Data

A way of publishing data on the Web thatEncourages reuseReduces redundancyMaximizes its (real and potential) inter-connectednessEnables network effects to add value to data

F. Corno, L. Farinetti - Politecnico di Torino 79

Page 80: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 80

Linked Data example

F. Corno, L. Farinetti - Politecnico di Torino 80

Page 81: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 81

Why publish Linked Data?

Ease of discoveryEase of consumption

Standards-based data sharingReduced redundancyAdded value

Build ecosystems around your data/content

F. Corno, L. Farinetti - Politecnico di Torino 81

Page 82: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 82

May 2007Linked Open Data cloud

Page 83: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 83

Main contributorsDBLP Computer science bibliography

Richard Cyganiak, Chris Bizer (FU Berlin)

DBpedia Structured information from Wikipedia

Universität Leipzig, FU Berlin, OpenLink

DBtune, Jamendo Creative Commons music repositories

Yves Raimond (University of London)Geonames World-wide geographical database

Bernard Vatant (Mondeca), Marc Wick (Geonames)

Musicbrainz Music and artist database

Frederick Giasson, Kingsley Idehen (Zitgist)

Project Gutenberg Literary works in the public domain

Piet Hensel, Hans Butschalowsky (FU Berlin)

Revyu Community reviews about anything

Tom Heath, Enrico Motta (Open University)

RDF Book Mashup Books from the Amazon API

Tobias Gauß, Chris Bizer (FU Berlin)US Census Data Statistical information about the U.S.

Josh Tauberer (University of Pennsylvania), OpenLink

World Factbook Country statistics, compiled by CIA

Piet Hensel, Hans Butschalowsky (FU Berlin)

Page 84: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 84

July 2007

Page 85: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 85

August 2007

Page 86: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 86

November 2007

Page 87: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 87

February 2008

Page 88: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 88

September 2008

Page 89: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 89

March 2009

Page 90: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 90

Statistics on datasetshttp://esw.w3.org/topic/TaskForces/CommunityProjects/LinkingOpenData/DataSets/Statistics

Page 91: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 91

Statistics on links between datasets http://esw.w3.org/topic/TaskForces/CommunityProjects/LinkingOpenData/DataSets/LinkStatistics

Page 92: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 92

Linked Data shopping list

List of sites/datasets that the “community”would like to see published as Linked Data

This list may form the basis for some campaign/action to encourage these data publishers to embrace Linked Data

http://community.linkeddata.org/MediaWiki/index.php?ShoppingList

Page 93: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 93

The Linked Data principlesUse URIs as names for things

Anything, not just documentsYou are not your homepageInformation resources and non-information resources

Use HTTP URIsGlobally unique names, distributed ownershipAllows people to look up those names

F. Corno, L. Farinetti - Politecnico di Torino 93

Page 94: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 94

Linked Data principles

Provide useful information in RDFWhen someone looks up a URI

Include RDF links to other URIsTo enable discovery of related information

F. Corno, L. Farinetti - Politecnico di Torino 94

Page 95: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 95

Link to other datasets

Popular predicates for linkingowl:sameAsfoaf:homepagefoaf:topicfoaf:based_nearfoaf:maker/foaf:madefoaf:pagefoaf:primaryTopicrdfs:seeAlso

F. Corno, L. Farinetti - Politecnico di Torino 95

Page 96: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 96

Link to other Data Sets

F. Corno, L. Farinetti - Politecnico di Torino 96

Page 97: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 97

LInked Data toolsTools for Publishing Linked Data

D2R Server: a tool for publishing relational databases as Linked Data Talis Platform: the Talis Platform provides Linked Data-compliant hosting for content and RDF data Pubby: a Linked Data frontend for SPARQL endpoints Paget: a framework for building Linked Data applications Vapour: Linked Data Validator

Tools for consuming Linked DataSemantic Web Browsers and Client Libraries Semantic Web Search Engines

Linked Data applications for end usersSemantic Web Browsers and Client Libraries Other Linked Data Applications

Page 98: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 98

The Tabulator Project

Generic data browser and editorProvides a way to browse RDF data on the web

Open source under the W3C software license

http://www.w3.org/2005/ajar/tab

Page 99: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 99

The Tabulator Project

Page 100: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 100

Pubby

Many triple stores and other SPARQL endpointscan be accessed only by SPARQL client applications that use the SPARQL protocol

It cannot be accessed by the growing variety of Linked Data clients

Pubby is designed to provide a Linked Data interface to those RDF data sources http://www4.wiwiss.fu-berlin.de/pubby/

Page 101: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 101

Pubby

Page 102: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 102

References

W3C, “Introduction to the Semantic Web”http://www.w3.org/2006/Talks/0524-Edinburgh-IH/

Lee Feigenbaum, “SPARQL By Example”http://www.cambridgesemantics.com/2008/09/sparql-by-example

Valentina Tamma, “Chapter 4: SPARQL”http://www.csc.liv.ac.uk/~valli/Comp318/PDF/SPARQL.pdf

Tom Heath, “An Introduction to Linked Data”http://tomheath.com/slides/2009-02-austin-linkeddata-tutorial.pdf

Page 103: SPARQL - Query Language for RDF - The e-Lite Research Group

F. Corno, L. Farinetti - Politecnico di Torino 103

License

This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.