SPARQL 1.1 Update (2013-03-05)
Preview:
Citation preview
- 1. SPARQL 1.1Andy Seaborne
- 2. SPARQL is ... A standard query language for RDF And now with
update of RDF stores Product of W3C Process Submissions members
Working groups Consensus (amongst the active participants) Widely
implemented
- 3. History 1.0 SPARQL 1.0 Timescale: 2004 2008 2 years late
Lots of choices for starting points Controversies Syntax Named
graphs Algebra
- 4. SPARQL 1.0 Example@prefix person: .@prefix foaf: .person:A
foaf:name "Alice" .person:A foaf:mbox .person:B foaf:name "Bob"
.PREFIX person: PREFIX foaf: SELECT ?n ?mailboxWHERE{ person:A
foaf:mbox ?mailbox ; foaf:name ?n .
}----------------------------------------| n |
mailbox|========================================| "Alice" |
|----------------------------------------
- 5. SPARQL 1.0 Example@prefix dc: .@prefix stock: .stock:book1
dc:title "SPARQL Query Language Tutorial" .stock:book2 dc:title
"SPARQL Query Language (2nd ed)" .stock:book3 dc:title "Moving from
SQL to SPARQL" .stock:book4 dc:title "Applying XQuery" .PREFIX dc:
PREFIX stock: SELECT ?book ?title{?book dc:title ?title .FILTER
(regex(?title,
"SPARQL"))}--------------------------------------------------|
book| title|==================================================|
stock:book3 | "Moving from SQL to SPARQL"|| stock:book2 | "SPARQL
Query Language (2nd ed)" || stock:book1 | "SPARQL Query Language
Tutorial" |--------------------------------------------------
- 6. SPARQL 1.0 Experimentation for new features startedbefore
the first standard was published But you cant wait until completely
complete Issues Counting Standard function library Hard-to-use
negation Query only, no update Only a note about a JSON output
- 7. History 1.1 SPARQL 1.1 Timescale : 2009 2013 2 years late
Controversies Negation Property paths Graphs REST ...
- 8. SPARQL 1.1SPARQL 1.1 Query SPARQL 1.1 UpdateSPARQL 1.1
Protocol SPARQL 1.1 Graph Store ProtocolSPARQL 1.1 Service
Description SPARQL 1.1 Federated QuerySPARQL 1.1 Query Results JSON
Format SPARQL 1.1 Query Results CSV and TSV FormatsSPARQL Query
Results XML FormatSPARQL 1.1 Entailment Regimes
- 9. SPARQL 1.1The important bits (IMO) SPARQL 1.1 Query
Subqueries, aggregation negation property paths remote query SPARQL
1.1 Update SPARQL 1.1 Graph Store Protocol
- 10. SPARQL 1.1 Query ExamplesPREFIX rdf:PREFIX foaf: SELECT
?name{{ SELECT ?x (count(*) AS ?count){ ?x foaf:knows ?y . }GROUP
BY ?xHAVING (?count = 3)}?x foaf:name ?name .}PREFIX rdf:PREFIX
foaf: SELECT ?x{ ?x rdf:type foaf:Person .FILTER NOT EXISTS { ?x
foaf:name ?name }}
- 11. Property Paths and InferenceClass inferencePREFIX
rdf:PREFIX rdfs: PREFIX : SELECT ?s {?s rdf:type ?T .?T
rdfs:subClassOf* :SomeClass .} Property inferencePREFIX rdf:PREFIX
rdfs: PREFIX : SELECT * {?s ?p ?o .?p rdfs:subPropertyOf* :property
.}
- 12. SPARQL 1.1 Update Fine grain graph manipulations Act on a
graph store Add and remove graphs Act on the contents of graphs
Quad centric LOAD, DROP, CREATE INSERT, DELETE Data and patterns
One request is multiple operations
- 13. Data OperationsPREFIX rdf:PREFIX foaf: DELETE DATA {
foaf:name "DEF" . } ;INSERT DATA { foaf:name "ABC" . } ;
- 14. Pattern Operations : DELETE-INSERT Pattern Delete triples
Insert triples PREFIX foaf: PREFIX vc: DELETE { ?p vc:fn ?x }
INSERT { ?p foaf:name ?x } WHERE {?p vc:fn ?x .?p foaf:knows }
}
- 15. SPARQL 1.1 Graph Store Protocol Simple way to manage a
store (RDF Dataset) GET, PUT, POST, DELETE Naming Same
serverhttp://server/store/graph1 Different
serverhttp://server/store?graph=http://example/g1http://server/store?graph=http%3A//example/g1http://server/store?default
- 16. RESTful(ish) operation curl -T D.ttl --header Content-type:
text/turtle http://server.com/store?graph=http%3A//example/g1PUT
/store?graph=http%3A//example/g1 HTTP/1.1Host:
server.comContent-type: text/turtle@prefix : .:subject :pred1 1 ;
:pred2 hello .
- 17. Digression: RDF 1.1 Work-in-progress Incremental Turtle,
TriG, N-Triples, N-Quads RDF Datasets (as SPARQL?) Related:
JSON-LD
- 18. JSON-LD Links and semantics for the JSON ecosystem Adds a
"context" to map JSON to RDF RDF JSON-LD RDF is
lossless{"@context":
"http://json-ld.org/contexts/person.jsonld","@id":
"http://example.org/alice.foaf#me","name": "Alice
Hacker","homepage": "http://example.org/alice",}@prefix foaf: .
foaf:name "Alice Hacker" ; foaf:homepage .
- 19. http://jena.apache.org/Title:(asf_logo.eps)Creator:Adobe
Illustrator(R) 8.0CreationDate:(10/20/99) (11:38 AM)
- 20. Apache Jena Full Apache Project since May 2012 SPARQL 1.1
Query Update Protocol Graph Store Protocol
- 21. Fuseki SPARQL Server SPARQL server RDF native database ACID
transactions Query timeout Deployed live
- 22. Data Management Web UI curl / wget SOH (SPARQL over HTTP)
Scripts s-get, s-put, s-post, s-delete, s-query, s-update
- 23. Online http://www.sparql.org/ Fuseki running on Apache
project hardware Services SPARQL query validator SPARQL update
validator RDF data validator IRI validator