W3C home > Mailing lists > Public > public-rdf-dawg-comments@w3.org > August 2006

Re: { } and OPTIONAL

From: Seaborne, Andy <andy.seaborne@hp.com>
Date: Fri, 04 Aug 2006 14:18:56 +0100
Message-ID: <44D34940.5010305@hp.com>
To: jperez@ing.puc.cl
CC: "public-rdf-dawg-comments@w3.org" <public-rdf-dawg-comments@w3.org>

Jorge Pérez wrote:
> Hi!

Hi there,

First - and you probably know this but not all readers of this list might - 
rq24 has no standing whatsoever.  It is a editorial draft of rq23 that I did 
and it has not be reviewed or endorsed by the WG in anyway.  No definitions 
have been touched in the process and there are separate discussions which do 
include proposed clarifications/changes.  rq24 is not even finished and 
contains known (marked @@) and unknown (marked :-( to me) todo items.

> In rq24 in the definition of the Empty Group pattern the use of "requiring
> no substitution" is not clear (at least not for me). The specification of
> the example SELECT ?x WHERE { } is more clear but I think that it leads to
> an unexpected behavior.
> rq24 states that SELECT ?x WHERE { }
> "matches with one solution which has no substitutions for variables."
> Consider the data
> ex:a ex:p ex:b
> Does the definition mean that ?x -> ex:a is not a solution for the empty
> pattern { }? If this is the case then the pattern
> { } OPTIONAL { ?x ex:p ex:b }
> will not has as solution ?x -> ex:a because it is not a solution for the
> first pattern (applying the definition of OPTIONAL). This implies that for
> every pattern of the form
> { } OPTIONAL { P }
> no mather what P is, the solution is always the empty set. Is this the
> desired behavior? If it is not, I think that, to be consistent in the
> definitions, at least ?x -> ex:a must be consider a solution for { } with
> the dataset above and then (to be consisten again) ex:a must appear in the
> result of SELECT ?x WHERE { }.
> I don't know if I'm understanding well the definitions about { }, but I
> think that at least they deserve test cases with OPTIONALs and
> conjunctions of group graph patterns (for example a pattern like { { } {
> ?s ?p ?o } }).

Thanks for pointing it out - it's not what is intended which is the combined 
pattern of A and B if tried (which here would be the same as { ?x ex:p ex:b } 
hence there is a non-empty solution).

> In the same context, what is the necessity of having an Empty Group
> Pattern? is there a Use Case or Requirement about that?

The empty basic graph pattern can occur so an empty group can occur and SPARQL 
should have an explanation for it.  While maybe it's not natural when writing 
a query, when commenting out sections of a query for debugging, or building 
the query programmatically, it might arise.

> - jorge

Received on Friday, 4 August 2006 13:19:25 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:52:07 UTC