W3C home > Mailing lists > Public > public-lod@w3.org > September 2013

Re: SPARQL results in RDF

From: Sven R. Kunze <sven.kunze@informatik.tu-chemnitz.de>
Date: Wed, 25 Sep 2013 16:45:38 +0200
Message-ID: <5242F712.5020208@informatik.tu-chemnitz.de>
To: public-lod@w3.org
CC: Andy Seaborne <andy.seaborne@epimorphics.com>
On 09/25/2013 04:31 PM, Andy Seaborne wrote:
>
>
> On 25/09/13 15:10, Sven R. Kunze wrote:
>> On 09/25/2013 04:02 PM, Dave Reynolds wrote:
>>> On 25/09/13 14:57, Sven R. Kunze wrote:
>>>> On 09/25/2013 03:53 PM, Dave Reynolds wrote:
>>>>> Hi Damian,
>>>>>
>>>>> On 25/09/13 14:16, Damian Steer wrote:
>>>>>> On 25/09/13 12:03, Stuart Williams wrote:
>>>>>>> On 25/09/2013 11:26, Hugh Glaser wrote:
>>>>>>>> You'll get me using CONSTRUCT soon :-)
>>>>>>>> (By the way, Tim's actual CONSTRUCT WHERE query isn't allowed
>>>>>>>> because
>>>>>>>> of the FILTER).
>>>>>>>
>>>>>>> Good catch... yes - I've been bitten by that kind of thing too...
>>>>>>> that
>>>>>>> not all that's admissible in a WHERE 'body', is admissible in a
>>>>>>> CONSTRUCT 'body'.
>>>>>>
>>>>>> As far as I'm aware it is -- Tim's original simply misplaced a curly
>>>>>> brace. The filter ought to be in the WHERE body.
>>>>>>
>>>>>> CONSTRUCT is essentially SELECT with a tabular data -> rdf system
>>>>>> bolted
>>>>>> at the end of the pipeline.
>>>>>
>>>>> I think the point people were making is that the syntactic shortform
>>>>> "CONSTRUCT WHERE" with implicit template only applies when you have a
>>>>> simple basic graph pattern [1].
>>>>>
>>>>> If the WHERE clause is more complex, e.g. with a FILTER, then you 
>>>>> need
>>>>> an explicit construct template.
>>>>>
>>>>> Dave
>>>>>
>>>>> [1] http://www.w3.org/TR/sparql11-query/#constructWhere
>>>>>
>>>>>
>>>>
>>>> How did you come to that conclusion?
>>>
>>> Based on the part of the specification given by link [1] above, which
>>> says (my emphasis):
>>>
>>> "A short form for the CONSTRUCT query form is provided for the case
>>> where the template and the pattern are the same and the pattern is
>>> just a basic graph pattern **(no FILTERs and no complex graph patterns
>>> are allowed in the short form)**."
>>>
>>> Dave
>>>
>>
>> I see, Dave. However, my intention was to understand the reason behind
>> that decision. This quote is not a justification, just a description of
>> what's expected to work.
>>
>> I can't see why restricting the set of where clauses is necessary.
>
> You can consult the email archives and telecon meeting minutes for the 
> discussions.  The spec is not going to have a justification for every 
> decision; that's not a spec anymore!
>
> It gets increasingly difficult to define what the implicit template 
> should be.  What about OPTIONALS? UNION? Subquery?  There was a 
> consideration of BGP+FILTER.
>
> In the end, given the constraints of time and other features, the 
> simple case (simple to explain, to implement and to specify) where the 
> template and the WHERE pattern are the same was put in the spec. 
> Otherwise you need to give the relation of WHERE to template.
>
>     Andy

Alright, I understand that. Thanks.
It was just curiosity because that the where clause couldn't be more 
than a BGP was considered natural and logical; which it wasn't to me.

Sven


-- 
Sven R. Kunze
Technische Universität Chemnitz
Department of Computer Science
Distributed and Self-organizing Systems Group
Straße der Nationen 62
D-09107 Chemnitz
Germany
E-Mail: sven.kunze@informatik.tu-chemnitz.de
WWW: http://vsr.informatik.tu-chemnitz.de/people/kunze
Phone: +49 371 531 33882
Received on Wednesday, 25 September 2013 14:46:02 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:21:56 UTC