On Fri, Jan 8, 2010 at 5:55 AM, Steve Harris <steve.harris@garlik.com> wrote:
> On 7 Jan 2010, at 18:35, Paul Gearon wrote:
> ...
>>>
>>> 2/ Ambiguity.
>>> This sequence of tokens:
>>>
>>> WITH <uri>
>>> DELETE { ?x :p ?v }
>>> INSERT { ?x :q ?v }
>>> WHERE { ?x :q 123 }
>>>
>>> can be parsed at least 2 different ways:
>>>
>>> As two operations:
>>> WITH <uri>
>>> DELETE { ?x :p ?v }
>>> # No WHERE
>>> # followed by a separate operation
>>> # No WITH
>>> INSERT { ?x :q ?v }
>>> WHERE { ?x :q 123 }
>>>
>>> or as
>>> # All one operation
>>> WITH <uri>
>>> DELETE { ?x :p ?v }
>>> INSERT { ?x :q ?v }
>>> WHERE { ?x :q 123 }
>>> # WITH and WHERE included
>>
>> The use of semicolon to join these was discussed in the past. That
>> would seem to me to be the most sensible approach. I've put it in for
>> now, but would appreciate comment.
>
>
> Semicolon to separate, surely? Or maybe I'm completely misunderstanding
> what's going on.
That's what had been discussed initially. But then I learnt that
everything had initially been designed to be separable without an
explicit separator character. The only case (that I know of) where
this breaks down, is Andy's example above. Surely it makes more sense
to join this one case to together than it does to separate everything
else?
(That said, a ; is a separating character, not a joining character, so
I'm not sold on the idea).
Paul