- 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