tests/Delete

In rerunning the tests for BIND I came across an unrelated issue.

www.w3.org/2009/sparql/docs/tests/data-sparql11/delete/manifest.ttl#dawg-delete-using-02

and #dawg-delete-using-06

dawg-delete-using-02 ==>

PREFIX     : <http://example.org/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

DELETE
{
   ?s ?p ?o .
}
USING <http://example.org/g3>
WHERE
{
   GRAPH <http://example.org/g2> { :a foaf:knows ?s .
                                   ?s ?p ?o }
}

These tests define a dataset for the WHERE part of the update using 
USING.  As I understand it, USING is like FROM - and it forms the whole 
of the dataset.

So GRAPH <http://example.org/g2>  never matches - there are no named 
graphs to query because the dataset is one default graph only.

Thus DELETE { ?s ?p ?o } is a no-op and the data, specifically the 
default graph, is unchanged.

But the input is <delete-pre-01.ttl> and the result 
<delete-post-01s.ttl>.  These are different triples.

The comment seems wrong.

"the GRAPH clause overrides the USING clause"
No - it doesn't!

[[ SPARQL 1.1 Update :
This describes a dataset in the same way as FROM and FROM NAMED clauses 
describe RDF Datasets in the SPARQL 1.1 Query Language.
...
That is, the GroupGraphPattern in the WHERE clause will be matched 
against the dataset described by explicit USING or USING NAMED clauses, 
if specified, and against the Graph Store otherwise.
]]

 Andy

Received on Tuesday, 21 August 2012 17:23:45 UTC