Re: WITH <x> -> INSERT|DELETE... USING *NAMED* <x>

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