- From: Steve Harris <steve.harris@garlik.com>
- Date: Tue, 11 Jan 2011 16:28:36 +0000
- To: Andy Seaborne <andy.seaborne@epimorphics.com>
- Cc: Axel Polleres <axel.polleres@deri.org>, Lee Feigenbaum <lee@thefigtrees.net>, SPARQL Working Group <public-rdf-dawg@w3.org>
* means all variables, which doesn't apply to CONSTRUCT, I see a direct parallel with DELETE WHERE { ... } though.
- Steve
On 2011-01-11, at 14:48, Andy Seaborne wrote:
> 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
>>>
>>>
>>
>
--
Steve Harris, CTO, Garlik Limited
1-3 Halford Road, Richmond, TW10 6AW, UK
+44 20 8439 8203 http://www.garlik.com/
Registered in England and Wales 535 7233 VAT # 849 0517 11
Registered office: Thames House, Portsmouth Road, Esher, Surrey, KT10 9AD
Received on Tuesday, 11 January 2011 16:29:11 UTC