Re: ISSUE-48: Less verbose delete syntax

On 09/11/2009 20:40, Steve Harris wrote:
> On 9 Nov 2009, at 20:29, Paul Gearon wrote:
>> On Mon, Nov 9, 2009 at 3:19 PM, Andy Seaborne
>> <andy.seaborne@talis.com> wrote:
>>> On template/pattern .... "bnodes".
>>
>> That reminds me...
>>
>> Are we expecting the statement:
>>
>> DELETE WHERE { :foo :bar _:b1 }
>>
>> to be the equivalent of:
>>
>> DELETE { :foo :bar ?b } WHERE { :foo :bar ?b FILTER isBlank(?b) }
>>
>>
>> If not, then will _:b1 bind to a single blank node or all of them? Can
>> it bind to non-blank nodes? Is this question too hard, and we should
>> disallow blank nodes in DELETE templates?
>
> It should follow the same rules as CONSTRUCT as far as possible, for
> reasons of sanity preservation. However, it's not so obvious what that
> means in this case.
>
> CONSTRUCT mints "new" bNodes when you give it [] or _:b. Isn't it an
> error to mention bNodes with the same label in the CONSTRUCT and WHERE
> clauses? That makes things a little tricky.

Error? - they are different bnodes.

A bnode label scope is (1) the BGP in which it appears (pattern) or (2) 
the template instantiation for CONSTRUCT.

	Andy

>
> Maybe the shorthand notation should ban bNodes? :(
>
> - Steve
>

Received on Monday, 9 November 2009 21:56:52 UTC