W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > July to September 2012

tests/Delete

From: Andy Seaborne <andy.seaborne@epimorphics.com>
Date: Tue, 21 Aug 2012 18:23:17 +0100
Message-ID: <5033C405.60006@epimorphics.com>
To: SPARQL Working Group <public-rdf-dawg@w3.org>
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 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:49 GMT