- From: Andy Seaborne <andy.seaborne@epimorphics.com>
- Date: Tue, 11 Jan 2011 14:48:33 +0000
- To: Axel Polleres <axel.polleres@deri.org>
- CC: Steve Harris <steve.harris@garlik.com>, Lee Feigenbaum <lee@thefigtrees.net>, SPARQL Working Group <public-rdf-dawg@w3.org>
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