1 / 25

SPARQL SPARQL Protocol and RDF Query Language

SPARQL SPARQL Protocol and RDF Query Language. S. Garlatti. Outline. SPARQL. SPARQL: SPARQL Protocol and RDF Query Language. SPARQL

zaria
Download Presentation

SPARQL SPARQL Protocol and RDF Query Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SPARQL SPARQL Protocol and RDF Query Language S. Garlatti

  2. Outline • SPARQL Semantic Web in Action

  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] Semantic Web in Action

  4. SPARQL: SPARQL Protocol and RDF Query Language • SPARQL = • A Query Language • A Result Form • An Access Protocol Linked Data & Social Web

  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 Linked Data & Social Web

  6. SPARQL: SPARQL Protocol and RDF Query Language « Select » equivalent to « SQL Select » returns a regular tableSelect …From … Identify data sources to queryWhere { … } The triple/graph pattern to be matched against the triple/graphs of RDF A conjunction of triples PREFIX to declare the schema used in the query Linked Data & Social Web

  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: Linked Data & Social Web

  8. SPARQL: SPARQL Protocol and RDF Query Language • PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX : <http://dbpedia.org/resource/> PREFIX dbpedia2: <http://dbpedia.org/property/> PREFIX dbpedia: <http://dbpedia.org/> SELECT distinct ?name ?birth ?person FROM <http://dbpedia.org/>WHERE • { ?person dbpedia2:birthPlace <http://dbpedia.org/resource/Berlin>. ?person dbpedia2:birth ?birth . ?person foaf:name ?name . } Semantic Web in Action

  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 Semantic Web in Action

  10. SPARQL: SPARQL Protocol and RDF Query Language • 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.} Semantic Web in Action

  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 . } Linked Data & Social Web

  12. SPARQL: SPARQL Protocol and RDF Query Language • “regex” matches only plain literals with no language tag • {  ?x foaf:name ?name . ?x foaf:mbox ?mbox . FILTERregex(?name, "Smith") } • PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?title WHERE{ ?x dc:title ?title FILTERregex(?title, "web", "i" ) } Linked Data & Social Web

  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 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} } Linked Data & Social Web

  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 . } Linked Data & Social Web

  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.} ORDERBY ?name LIMIT 20 OFFSET 20 Linked Data & Social Web

  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) Linked Data & Social Web

  17. SPARQL: SPARQL Protocol and RDF Query Language PREFIX foaf: <http://xmlns.com/foaf/0.1/>FROM <http://molene.enstb.org/mlearning09/wp-content/plugins/wp-rdfa/foaf.phpCONSTRUCT{?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.} Linked Data & Social Web

  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) • PREFIX foaf: <http://xmlns.com/foaf/0.1/> ASKWHERE {?person a foaf:Person; foaf:mbox <mailto:ab@telecom-bretagne>. } Semantic Web in Action

  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.} Semantic Web in Action

  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 Semantic Web in Action

  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 Semantic Web in Action

  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 Semantic Web in Action

  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/sparql-protocol-types/#"><query> SELECT ?x ?p ?y WHERE {?x ?p ?y} </query></query-request> </soapenv:Body> </soapenv:Envelope> Semantic Web in Action

  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 Linked Data & Social Web

  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/ Semantic Web in Action

More Related