W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > January to March 2011

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

From: Steve Harris <steve.harris@garlik.com>
Date: Tue, 11 Jan 2011 16:28:36 +0000
Cc: Axel Polleres <axel.polleres@deri.org>, Lee Feigenbaum <lee@thefigtrees.net>, SPARQL Working Group <public-rdf-dawg@w3.org>
Message-Id: <1185C8B4-A5E0-4AED-99C1-051AED5B9C9C@garlik.com>
To: Andy Seaborne <andy.seaborne@epimorphics.com>
* 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 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:45 GMT