SPARQL
SPARQL Protocol and RDF
Query Language

S. Garlatti

16/01/14
Outline
 SPARQL

page 2

Computer Science Department

Semantic Web in Action
SPARQL: SPARQL Protocol and RDF Query
Language


SPARQL
• pronounced "sparkle" [1]) is an RDF query language; its name
is...
SPARQL: SPARQL Protocol and RDF Query
Language
 SPARQL

=

• A Query Language
• A Result Form
• An Access Protocol

page ...
SPARQL: SPARQL Protocol and RDF Query
Language
 The

Query Language: query forms

• « Select » clause returns all or subs...
SPARQL: SPARQL Protocol and RDF Query
Language
«

Select » equivalent to « SQL Select » returns a
regular table
Select …
...
SPARQL: SPARQL Protocol and RDF Query
Language


PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name
FROM <http://exam...
SPARQL: SPARQL Protocol and RDF Query
Language


PREFIX
PREFIX
PREFIX
PREFIX

foaf: <http://xmlns.com/foaf/0.1/>
: <http:...
SPARQL: SPARQL Protocol and RDF Query
Language
 SPARQL


results:

namebirthperson« ":Dru_Berrymore/birth/birth_date_and...
SPARQL: SPARQL Protocol and RDF Query
Language




page 10

SELECT distinct ?name ?person
FROM
<http://dbpedia.org/>
WHE...
SPARQL: SPARQL Protocol and RDF Query
Language
A

constraint, expressed by the keyword “FILTER”,
is a restriction on solu...
SPARQL: SPARQL Protocol and RDF Query
Language
 “regex”

matches only plain literals with no
language tag





page 12
...
SPARQL: SPARQL Protocol and RDF Query
Language
 Optional

parts of the graph pattern may be
specified syntactically with ...
SPARQL: SPARQL Protocol and RDF Query
Language
 Matching

alternative

• Pattern alternatives are syntactically specified...
SPARQL: SPARQL Protocol and RDF Query
Language
 Sequence

& Modify

• « Order By » to sort, 
• « LIMIT » result number, 
...
SPARQL: SPARQL Protocol and RDF Query
Language
«

Construct »

• The CONSTRUCT query form returns a single RDF 
graph spe...
SPARQL: SPARQL Protocol and RDF Query
Language


PREFIX foaf: <http://xmlns.com/foaf/0.1/>
FROM <http://molene.enstb.org/...
SPARQL: SPARQL Protocol and RDF Query
Language
 ASK

• Returns a true/false value: test whether or not a query pattern 
h...
SPARQL: SPARQL Protocol and RDF Query
Language
 DESCRIBE

• The DESCRIBE form returns a single result RDF 
graph containi...
SPARQL: SPARQL Protocol and RDF Query
Language
 Applied

uses (from Ingenta)

• DESCRIBE for Prototyping
- DESCRIBE <http...
SPARQL: SPARQL Protocol and RDF Query
Language
 Applied

uses (from Ingenta)

• CONSTRUCT for transformation and also sim...
SPARQL: SPARQL Protocol and RDF Query
Language
 SPARQL

Protocol (from F. Gandon, INRIA)

• Sending queries and their res...
SPARQL: SPARQL Protocol and RDF Query
Language
 Example


with SOAP binding (from F. Gandon)

<?xml version="1.0" encodi...
SPARQL: SPARQL Protocol and RDF Query
Language
 Access

to Data on the web

• http://dbpedia.org/snorql/
• http://dbpedia...
SPARQL: SPARQL Protocol and RDF Query
Language
 Resources

• http://en.wikipedia.org/wiki/SPARQL
• http://www.w3.org/TR/r...
Upcoming SlideShare
Loading in...5
×

Sparql

971

Published on

SPARQL Language: A Short introduction

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
971
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
23
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Sparql

  1. 1. SPARQL SPARQL Protocol and RDF Query Language S. Garlatti 16/01/14
  2. 2. Outline  SPARQL page 2 Computer Science Department Semantic Web in Action
  3. 3. SPARQL: SPARQL Protocol and RDF Query Language  SPARQL • pronounced "sparkle" [1]) is an RDF query language; its name is a recursive acronym that stands for SPARQL Protocol and RDF Query Language. It is standardized by the RDF Data Access Working Group (DAWG) of the World Wide Web Consortium, and is considered a component of the semantic web. • Initially released as a Candidate Recommendation in April 2006, but returned to Working Draft status in October 2006, due to two open issues. [2] In June 2007, SPARQL advanced to Candidate Recommendation once again. [3] On 12th November 2007 the status of SPARQL changed into Proposed Recommendation. [4] On 15th January 2008, SPARQL became an official W3C Recommendation. [5] page 3 Computer Science Department Semantic Web in Action
  4. 4. SPARQL: SPARQL Protocol and RDF Query Language  SPARQL = • A Query Language • A Result Form • An Access Protocol page 4 Computer Science Department Linked Data & Social Web
  5. 5. SPARQL: SPARQL Protocol and RDF Query Language  The Query Language: query forms • « Select » clause returns all or subset of the variables bound in a query pattern match • « Construct » returns an RDF graph constructed by substituting variables in a set of triple templates • « Ask » returns a boolean indicating whether a query pattern matches • « Describe » returns an RDF graph that describe the resources found page 5 Computer Science Department Linked Data & Social Web
  6. 6. SPARQL: SPARQL Protocol and RDF Query Language « Select » equivalent to « SQL Select » returns a regular table Select … From … Identify data sources to query Where { … } The triple/graph pattern to be matched against the triple/graphs of RDF A conjunction of triples  PREFIX page 6 to declare the schema used in the query Computer Science Department Linked Data & Social Web
  7. 7. SPARQL: SPARQL Protocol and RDF Query Language  PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name FROM <http://example.org/foaf/aliceFoaf> WHERE { ?x foaf:name ?name } Result: name « Alice » page 7 Computer Science Department Linked Data & Social Web
  8. 8. SPARQL: SPARQL Protocol and RDF Query Language  PREFIX PREFIX PREFIX PREFIX foaf: <http://xmlns.com/foaf/0.1/> : <http://dbpedia.org/resource/> dbpedia2: <http://dbpedia.org/property/> dbpedia: <http://dbpedia.org/> SELECT distinct ?name ?birth ?person FROM <http://dbpedia.org/> WHERE  page 8 { ?person dbpedia2:birthPlace <http://dbpedia.org/resource/Berlin>. ?person dbpedia2:birth ?birth . ?person foaf:name ?name . } Computer Science Department Semantic Web in Action
  9. 9. SPARQL: SPARQL Protocol and RDF Query Language  SPARQL  results: namebirthperson« ":Dru_Berrymore/birth/birth_date_and_age :Dru_Berrymore "Dru Berrymore"@de:Dru_Berrymore/birth/birth_date_and_age :Dru_Berrymore "Walter Benjamin"@de:Berlin :Walter_Benjamin "Walter Benjamin"@de:Germany :Walter_Benjamin Name Birth « Dru Berrymore » page 9 Computer Science Department Semantic Web in Action Person
  10. 10. SPARQL: SPARQL Protocol and RDF Query Language   page 10 SELECT distinct ?name ?person FROM <http://dbpedia.org/> WHERE { ?person dbpedia2:birthPlace <http://dbpedia.org/resource/Berlin> . ?person foaf:name ?name . } SELECT distinct ?name ?birth ?death ?person FROM <http://dbpedia.org/> WHERE { ?person dbpedia2:birthPlace <http://dbpedia.org/resource/Berlin> . ?person dbpedia2:birth ?birth . ?person foaf:name ?name . ?person dbpedia2:death ?death. } Computer Science Department Semantic Web in Action
  11. 11. SPARQL: SPARQL Protocol and RDF Query Language A constraint, expressed by the keyword “FILTER”, is a restriction on solutions over the whole group in which the filter appears  PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX ns: <http://example.org/ns#> SELECT ?title ?price WHERE { ?x ns:price ?price . FILTER (?price < 30.5) ?x dc:title ?title . } page 11 Computer Science Department Linked Data & Social Web
  12. 12. SPARQL: SPARQL Protocol and RDF Query Language  “regex” matches only plain literals with no language tag   page 12 { ?x foaf:name ?name . ?x foaf:mbox ?mbox . FILTER regex(?name, "Smith") } PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?title WHERE { ?x dc:title ?title FILTER regex(?title, "web", "i" ) } Computer Science Department Linked Data & Social Web
  13. 13. SPARQL: SPARQL Protocol and RDF Query Language  Optional parts of the graph pattern may be specified syntactically with the “OPTIONAL” keyword applied to a graph pattern  page 13 SELECT distinct ?name ?birth ?death ?person FROM <http://dbpedia.org/> WHERE { ?person dbpedia2:birthPlace <http://dbpedia.org/resource/Berlin> . ?person dbpedia2:birth ?birth . ?person foaf:name ?name . OPTIONAL {?person dbpedia2:death ?death} } Computer Science Department Linked Data & Social Web
  14. 14. SPARQL: SPARQL Protocol and RDF Query Language  Matching alternative • Pattern alternatives are syntactically specified with the  UNION keyword  SELECT distinct ?name ?birth ?death ?person WHERE { {?person dbpedia2:birthPlace <http://dbpedia.org/resource/Berlin> } UNION {?person dbpedia2:death ?death} ?person foaf:name ?name . ?person dbpedia2:birth ?birth . } page 14 Computer Science Department Linked Data & Social Web
  15. 15. SPARQL: SPARQL Protocol and RDF Query Language  Sequence & Modify • « Order By » to sort,  • « LIMIT » result number,  • « OFFSET » rank of first result  SELECT distinct ?name ?person WHERE { ?person dbpedia2:birthPlace <http://dbpedia.org/resource/Berlin>. ?person foaf:name ?name. } ORDER BY ?name LIMIT 20 OFFSET 20 page 15 Computer Science Department Linked Data & Social Web
  16. 16. SPARQL: SPARQL Protocol and RDF Query Language « Construct » • The CONSTRUCT query form returns a single RDF  graph specified by a graph template.  - The result is an RDF graph formed by taking each query  solution in the solution sequence, substituting for the  variables in the graph template, and combining the triples into  a single RDF graph by set union. • Useful for aggregating data from multiple sources  and merging it into a local store (from Ingenta) page 16 Computer Science Department Linked Data & Social Web
  17. 17. SPARQL: SPARQL Protocol and RDF Query Language  PREFIX foaf: <http://xmlns.com/foaf/0.1/> FROM <http://molene.enstb.org/mlearning09/wpcontent/plugins/wp-rdfa/foaf.php CONSTRUCT { ?friend a foaf:Person; foaf:name ?name; foaf:homepage ?home.} WHERE { ?person foaf:mbox <mailto:ac@enstb.com>; foaf:knows ?friend. ?friend foaf:name ?name; foaf:homepage ?home.} page 17 Computer Science Department Linked Data & Social Web
  18. 18. SPARQL: SPARQL Protocol and RDF Query Language  ASK • Returns a true/false value: test whether or not a query pattern  has a solution.  • No information is returned about the possible query solutions,  just whether or not a solution exists • Is there data that looks like this? Do you have any information  about that? (from Ingenta)  page 18 PREFIX foaf: <http://xmlns.com/foaf/0.1/> ASK WHERE { ?person a foaf:Person; foaf:mbox <mailto:ab@telecom-bretagne>. } Computer Science Department Semantic Web in Action
  19. 19. SPARQL: SPARQL Protocol and RDF Query Language  DESCRIBE • The DESCRIBE form returns a single result RDF  graph containing RDF data about resources. • CONSTRUCT but with less control - Tell me about this or things that look like this … but you decide what’s relevant (from Ingenta)  PREFIX foaf: <http://xmlns.com/foaf/0.1/> DESCRIBE ?friend WHERE { ?person foaf:mbox “mailto:ab@telecom-bretagne”; foaf:knows ?friend.} page 19 Computer Science Department Semantic Web in Action
  20. 20. SPARQL: SPARQL Protocol and RDF Query Language  Applied uses (from Ingenta) • DESCRIBE for Prototyping - DESCRIBE <http://example.org/someResource> - Quickly assembling Uis, Web APIs • SELECT for Indexing - Building an ordering over some data ORDER BY, LIMIT page 20 Computer Science Department Semantic Web in Action
  21. 21. SPARQL: SPARQL Protocol and RDF Query Language  Applied uses (from Ingenta) • CONSTRUCT for transformation and also simple  inferencing - CONSTRUCT could be the XSLT of RDF - Currently limited by lack of expressions in CONSTRUCT  triple templates • ASK for validation • ASK – DESCRIBE – CONSTRUCT Pattern:  - Probe endpoint, Grab default view of data, Refine data extraction and/or  apply transformation page 21 Computer Science Department Semantic Web in Action
  22. 22. SPARQL: SPARQL Protocol and RDF Query Language  SPARQL Protocol (from F. Gandon, INRIA) • Sending queries and their results accross the web  Example with HTTP binding • GET /sparql/?query=<encoded query> HTTP/1.1 Host: www.inria.fr User-agent: my-sparql-client/0.1 page 22 Computer Science Department Semantic Web in Action
  23. 23. SPARQL: SPARQL Protocol and RDF Query Language  Example  with SOAP binding (from F. Gandon) <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <query-request xmlns="http://www.w3.org/2005/09/sparqlprotocol-types/#"> <query> SELECT ?x ?p ?y WHERE {?x ?p ?y} </query> </query-request> </soapenv:Body> </soapenv:Envelope> page 23 Computer Science Department Semantic Web in Action
  24. 24. SPARQL: SPARQL Protocol and RDF Query Language  Access to Data on the web • http://dbpedia.org/snorql/ • http://dbpedia.org/sparql • http://demo.openlinksw.com/rdfbrowser2/ • http://dataviewer.zitgist.com/ • Etc.  Twinkle : a sparql query tool • http://www.ldodds.com/projects/twinkle page 24 Computer Science Department Linked Data & Social Web
  25. 25. SPARQL: SPARQL Protocol and RDF Query Language  Resources • http://en.wikipedia.org/wiki/SPARQL • http://www.w3.org/TR/rdf-sparql-query/ • http://jena.sourceforge.net/ARQ/Tutorial/ • http://esw.w3.org/topic/SparqlImplementations • http://arc.semsol.org/home • http://virtuoso.openlinksw.com/wiki/main/Main/ page 25 Computer Science Department Semantic Web in Action
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×