Re: (CONSTRUCT WHERE) Re: Proposed: SPARQL grammar is complete as-is

CONSTRUCT * (WHERE)? { BGP }

then a balance to be struck between CONSTRUCT * (c.f. SELECT) and 
CONSTRUCT WHERE (c.f. DELETE WHERE)

WHERE is mandatory in SPARQL update (hmm - sort of).

	Andy

On 11/01/11 14:17, Axel Polleres wrote:
> Dear all,
>
> Still catching up, sigh...
>  From the discussion/mail about CONSTRUCT WHERE
>
>> we discussed this in the TelCo today and there was little/no support for that shortcut in a strawpoll, in fact, greg had some concerns
>> that it would rather raise new questions (e.g. since WHERE is normally optional this would raise confusion, etc.).
>>
>> My current suggestion, if you don't insist on that shortcut, or nobody else jumps on it, I would thus be to close the ACTION without further action and leave this shortcut out.
>
> The fact only that it's doable in the grammar doesn't mitigate Greg's concern, does it? His problem was about the obligatory WHERE (which isn't obligatory in a normal COSNTRUCT query... given that, I am frankly a bit hesitant to re-open this disscussion and would prefer to leave it with the conclusion we reached when closing the related action.
>
>
> Axel
>
>
>
> On 31 Dec 2010, at 13:19, Andy Seaborne wrote:
>
>>
>>
>> On 23/12/10 12:09, Steve Harris wrote:
>>> On 2010-12-23, at 11:58, Andy Seaborne wrote:
>>>>>
>>>>> I had an action to look at including CONSTRUCT WHERE { ... } for commonality with DELETE WHERE. I've not done anything about that, but it looks to me like it could be included as:
>>>>>
>>>>> 'CONSTRUCT WHERE' GroupGraphPattern SolutionModifier
>>>>
>>>> See discussion:
>>>> http://lists.w3.org/Archives/Public/public-rdf-dawg/2010OctDec/0462.html
>>>
>>> I completely forgot that.
>>>
>>> In that case, modulo the stuff I've already mentioned, I think it's OK.
>>>
>>> - Steve
>>
>> In the spirit of facts, and not mere guesswork, I went back and checked
>> on the implications of a "CONSTRUCT WHERE" short form.  It's doable: my
>> fears were unfounded.
>>
>> Based on the discussion around DELETE WHERE, I have only considered a
>> BGP or construct template for the WHERE clause.  No FILTER, no other
>> graph patterns.
>>
>> It's not quite like DELETE WHERE because of FROM/FROM NAMED.
>>
>> It can be done by only changing the rule for CONSTRUCT:
>>
>> [9]     ConstructQuery    ::=
>>    'CONSTRUCT'
>>    (
>>      # The original rule
>>      ConstructTemplate DatasetClause* WhereClause SolutionModifier
>>      |
>>      # The short form.
>>      DatasetClause* 'WHERE' '{' TriplesTemplate? '}' SolutionModifier
>>    )
>>
>> It may be possible to tidy this up.
>>
>> In the short form WHERE is mandatory - this enables the parser to know
>> it's skipped the template in the full form.
>>
>> Therefore, I think we should put this in.  The extra editing is quite
>> small - adding a short para and example query to the CONSTRUCT section.
>>
>>          Andy
>>
>>
>

Received on Tuesday, 11 January 2011 14:49:10 UTC