- From: Axel Polleres <axel.polleres@deri.org>
- Date: Wed, 15 Dec 2010 15:28:10 +0000
- To: "Steve Harris" <steve.harris@garlik.com>
- Cc: "SPARQL Working Group" <public-rdf-dawg@w3.org>
This action is now closed. Axel On 15 Dec 2010, at 15:23, Steve Harris wrote: > That's fine by me. > > - Steve > > On 2010-12-14, at 16:48, Axel Polleres wrote: > > > Steve, all, > > > > 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. > > > > (this discharges ACTION-348, but I leave it open until I have confirmation from Steve...) > > > > Axel > > > > On 13 Dec 2010, at 21:38, Andy Seaborne wrote: > > > >> > >> > >> On 13/12/10 20:12, Axel Polleres wrote: > >>> Hi all, > >>> > >>> I found this old action lying around, haven't found any notes on it, so I thought I just draft something: > >>> > >>> If we want that still, my suggestion would be to > >>> > >>> 1) change > >>> > >>> [9] ConstructQuery ::= 'CONSTRUCT' ConstructTemplate DatasetClause* WhereClause SolutionModifier > >>> > >>> to > >>> > >>> [9] ConstructQuery ::= ( 'CONSTRUCT' ConstructTemplate DatasetClause* WhereClause SolutionModifier ) | > >>> ( 'CONSTRUCT' DatasetClause* 'WHERE' ConstructTemplate SolutionModifier ) > >>> > >>> would that work with the grammar? > >> > >> (I haven't time to check it programmatically but looking at it visually...) > >> > >> Sort of. > >> > >> "yes" in the sense that if the WHERE is mandatory, CONSTRUCT WHERE is a > >> unique rule head so LL(1) works unambiguously. > >> > >> LALR(1) will, I think, have conflicts and needs checking because the > >> ConstructTemplate looks like a graph pattern but is a different rule. > >> > >> "no" for some practical considerations: > >> > >> 1/ WHERE is optional in the WhereClause form so there is cause for > >> confusion (minor - that's a value judgement we would have to make) > >> > >> 2/ ConstructTemplate isn't a full graph pattern and parsers may be > >> treating it differently internally because the evaluation later is > >> different. > >> > >> It's hard be certain of the effect of (2) on existing systems. It may > >> turn out to be a significant change to existing implementations in an > >> area they weren't expecting to work on and the value is small. > >> > >> It would be change in ARQ but I don't care and am quite prepared to > >> rework the CONSTRUCT form. (I came across a similar effect with DELETE > >> WHERE but that was all new code anyway.) > >> > >>> 2) add a subsection > >>> > >>> > >>> <div3 id="CONSTRUCTWHERE"> > >>> <head>CONSTRUCT WHERE</head> > >>> <p>In case the construct template is identical to the WHERE clause, i.e. the triples matched by the WHERE clause > >>> form the result graph, the CONSTRUCT Query form can be used in an abbreviated version, omitting the template.</p> > >> > >> It is not identical. The treatment of blank nodes is different. We > >> need to be precise. > >> > >>> <p>For example, for the same data graph as before, the following query copies all foaf:name triples to the result graph.</p> > >>> > >>> <pre class=query > >>> PREFIX foaf:<http://xmlns.com/foaf/0.1/> > >>> PREFIX site:<http://example.org/stats#> > >>> > >>> CONSTRUCT WHERE { ?person foaf:name ?name } > >>> </pre> > >>> </div3> > >> > >> 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 Wednesday, 15 December 2010 15:28:41 UTC