issues in rq25

I am happy to be working with Andy's new draft, rq25. I've done an
editing pass through the end of chapter 7. I have put my
characteristic pink issue hilighter on a few points which I am
describing here.


4.1.4 Syntax for Blank Nodes

  Blank nodes in query patterns act as *existential* variables.

I thought they acted as regular variables, i.e. one gets solutions for
each way the bnode could match a different term in the graph.
[TST] (below) tests this.

  The scope of the label is the basic graph pattern; if the same label
  is used in another basic graph pattern graph pattern, it is not the
  same blank node.

Is there really (still? again?) no correlation in the _:who variables
in this query?

Data:
  [ foaf:nick "ericP";
    foaf:mboxMD5 "A2BA23432B434443D45DF655A6C6E6E" ].
  [ foaf:name "Bob Smith";
    foaf:mbox <mailto:bob@example.com> ].

Query:
  SELECT ?nick ?mbox
   WHERE { ?who foaf:mboxMD5 "A2BA23432B434443D45DF655A6C6E6E";
		foaf:nick ?nick
	   OPTIONAL { ?who foaf:mbox ?mbox } }

Results:
  ?name  ?mbox
  ericP  <mailto:bob@example.com>


5.1 Group Graph Pattern

  For any solution, the same variable is given the same value
  everywhere in the set of graph patterns making up the group graph
  pattern.

We had a WG decision on this and I want to make sure the spec lines up
with that.


5.3 Order of Evaluation

  There is no implied order of graph patterns within a Group Graph
  Pattern

This is the full-outer-join issue. How did this get resolved?


7 Matching Alternatives

  Query results involving a pattern containing GP1 and GP2 will
  include separate solutions for each match where GP1 and GP2 give
  rise to *different* sets of bindings.

We talked about this some, too. Can't remember where we got. I prefer
to not have an implicit DISTINCT on UNION (something the SQL folks
regret).


I have some notes to add examples:
  empty graph patterns:
    WHERE { OPTIONAL { <mumble> <foo> ?bar } }
  FILTERs outside of the binding OPTIONAL:
    OPTIONAL { <mumble> <foo> ?bar } FILTER (!BOUND(?bar) || ?bar < 5) }

I'd like to clarify whether qname expansion occurs *before* relative
IRI resolution. Does
  BASE <http://example.org/services/SPARQL>
  PREFIX foo: <../namespaces/foo#>
  ... WERE { ... foo:barw ... }
mean
  <http://example.org/namespaces/foo#bar>
?


I'm not convinced that 4.1.4 Syntax for Blank Nodes needs to go into
such detail on the [ :p :o ] syntax, which is later described in
4.2.1. It's tough, you kinda need to teach these things in parallel,
and it's tedious to teach them non-exhaustively and later define them
exhaustively. I don't have any better ideas.


Tx a zillion for all the fab work, AndyS!


[TST] http://www.w3.org/2001/sw/DataAccess/tests/#rdfsemantics-bnode-type-var
-- 
-eric

office: +1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA
cell:   +1.857.222.5741

(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.

Received on Tuesday, 23 January 2007 12:45:14 UTC