- From: Steve Harris <steve.harris@garlik.com>
- Date: Mon, 20 Nov 2006 17:44:10 +0000
- To: Lee Feigenbaum <feigenbl@us.ibm.com>
- Cc: RDF Data Access Working Group <public-rdf-dawg@w3.org>
On 20 Nov 2006, at 17:12, Lee Feigenbaum wrote:
...
>
> {
> { T1 } UNION { T2 } .
> T3 .
> OPTIONAL { T4 . }
> }
>
> Is this:
> Group( Optional( Group( Union(T1, T2), T3), Group(T4) ) ) )
> or
> Group( Union(T1, T2), Optional( Group(T3), Group(T4) ) )
>
> That is, does OPTIONAL pull in everything before it (but in the same
> group) to form the implicit LHS group, or just the nearest bunch of
> triple
> patterns and filters? I suspect the former, but find this confusing.
Agreed, it's confusing.
It's always been my opinion that allowing FILTER to be anywhere in
the query hurts readability.
> Fred Z. and I have both advanced the idea that perhaps SPARQL should
> require that the LHS of the OPTIONAL be explicitly demarcated by
> mandatory
> curly braces. In our opinion (OK, in my opinion, but I'm guessing Fred
> shares it), this would alleviate any confusion and make complex
> queries
> more readable.
>> From conversations with Andy, I believe that he disagrees that
>> mandatory
> curlies would make queries more readable (believing instead that
> the extra
> curlies would make reading queries more difficult) and he is also
> worried
> about the significant number of existing SPARQL queries that would
> become
> invalid.
I agree with Andy here. I've seen a lot of queries like:
T1 .
T2 .
OPTIONAL { T3 }
OPTIONAL { T4 }
OPTIONAL { T5 }
and those would become a real eyeful:
{
{
{ T1 .
T2 .
} OPTIONAL { T3 }
} OPTIONAL { T4 }
} OPTIONAL { T5 }
Plus, explaining, and implementing the difference between:
{ T1 . T2 . } OPTIONAL { T3 }
and
T1 . { T2 } OPTIONAL { T3 }
is not something I relish.
- Steve
Received on Monday, 20 November 2006 17:44:18 UTC