- From: Dave Beckett <dave.beckett@bristol.ac.uk>
- Date: Fri, 8 Apr 2005 16:00:16 +0100
- To: Graham Klyne <gk@ninebynine.org>
- Cc: public-rdf-dawg-comments@w3.org
On Fri, 08 Apr 2005 15:17:25 +0100, Graham Klyne <gk@ninebynine.org> wrote: > At 13:30 08/04/05 +0100, Dave Beckett wrote: > Hmmm, maybe. Let me expand a little: I see my query processor working > something like this: > > Locate graph(s) to query > >> match query pattern against graph That won't work for DESCRIBE <uri> when there's no query pattern or constraint. > >> construct desired result from match (per SELECT/CONSTRUCT/ASK) > > The result of the second step is, I think, a collection of variable > bindings and a set of triples used for each. The CONSTRUCT clause is > applied for each member of this collection. Now, if there is no pattern to > match, how many times is it matched? For your interpretation to work under > this regime, it must be at least once or the result graph would be empty. I said it could be a legal query. The current wording is talking about constructing per-match. My example had 0 matches, ergo there is no construction so the result is 0 triples, an empty RDF graph. But this is hard to figure out. > One alternative is that a null pattern matches *any* graph, so there may be > an arbitrary number of matches (number of permutations of triples in the > queried graph (or number of subgraphs), I suggest), but the result is still > as you say because each match generates the same result and a graph is a > _set_ of triples. This works, but it feels a bit messy to me. > > But that's not consistent, or a non-null pattern would match for each > subgraph of the original that it matches. Observing that (with a non-null > pattern) every triple of a matched subgraph is used for each match > generated, so a null pattern would exactly match a null subgraph, and every > graph has exactly one null subgraph, so the null pattern would consistently > match any graph exactly once. This sits nicely with your example. I suppose that works; 'where {}' or omitted always returns 1 match with no bindings. > A consequence of this would be that: > prefix ex: <http://example.org/> > ask > always returns the value True. > > ... > > BTW, I see you use lowercase in your SPARQL examples: keywords are all > uppercase in the grammar -- are they meant to be case-insensitive? I can't > find anything in the spec to tell me about this. It's in the grammar, at least in the editor's draft I reviewed last. I don't bother typing uppercase sparql keywords except when eneded for clarity reasons. The only keyword that is lower-case only is'a' - the turtle keyword, in the editor's draft. Dave
Received on Friday, 8 April 2005 15:02:23 UTC