The SPARQL Query Language Ral GarcaCastro scar Corcho

  • Slides: 44
Download presentation
The SPARQL Query Language Raúl García-Castro, Óscar Corcho, Daniel Vila-Suero Ontology Engineering Group Universidad

The SPARQL Query Language Raúl García-Castro, Óscar Corcho, Daniel Vila-Suero Ontology Engineering Group Universidad Politécnica de Madrid, Spain Speaker: Daniel Vila-Suero dvila@fi. upm. es

Index • • • Introduction Syntax Graph patterns Restricting values and solutions SPARQL query

Index • • • Introduction Syntax Graph patterns Restricting values and solutions SPARQL query forms SPARQL 1. 1 © Raúl García Castro et al. 2

RDF(S) query languages • Languages developed to allow accessing datasets expressed in RDF(S) (and

RDF(S) query languages • Languages developed to allow accessing datasets expressed in RDF(S) (and in some cases OWL) Application SQL queries Relational DB • • Application SPARQL, etc. , queries RDF(S) OWL Supported by the most important language APIs - Jena (HP labs) - Sesame (Aduna) - Boca (IBM) -. . . There are some differences wrt. languages like SQL, such as - Combination of different sources - Trust management - Open World Assumption © Raúl García Castro et al. 3

Query types • Selection and extraction - “Select all the essays, together with their

Query types • Selection and extraction - “Select all the essays, together with their authors and their authors’ names” - “Select everything that is related to the book ‘Bellum Civille’” • Reduction: we specify what it should not be returned - “Select everything except for the ontological information and the book translators” • Restructuring: the original structure is changed in the final result - “Invert the relationship ‘author’ by ‘is author of’” • Aggregation - “Return all the essays together with the mean number of authors per essay” • Combination and inferences - “Combine the information of a book called ‘La guerra civil’ and whose author is Julius Caesar with the book whose identifier is ‘Bellum Civille’” - “Select all the essays, together with its authors and author names”, including also the instances of the subclasses of Essay - “Obtain the relationship ‘coauthor’ among persons who have written the same book” © Raúl García Castro et al. 4

SPARQL • SPARQL Protocol and RDF Query Language • Supported by: Jena, Sesame, IBM

SPARQL • SPARQL Protocol and RDF Query Language • Supported by: Jena, Sesame, IBM Boca, etc. • Features - It supports most of the aforementioned queries - It supports datatype reasoning (datatypes can be requested instead of actual values) - The domain vocabulary and the knowledge representation vocabulary are treated differently by the query interpreters - It allows making queries over properties with multiple values, over multiple properties of a resource and over reifications - Queries can contain optional statements - Some implementations support aggregation queries • Limitations - Neither set operations nor existential or universal quantifiers can be included in the queries - It does not support recursive queries © Raúl García Castro et al. 6

SPARQL Protocol SPARQL Client Request SPARQL Service Result • SPARQL defines a communication protocol

SPARQL Protocol SPARQL Client Request SPARQL Service Result • SPARQL defines a communication protocol between clients and services • Provides: - Abstract interface - HTTP and SOAP bindings • Mainly intended for software developers © Raúl García Castro et al. 7

Sparql. Query Interface SPARQL Client query-request SPARQL Service query-result • Query request - One

Sparql. Query Interface SPARQL Client query-request SPARQL Service query-result • Query request - One SPARQL query string - Zero or one RDF datasets • Query result - SELECT and ASK: a SPARQL Results Document (XML-based) - DESCRIBE and CONSTRUCT: an RDF graph • Fault messages: - malformed-query - query-request-refused © Raúl García Castro et al. 8

SPARQL Endpoints • Implement the SPARQL protocol • Programmatic access using libraries: - ARC,

SPARQL Endpoints • Implement the SPARQL protocol • Programmatic access using libraries: - ARC, RAP, Jena, Sesame, Javascript SPARQL, Py. SPARQL, etc. • List of SPARQL Endpoints - http: //esw. w 3. org/topic/Sparql. Endpoints • Examples: Project Endpoint DBpedia http: //dbpedia. org/sparql BBC Programmes and Music http: //bbc. openlinksw. com/sparql/ data. gov http: //semantic. data. gov/sparql data. gov. uk http: //data. gov. uk/sparql Musicbrainz http: //dbtune. org/musicbrainz/sparql © Raúl García Castro et al. 9

Example: Querying dbpedia • People who were born in Berlin before 1900 © Raúl

Example: Querying dbpedia • People who were born in Berlin before 1900 © Raúl García Castro et al. 10

Example: Querying dbpedia © Raúl García Castro et al. 11

Example: Querying dbpedia © Raúl García Castro et al. 11

A simple SPARQL query Data: @prefix dc: <http: //purl. org/dc/elements/1. 1/>. @prefix : <http:

A simple SPARQL query Data: @prefix dc: <http: //purl. org/dc/elements/1. 1/>. @prefix : <http: //example. org/book/>. : book 1 dc: title "SPARQL Tutorial". Query: SELECT ? title WHERE { <http: //example. org/book 1> <http: //purl. org/dc/elements/1. 1/title> ? title. } Query result: title "SPARQL Tutorial" • • Graph pattern (or triple pattern): RDF triples where each of the subject, predicate and object may be a variable A graph pattern is matched against the RDF data • Each way a pattern can be matched yields a solution The sequence of solutions is filtered by: Project, distinct, order, limit/offset One of the result forms is applied: SELECT, CONSTRUCT, DESCRIBE, ASK © Raúl García Castro et al. 12

RDF querying. Graph matching techniques • RDF inference is based on graph matching techniques

RDF querying. Graph matching techniques • RDF inference is based on graph matching techniques • Basically, the RDF inference process consists of the following steps: - Transform an RDF query into a template graph that has to be matched against the RDF graph • It contains constant and variable nodes, and constant and variable edges between nodes - Match against the RDF graph, taking into account constant nodes and edges - Provide a solution for variable nodes and edges © Raúl García Castro et al. 13

RDF querying. Examples (I) • Sample RDF graph person: has. Colleague data: Asun data:

RDF querying. Examples (I) • Sample RDF graph person: has. Colleague data: Asun data: Oscar person: has. Name “Óscar Corcho García” data: Raul person: has. Home. Page http: //www. oeg-upm. net/ • Query: “Tell me who are the persons who have Raúl as a colleague” person: has. Colleague ? data: Raul - Result: data: Asun © Raúl García Castro et al. 14

RDF querying. Examples (II) • Query: “Tell me which are the relationships between Oscar

RDF querying. Examples (II) • Query: “Tell me which are the relationships between Oscar and Asun” ? data: Asun data: Oscar - Result: person: has. Colleague • Query: “Tell me the homepage of Oscar colleagues” person: has. Colleague data: Oscar person: has. Home. Page ? - Result: “http: //www. oeg-upm. net/” © Raúl García Castro et al. 15

Index • • • Introduction Syntax Graph patterns Restricting values and solutions SPARQL query

Index • • • Introduction Syntax Graph patterns Restricting values and solutions SPARQL query forms SPARQL 1. 1 © Raúl García Castro et al. 16

Syntax for IRIs and query variables • Absolute IRIs <http: //example. org/book 1> •

Syntax for IRIs and query variables • Absolute IRIs <http: //example. org/book 1> • Relative IRIs (BASE) BASE <http: //example. org/book/> <book 1> • Prefixed names (PREFIX) PREFIX book: <http: //example. org/book/> book: book 1 PREFIX : <http: //example. org/book/> : book 1 • Variables (? or $) ? name $name © Raúl García Castro et al. 17

Syntax for literals • • • Literals enclosed in quotes: ". . . "

Syntax for literals • • • Literals enclosed in quotes: ". . . " or '. . . ' Literals with quotation marks: """. . . """ or '''. . . ''' Language tag (optional): @ Datatype (optional): ^^ Interpretation of untyped literals - Integer, Decimal, Double, and Boolean Literal Interpretation 1 "1"^^xsd: integer 1. 3 "1. 3"^^xsd: decimal 1. 300 "1. 300"^^xsd: decimal 1. 0 e 6 "1. 0 e 6"^^xsd: double true "true"^^xsd: boolean false "false"^^xsd: boolean © Raúl García Castro et al. 18

Syntax for blank nodes • Label form ("_: abc”) - Cannot be used in

Syntax for blank nodes • Label form ("_: abc”) - Cannot be used in two different basic graph patterns • Abbreviated form "[]” - Used only once in the graph pattern [ : p "v" ]. [] : p "v". _: b 57 : p "v". [ : p "v" ] : q "w". _: b 57 : p "v". _: b 57 : q "w". : x : q [ : p "v" ]. : x : q _: b 57 : p "v". © Raúl García Castro et al. 19

Syntax for triple patterns • Predicate-Object lists ("; ") ? x foaf: name ?

Syntax for triple patterns • Predicate-Object lists ("; ") ? x foaf: name ? name ; foaf: mbox ? mbox. ? x foaf: name ? name. ? x foaf: mbox ? mbox. • Object lists (", ") ? x foaf: nick "Alice" , "Alice_". ? x foaf: nick "Alice_". © Raúl García Castro et al. 20

RDF collections and rdf: type • Collection: "(element 1 element 2. . . )"

RDF collections and rdf: type • Collection: "(element 1 element 2. . . )" • rdf: nil: "()" (1 ? x 3 4) : p "w". _: b 0 rdf: first 1 ; rdf: rest _: b 1 rdf: first ? x ; rdf: rest _: b 2 rdf: first 3 ; rdf: rest _: b 3 rdf: first 4 ; rdf: rest rdf: nil. _: b 0 : p "w". • rdf: type: "a" ? x a : Class 1. ? x rdf: type : Class 1. © Raúl García Castro et al. 21

Index • • • Introduction Syntax Graph patterns Restricting values and solutions SPARQL query

Index • • • Introduction Syntax Graph patterns Restricting values and solutions SPARQL query forms SPARQL 1. 1 © Raúl García Castro et al. 22

Graph patterns • Basic Graph Patterns, where a set of triple patterns must match

Graph patterns • Basic Graph Patterns, where a set of triple patterns must match • Group Graph Pattern, where a set of graph patterns must all match • Optional Graph patterns, where additional patterns may extend the solution • Alternative Graph Pattern, where two or more possible patterns are tried • Patterns on Named Graphs, where patterns are matched against named graphs © Raúl García Castro et al. 23

Multiple matches @prefix foaf: _: a _: b _: c foaf: name foaf: mbox

Multiple matches @prefix foaf: _: a _: b _: c foaf: name foaf: mbox PREFIX SELECT WHERE { ? x <http: //xmlns. com/foaf/0. 1/>. "Johnny Lee Outlaw". <mailto: jlow@example. com>. "Peter Goodguy". <mailto: peter@example. org>. <mailto: carol@example. org>. foaf: <http: //xmlns. com/foaf/0. 1/> ? name ? mbox foaf: name ? name. foaf: mbox ? mbox } name mbox "Johnny Lee Outlaw" <mailto: jlow@example. com> "Peter Goodguy" <mailto: peter@example. org> © Raúl García Castro et al. 24

Matching RDF literals @prefix : x : y : z dt: ns: : xsd:

Matching RDF literals @prefix : x : y : z dt: ns: : xsd: ns: p <http: //example. org/datatype#>. <http: //example. org/ns#>. <http: //www. w 3. org/2001/XMLSchema#>. "cat"@en. "42"^^xsd: integer. "abc"^^dt: special. Datatype. SELECT ? v WHERE { ? v ? p "cat" } SELECT ? v WHERE { ? v ? p "cat"@en } v v <http: //example. org/ns#x> SELECT ? v WHERE { ? v ? p 42 } v <http: //example. org/ns#y> SELECT ? v WHERE { ? v ? p "abc"^^<http: //example. org/datatype#special. Datatype> } v <http: //example. org/ns#z> © Raúl García Castro et al. 25

Optional graph patterns @prefix foaf: @prefix rdf: <http: //xmlns. com/foaf/0. 1/>. <http: //www. w

Optional graph patterns @prefix foaf: @prefix rdf: <http: //xmlns. com/foaf/0. 1/>. <http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#>. _: a rdf: type foaf: name foaf: mbox foaf: Person. "Alice". <mailto: alice@example. com>. <mailto: alice@work. example>. _: b rdf: type foaf: name foaf: Person. "Bob". PREFIX foaf: <http: //xmlns. com/foaf/0. 1/> SELECT ? name ? mbox WHERE { ? x foaf: name ? name. OPTIONAL { ? x foaf: mbox ? mbox } } name mbox "Alice" <mailto: alice@example. com> "Alice" <mailto: alice@work. example> “Bob" © Raúl García Castro et al. 28

Multiple optional graph patterns @prefix foaf: <http: //xmlns. com/foaf/0. 1/>. _: a foaf: name

Multiple optional graph patterns @prefix foaf: <http: //xmlns. com/foaf/0. 1/>. _: a foaf: name foaf: homepage "Alice". <http: //work. example. org/alice/>. _: b foaf: name foaf: mbox "Bob". <mailto: bob@work. example>. PREFIX foaf: <http: //xmlns. com/foaf/0. 1/> SELECT ? name ? mbox ? hpage WHERE { ? x foaf: name ? name. OPTIONAL { ? x foaf: mbox ? mbox }. OPTIONAL { ? x foaf: homepage ? hpage } } name mbox "Alice" “Bob" hpage <http: //work. example. org/alice/> <mailto: bob@work. example> © Raúl García Castro et al. 29

Alternative graph patterns @prefix dc 10: @prefix dc 11: _: a _: b _:

Alternative graph patterns @prefix dc 10: @prefix dc 11: _: a _: b _: c PREFIX SELECT WHERE <http: //purl. org/dc/elements/1. 0/>. <http: //purl. org/dc/elements/1. 1/>. dc 10: title dc 10: creator dc 11: title dc 11: creator dc 10: title dc 11: title "SPARQL Query Language Tutorial". "Alice". "SPARQL Protocol Tutorial". "Bob". "SPARQL (updated)". dc 10: <http: //purl. org/dc/elements/1. 0/> dc 11: <http: //purl. org/dc/elements/1. 1/> ? title { { ? book dc 10: title ? title } UNION { ? book dc 11: title ? title } } title "SPARQL Protocol Tutorial" "SPARQL (updated)" "SPARQL Query Language Tutorial" SELECT ? x ? y WHERE { { ? book dc 10: title ? x } UNION { ? book dc 11: title ? y } } x y "SPARQL (updated)" "SPARQL Protocol Tutorial" "SPARQL Query Language Tutorial" SELECT ? title ? author WHERE author { { ? book dc 10: title ? title. ? book dc 10: creator ? author } "Alice" UNION { ? book dc 11: title ? title. ? book dc 11: creator ? author }} “Bob” © Raúl García Castro et al. title "SPARQL Protocol Tutorial" "SPARQL Query Language Tutorial" 30

Patterns on named graphs # Named @prefix graph: http: //example. org/foaf/alice. Foaf foaf: <http:

Patterns on named graphs # Named @prefix graph: http: //example. org/foaf/alice. Foaf foaf: <http: //. . . /foaf/0. 1/>. rdf: <http: //. . . /1999/02/22 -rdf-syntax-ns#>. rdfs: <http: //. . . /2000/01/rdf-schema#>. _: a foaf: name foaf: mbox foaf: knows "Alice". <mailto: alice@work. example>. _: b foaf: name foaf: mbox foaf: nick rdfs: see. Also "Bob". <mailto: bob@work. example>. "Bobby". <http: //example. org/foaf/bob. Foaf> rdf: type foaf: Personal. Profile. Document. # Named @prefix _: z graph: http: //example. org/foaf/bob. Foaf foaf: <http: //. . . /foaf/0. 1/>. rdf: <http: //. . . /1999/02/22 -rdf-syntax-ns#>. rdfs: <http: //. . . /2000/01/rdf-schema#>. foaf: mbox rdfs: see. Also foaf: nick <mailto: bob@work. example>. <http: //example. org/foaf/bob. Foaf>. "Robert". <http: //example. org/foaf/bob. Foaf> rdf: type foaf: Personal. Profile. Document. © Raúl García Castro et al. 31

Patterns on named graphs II PREFIX foaf: <http: //xmlns. com/foaf/0. 1/> SELECT ? src

Patterns on named graphs II PREFIX foaf: <http: //xmlns. com/foaf/0. 1/> SELECT ? src ? bob. Nick FROM NAMED <http: //example. org/foaf/alice. Foaf> FROM NAMED <http: //example. org/foaf/bob. Foaf> WHERE { GRAPH ? src { ? x foaf: mbox <mailto: bob@work. example>. ? x foaf: nick ? bob. Nick } } src bob. Nick <http: //example. org/foaf/alice. Foaf> "Bobby" <http: //example. org/foaf/bob. Foaf> "Robert" PREFIX foaf: <http: //xmlns. com/foaf/0. 1/> PREFIX data: <http: //example. org/foaf/> SELECT ? nick FROM NAMED <http: //example. org/foaf/alice. Foaf> FROM NAMED <http: //example. org/foaf/bob. Foaf> WHERE { GRAPH data: bob. Foaf { ? x foaf: mbox <mailto: bob@work. example>. ? x foaf: nick ? nick } } © Raúl García Castro et al. nick "Robert" 32

Index • • • Introduction Syntax Graph patterns Restricting values and solutions SPARQL query

Index • • • Introduction Syntax Graph patterns Restricting values and solutions SPARQL query forms SPARQL 1. 1 © Raúl García Castro et al. 33

Restricting values @prefix dc: @prefix ns: <http: //purl. org/dc/elements/1. 1/>. <http: //example. org/book/>. <http:

Restricting values @prefix dc: @prefix ns: <http: //purl. org/dc/elements/1. 1/>. <http: //example. org/book/>. <http: //example. org/ns#>. : book 1 : book 2 dc: title ns: price "SPARQL Tutorial". 42. "The Semantic Web". 23. PREFIX SELECT WHERE dc: <http: //purl. org/dc/elements/1. 1/> ? title { ? x dc: title ? title FILTER regex(? title, "^SPARQL") } PREFIX SELECT WHERE dc: <http: //purl. org/dc/elements/1. 1/> ? title { ? x dc: title ? title FILTER regex(? title, "web", "i" ) } PREFIX SELECT WHERE dc: <http: //purl. org/dc/elements/1. 1/> ns: <http: //example. org/ns#> ? title ? price { ? x ns: price ? price. FILTER (? price < 30. 5) ? x dc: title ? title. } © Raúl García Castro et al. title "SPARQL Tutorial" title "The Semantic Web" title price "The Semantic Web" 23 34

Value tests • Based on XQuery 1. 0 and XPath 2. 0 Function and

Value tests • Based on XQuery 1. 0 and XPath 2. 0 Function and Operators • XSD boolean, string, integer, decimal, float, double, date. Time • Notation <, >, =, <=, >= and != for value comparison Apply to any type • BOUND, is. URI, is. BLANK, is. LITERAL • REGEX, LANG, DATATYPE, STR (lexical form) • Function call for casting and extensions functions © Raúl García Castro et al. 35

Solution sequences and modifiers • Order modifier: put the solutions in order SELECT ?

Solution sequences and modifiers • Order modifier: put the solutions in order SELECT ? name WHERE { ? x foaf: name ? name ; : emp. Id ? emp } ORDER BY ? name DESC(? emp) • Projection modifier: choose certain variables SELECT ? name WHERE { ? x foaf: name ? name } • Distinct modifier: ensure solutions in the sequence are unique SELECT DISTINCT ? name WHERE { ? x foaf: name ? name } • Reduced modifier: permit elimination of some non-unique solutions SELECT REDUCED ? name WHERE { ? x foaf: name ? name } • Limit modifier: restrict the number of solutions SELECT ? name WHERE { ? x foaf: name ? name } LIMIT 20 • Offset modifier: control where the solutions start from in the overall sequence of solutions SELECT ? name WHERE { ? x foaf: name ? name } ORDER BY ? name LIMIT 5 OFFSET 10 © Raúl García Castro et al. 36

Index • • • Introduction Syntax Graph patterns Restricting values and solutions SPARQL query

Index • • • Introduction Syntax Graph patterns Restricting values and solutions SPARQL query forms SPARQL 1. 1 © Raúl García Castro et al. 37

SPARQL query forms • SELECT - Returns all, or a subset of, the variables

SPARQL query forms • SELECT - Returns all, or a 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 or not • DESCRIBE - Returns an RDF graph that describes the resources found © Raúl García Castro et al. 38

SPARQL query forms: SELECT @prefix foaf: <http: //xmlns. com/foaf/0. 1/>. _: a foaf: name

SPARQL query forms: SELECT @prefix foaf: <http: //xmlns. com/foaf/0. 1/>. _: a foaf: name foaf: knows "Alice". _: b. _: c. _: b foaf: name "Bob". _: c foaf: name foaf: nick "Clare". "CT". PREFIX foaf: <http: //xmlns. com/foaf/0. 1/> SELECT ? name. X ? name. Y ? nick. Y WHERE { ? x foaf: knows ? y ; foaf: name ? name. X. ? y foaf: name ? name. Y. OPTIONAL { ? y foaf: nick ? nick. Y } } name. X name. Y "Alice" "Bob" "Alice" "Clare" © Raúl García Castro et al. nick. Y "CT" 39

SPARQL query forms: CONSTRUCT @prefix _: a foaf: <http: //xmlns. com/foaf/0. 1/>. foaf: name

SPARQL query forms: CONSTRUCT @prefix _: a foaf: <http: //xmlns. com/foaf/0. 1/>. foaf: name foaf: mbox PREFIX foaf: PREFIX vcard: "Alice". <mailto: alice@example. org>. <http: //xmlns. com/foaf/0. 1/> <http: //www. w 3. org/2001/vcard-rdf/3. 0#> CONSTRUCT { <http: //example. org/person#Alice> vcard: FN ? name } WHERE { ? x foaf: name ? name } Query result: @prefix vcard: <http: //www. w 3. org/2001/vcard-rdf/3. 0#>. <http: //example. org/person#Alice> vcard: FN "Alice". © Raúl García Castro et al. 40

SPARQL query forms: ASK @prefix foaf: <http: //xmlns. com/foaf/0. 1/>. _: a foaf: name

SPARQL query forms: ASK @prefix foaf: <http: //xmlns. com/foaf/0. 1/>. _: a foaf: name foaf: homepage "Alice". <http: //work. example. org/alice/>. _: b foaf: name foaf: mbox "Bob". <mailto: bob@work. example>. PREFIX foaf: <http: //xmlns. com/foaf/0. 1/> ASK { ? x foaf: name "Alice" } Query result: yes © Raúl García Castro et al. 41

SPARQL query forms: DESCRIBE PREFIX ent: <http: //org. example. com/employees#> DESCRIBE ? x WHERE

SPARQL query forms: DESCRIBE PREFIX ent: <http: //org. example. com/employees#> DESCRIBE ? x WHERE { ? x ent: employee. Id "1234" } Query result: @prefix @prefix foaf: vcard: ex. Org: rdf: owl: <http: //xmlns. com/foaf/0. 1/>. <http: //www. w 3. org/2001/vcard-rdf/3. 0>. <http: //org. example. com/employees#>. <http: //www. w 3. org/1999/02/22 -rdf-syntax-ns#>. <http: //www. w 3. org/2002/07/owl#> _: a ex. Org: employee. Id "1234" ; foaf: mbox_sha 1 sum vcard: N [ vcard: Family vcard: Given "ABCD 1234" ; foaf: mbox_sha 1 sum © Raúl García Castro et al. rdf: type "Smith" ; "John" ]. owl: Inverse. Functional. Property. 42

Index • • • Introduction Syntax Graph patterns Restricting values and solutions SPARQL query

Index • • • Introduction Syntax Graph patterns Restricting values and solutions SPARQL query forms SPARQL 1. 1 © Raúl García Castro et al. 43

SPARQL 1. 1 • New features in Query language: - Aggregate functions: COUNT, SUM,

SPARQL 1. 1 • New features in Query language: - Aggregate functions: COUNT, SUM, MIN, MAX, AVG, GROUP_CONCAT, and SAMPLE. - Subqueries: Nest the results of a query within another query - Negation: Check the absence of triples in a graph - Expressions in SELECT: Introduce new variables in the SELECT clause - Property paths: Search graphs through structures that involve arbitrary-length paths - Assignment: BIND keyword and expressions in SELECT and GROUP_BY - Short form for CONSTRUCT - Expanded functions and operators: EXISTS, NOT EXISTS, SUBSTR, etc. © Raúl García Castro et al. 44

Other SPARQL 1. 1 specifications • Update - Language extension to express updates to

Other SPARQL 1. 1 specifications • Update - Language extension to express updates to an RDF graph/store • Protocol - Changes related to the update operation • Service description - Discover a SPARQL endpoint's capabilities and summary information of its data • Graph Store HTTP Protocol - Update and fetch RDF graph content from a Graph Store over HTTP in the REST style • Entailment Regimes - Define the semantics of SPARQL queries for some entailment frameworks: OWL flavors, RDFS, RIF • Federation Extensions - Take a query and provide solutions based on information from many different sources • Query Result JSON, CSV, TSV © Raúl García Castro et al. 45

Main References • • W 3 C SPARQL Working Group http: //www. w 3.

Main References • • W 3 C SPARQL Working Group http: //www. w 3. org/2001/sw/Data. Access/ Prud’hommeaux E, Seaborne A (2008) SPARQL Query Language for RDF. W 3 C Recommendation 15 January 2008 http: //www. w 3. org/TR/rdf-sparql-query/ Clark K G, Feigenbaum L, Torres E (2008) SPARQL Protocol for RDF. W 3 C Recommendation 15 January 2008 http: //www. w 3. org/TR/rdf-sparql-protocol/ Harris S, Seaborne A (2013) SPARQL 1. 1 Query Language. W 3 C Recommendation 21 March 2013 http: //www. w 3. org/TR/sparql 11 -query/ SPARQL validator: http: //www. sparql. org/query-validator. html SPARQL implementations: http: //esw. w 3. org/topic/Sparql. Implementations SPARQL Endpoints http: //esw. w 3. org/topic/Sparql. Endpoints SPARQL in Dbpedia http: //dbpedia. org/sparql © Raúl García Castro et al. 46

Thank you for your attention! Speaker: Daniel Vila-Suero dvila@fi. upm. es

Thank you for your attention! Speaker: Daniel Vila-Suero dvila@fi. upm. es