- From: Steve Harris <steve.harris@garlik.com>
- Date: Thu, 29 Oct 2009 13:37:04 -0400
- To: "Seaborne, Andy" <andy.seaborne@hp.com>
- Cc: SPARQL Working Group <public-rdf-dawg@w3.org>
On 29 Oct 2009, at 09:52, Seaborne, Andy wrote:
> From a recent user report: [1]
>
> This update request
>
> DELETE FROM <example:store> { ?s ?p ?o } WHERE { ?s ?p ?o }
>
> does not clear the graph <example:store> as might be expected from
> the DELETE syntax. The pattern matches against the default graph,
> not the named graph in the FROM clause but the syntax is confusingto
> the point of leading the application writer astray.
Ouch, that is confusing.
It might be another case where the GRAPH syntax is clearer:
DELETE { GRAPH <example:store> { ?s ?p ?o } } WHERE { ?s ?p ?o }
which would have the same meaning, but is clearer in my opinion.
> This would also matter for a shorthand version:
>
> DELETE FROM <example:store> { ?s ?p ?o }
>
> What's the implicit WHERE clause here? Use of GRAPH in the template
> might be a bit less confusing but I don't think it is sufficiently so.
I think it is at least better:
DELETE { GRAPH <example:store> { ?s ?p ?o } } WHERE { GRAPH
<example:store> { ?s ?p ?o } }
DELETE { ?s ?p ?o } WHERE { GRAPH <example:store> { ?s ?p ?o } }
DELETE { GRAPH <example:store> { ?s ?p ?o } } WHERE { ?s ?p ?o }
just because the scoping of GRAPH is explicit c.f. FROM.
- Steve
--
Steve Harris, CTO, Garlik Limited
2 Sheen Road, Richmond, TW9 1AE, UK
+44(0)20 8973 2465 http://www.garlik.com/
Registered in England and Wales 535 7233 VAT # 849 0517 11
Registered office: Thames House, Portsmouth Road, Esher, Surrey, KT10
9AD
Received on Thursday, 29 October 2009 17:37:40 UTC