SPARQL 1.1 Update introduces operations for modifying RDF graphs stored in triplestores using SPARQL update queries. These include inserting and deleting triples within named graphs, loading and clearing entire graphs, and managing graphs through operations like create, drop, copy and move.
1 of 11
Download to read offline
More Related Content
ESWC SS 2012 - Monday Tutorial 2 Barry Norton: SPARQL 1.1 Update Language
3. SPARQL 1.1 Update Overview
SPARQL 1.1 increases further the prominence of
named graphs in RDF
It offers three ways to affect explicitly specified data
within a graph (or graphs):
INSERT DATA
DELETE DATA
DELETE/INSERT WHERE
It also offers two ways to further change the data
within a graph:
LOAD CLEAR
It offers a set of graph management operations:
CREATE DROP COPY MOVE ADD
SPARQL 1.1 Update
#3
4. INSERT DATA
The most basic part of SPARQL 1.1 Update is to allow
data to be inserted into a store, e.g.:
INSERT DATA {ou:barry foaf:givenName "Barry";
foaf:familyName "Norton";
foaf:mbox <mailto:barry.norton@sti2.at>}
While a default graph may be supported, it is common
to manage data in a named graph:
INSERT DATA { GRAPH <http://ontotext.com/ns#>
{onto:barry1 foaf:givenName "Barry";
foaf:familyName "Bishop";
foaf:mbox <barry.bishop@ontotext.com>}}
SPARQL 1.1 Update
#4
5. DELETE DATA
SPARQL 1.1 Update also allows deletion of explicitly
described triples:
DELETE DATA {sti:barry foaf:mbox
<mailto:barry.norton@sti2.at>}
Note that no blank nodes are allowed in these DELETE
queries since these match any resource in SPARQL
(Cf.:
SELECT ?mbox WHERE {_:barry foaf:mbox ?mbox}
mbox
<mailto:b.j.norton@open.ac.uk>
SPARQL 1.1 Update
)
#5
6. DELETE/INSERT
SPARQL 1.1 extends the use of graph patterns for use
in parallel INSERT and DELETE, according to matches,
e.g.:
DELETE {?barry foaf:mbox <mailto:barry.norton@sti2.at>}
INSERT { GRAPH <http://ontotext.com/ns#>
{onto:barry foaf:givenName ?forename;
foaf:familyName ?surname;
foaf:mbox <mailto:barry.norton@ontotext.com>}}
WHERE {?barry foaf:mbox <mailto:barry.norton@sti2.at>;
foaf:givenName ?forename;
foaf:familyName ?surname}
}
SPARQL 1.1 Update
#6
7. DELETE WHERE
SPARQL 1.1 offers a simpler form of INSERT/DELETE
when just deleting:
DELETE {?barry foaf:mbox <mailto:barry.norton@sti2.at>}
WHERE {?barry foaf:mbox <mailto:barry.norton@sti2.at>}
DELETE
WHERE {?barry foaf:mbox <mailto:barry.norton@sti2.at>}
SPARQL 1.1 Update
#7
8. USING/WITH
SPARQL Update uses USING (NAMED) in role of
FROM (NAMED) with respect to WHERE clauses
INSERT { GRAPH <http://ontotext.com/ns#>
{?barry foaf:nick "Baz"}}
USING <http://ontotext.com/ns#>
WHERE {?barry foaf:givenName "Barry"}
It also offers a simpler way to deal with the same
named graph throughout a DELETE/INSERT query
WITH <http://ontotext.com/ns#>
INSERT {?barry foaf:nick "Baz"}
WHERE {?barry foaf:givenName "Barry"}
SPARQL 1.1 Update
#8
9. LOAD/CLEAR
SPARQL 1.1 allows an RDF graph to be loaded from a
URL, e.g.:
LOAD <http://xmlns.com/foaf/spec/20100809.rdf>
The graph can also be loaded as a named graph, e.g.:
LOAD
<http://dl.dropbox.com/u/3954923/ontotext.rdf.ttl>
INTO <http://ontotext.com/ns#>
A named graph can also be cleared of all triples, e.g.:
CLEAR GRAPH <http://ontotext.com/ns#>
SPARQL 1.1 Update
#9
10. Graph Management 1/2
A new named graph can be explicitly created, e.g.:
CREATE GRAPH <http://ontotext.com/ns#>
A new named graph can be dropped (different from
clearing if empty graphs are supported), e.g.:
DROP GRAPH <http://ontotext.com/ns#>
We can also CLEAR, CREATE and DROP:
DEFAULT and ALL
We also LOAD, CLEAR, CREATE and DROP with SILENT
SPARQL 1.1 Update
#10
11. Graph Management 2/2
The recommendation for SPARQL Update may or
may not also include:
COPY TO , e.g.:
COPY GRAPH <http://www.example.com/v1#>
TO GRAPH <http://www.example.com/v2#>
MOVE TO , e.g.:
MOVE GRAPH <http://www.example.com/draft#>
TO GRAPH <http://www.example.com/v1#>
ADD TO , e.g.:
ADD GRAPH <http://ontotext.com/ns#>
TO GRAPH <http://sirma.bg/ns#>
SPARQL 1.1 Update
#11