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

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:17:55 UTC