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

Thanks Andy & Paul.

I'm happy with that reasoning.

Lee

On 11/28/2011 10:31 AM, Paul Gearon wrote:
> 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 16:41:57 UTC