CONSTRUCT *, optionals and alternatives

I can't reliably figure this:

Does a query submitted with "CONSTRUCT *" always return a graph equivalent 
to a query submitted with "CONSTRUCT p", where p is the query pattern 
submitted?

If not, why not (e.g. please show counter-example)?

(If true, this greatly simplifies my implementation.)

...

Partly answering my own question, I think this holds for simple query 
patterns, but doesn't obviously extend to more complex patterns involving 
optional or alternative elements.  I'm trying to figure out a way to 
construct the result graph from just the variable binding results.  Hmmm... 
maybe I can introduce some additional hidden variable bindings to track the 
optional/alternative choices matched

...

Looking more closely at OPTIONAL and UNION, I notice that the following may 
give rise to different results:
    OPTIONAL a
    a UNION {}

I mention this because in past work, I have implemented optional matching 
as a special case of alternative matching, where my alternative was a 
match-first-alternative rather than match-any-alternatives.

(I'm not asking for any change here, just making an observation.)

#g


------------
Graham Klyne
For email:
http://www.ninebynine.org/#Contact

Received on Friday, 8 April 2005 09:42:13 UTC