- From: Paul Gearon <pgearon@revelytix.com>
- Date: Mon, 28 Nov 2011 10:31:23 -0500
- To: Andy Seaborne <andy.seaborne@epimorphics.com>
- Cc: public-rdf-dawg@w3.org
On Eric's editorial nit, that text had already been changed due to other comments. Response to Andy's comment below... On Sat, Nov 26, 2011 at 1:39 PM, Andy Seaborne <andy.seaborne@epimorphics.com> wrote: > > > On 26/11/11 18:03, Lee Feigenbaum wrote: >> >> On 11/26/2011 12:44 PM, Andy Seaborne wrote: >>> >>> (not replying the the editorial nit) >>> >>> On 26/11/11 15:12, Eric Prud'hommeaux wrote: >>>> >>>> http://www.w3.org/2009/sparql/docs/update-1.1/#deleteInsert >>>> >>>> [[ >>>> WITH<g1> INSERT { x y z } DELETE { a b c } WHERE { ... } >>>> >>>> Is considered equivalent to: >>>> >>>> INSERT { GRAPH<g1> { x y z } } DELETE { GRAPH<g1> { a b c } } >>>> USING<g1> WHERE { ... } >>>> ]] >>>> >>>> should that be "USING NAMED<g1>" ? >>>> ^^^^^ >>> >>> No, oddly. >>> >>> USING <g1> means use <g1> for the default graph of WHERE {...}. So there >>> is an RDF dataset of with the default graph and no named graphs. >> >> Right. Andy, do you remember the motivation for this? >> >> Seems like an equally valid design would be for it to stand for >> USING <g1> >> USING NAMED <g1> >> >> so that you'd have the graph available in both parts of the dataset. >> >> (I have no strong feeling & not looking to change things for change's >> sake, just don't recall the original motivation.) >> >> Lee > > My recollection is that it handles the occurrence of GRAPH <g1> and GRAPH > ?var in the WHERE part better. > > The idea of WITH is to target the pattern at a different graph, hence > modifying the templates with GRAPH <g1> { } and making the default graph > <g1>, not use a named graph. > > Unretargetted, old WHERE { GRAPH <g1> {} } (no <g1> in the dataset) didn't > match, and this equivalence preserves that corner case. > > A certain amount of thinking backwards here - Paul? The idea was to "set" the default graph to avoid redundantly identifying the same graph in each of the remaining clauses (INSERT/DELETE/WHERE). So the common use case of modifying data in a single graph would only need to specify the graph once. By specifying a graph as only a USING NAMED graph then the WHERE clause would need to explicitly refer to it with a GRAPH section. I don't believe that Lee's suggestion of being equivalent to both USING and USING NAMED was considered, though it would continue to meet the initial requirement. However, Andy's rationale seems like a good reason to leave it as it stands. Regards, Paul
Received on Monday, 28 November 2011 15:31:50 UTC