- From: Richard Newman <r.newman@reading.ac.uk>
- Date: Thu, 25 Jan 2007 22:43:36 -0800
- To: public-rdf-dawg-comments@w3.org
Hello again folks, DAWG,
I'm finding the current published SPARQL spec to be a little
ambiguous with regards to named graphs. (As a documentation comment,
this is primarily because the examples are insufficient; they are
each both small and 'positive', in that there are no triples or
graphs to distinguish between interpretations by causing spurious or
missing results. This makes it hard to divine a correct
interpretation by example.)
So, an out-and-out question:
- Can GRAPH clauses be nested? If yes, how is this to be interpreted?
The spec does not say that they cannot, and the grammar does not
restrict it, but no examples are provided, and it is hard to imagine
a reasonable interpretation.
... and two points of clarification:
- It should be made absolutely explicit that a query is really
composed of two interleaved parts:
- a collection of patterns that run on the default graph, which is
selected by the merge of the FROM clauses
- a collection of patterns, each with a GRAPH context, which are
run against the collection of named graphs selected by FROM NAMED.
Without a careful reading of the spec, it is hard to tell that
GRAPH patterns don't also run on the default graph (where the graph
variable would be unbound)*. In fact, these two collections of
patterns intersect only in their variable bindings; otherwise, they
are essentially completely separate.
- The spec suggests that a default graph is chosen by the
implementation only if no dataset specification is provided;
otherwise, the default graph is "a default graph consisting of the
merge of the graphs referred to in the FROM clauses". The query:
SELECT *
FROM NAMED <http://example.com>
{
?x ?y ?z .
}
has a dataset specification, but it contains no FROM clauses. A
strict reading of the spec, then, implies that the default graph is
the RDF Merge of 0 graphs, which is the empty graph: the query can
have no results. Is this as intended, or should the implementation
provide its chosen default graph if there are no FROM clauses? If so,
the spec needs to be altered.
Regards,
-Richard
* Indeed, 9.1 suggests that this is a good idea: "The definition of
RDF Dataset does not restrict the relationships of named and default
graphs. Information can be repeated in different graphs;
relationships between graph can exposed. Two useful arrangements are:
to have information in the default graph that includes provenance
information about the named graphs
to include the information in the named graphs in the default graph
as well.".
Received on Friday, 26 January 2007 06:43:46 UTC