Re: Update Syntax

I accidentally responded directly to Steve. Bringing the thread back
to the group.

On Wed, Apr 28, 2010 at 11:29 AM, Steve Harris <steve.harris@garlik.com> wrote:
> Mostly seems good, but I found a bit of optional syntax to complain about :)
>
> I'm a bit concerned about the optional-ness of WHERE in DELETE INSERT:
>
>> [ 'WITH <' uri '>' ]
>> 'DELETE {' modify_template [ modify_template ]* '}'
>> 'INSERT {' modify_template [ modify_template ]* '}'
>> [ 'USING <' uri '>' ]*
>> [ 'USING NAMED <' uri '>' ]*
>> [ 'WHERE' ] GroupGraphPattern
>
> This implies that
>   DELETE { <a> <b> <c> } INSERT { <d> <e> <f> } { <x> <y> <z> }
> would be legal syntax, and with some pretty non-obvious behaviour. It's not optional in DELETE or INSERT individually, so it seems odd that it is here.

"WHERE" was supposed to be optional everywhere (for consistency with
SPARQL Query), so it was a mistake that I made it mandatory for DELETE
and INSERT.

That said, I agree with your observation that leaving out WHERE makes
a DELETE/INSERT statement very non-obvious. I'm all for making it
mandatory.

I know that a mandatory "WHERE" is inconsistent with SPARQL Query, but
I've personally never seen a query in the wild without the WHERE
keyword (I've seen them in examples in this forum, but nowhere else).
Given the confusion above, plus the fact that we're already a little
inconsistent with SPARQL Query (e.g. USING instead of FROM), then I
think it's reasonable to require the word.

Are there naysayers?

Regards,
Paul

Received on Wednesday, 28 April 2010 17:40:12 UTC