- From: Andy Seaborne <andy.seaborne@epimorphics.com>
- Date: Tue, 21 Aug 2012 18:23:17 +0100
- 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 UTC