Re: Various result forms

On Wed, May 05, 2004 at 01:30:04PM -0500, Pat Hayes wrote:
> >Re-execution is much, much cheaper, essentially as there are so few 
> >negative
> >search branches to follow.
> 
> But why would one ever need to re-execute, if you already have the 
> answer to the query? (what am I missing here?)

It's nice from a closure perspective. One of relational calculus's
claims to fame is that you query relations (tables) and you get back
relations. Result re-use scenarios like fedaration (your query server
actually divided the query and sent pieces to a couple other servers)
and sub-selects (SELECT street FROM addresses WHERE address.id NOT IN
(SELECT address FROM people)) can lean of the specification for
selecting from a (materialized) table. That is, you can treat the
results of your query as you would any other table.

It can also be *necessary* for closure if you have a QL with
disjunction.  The bindings for solutions to
  (?who worksIn engineering || ?who reportsTo Sue)
won't allow you construct statements (and use those statements
in conjunctions with other results to solve a larger query).

As to aggregate graphs, they will be more compact if the subgraphs for
any of the solutions re-assert the same statements [2]. They also don't
need a higher protocol layer to separate the graphs.

Naturally, it costs to re-execute the query, but I expect the common
case scenario will have a smallish result set in comparison to the
initial data set and the time to perform the latter query will be
insigificant.

> >[1] http://www.w3.org/2003/03/rdfqr-tests/recording-query-results.html
[2] http://lists.w3.org/Archives/Public/public-rdf-dawg/2004AprJun/0260
-- 
-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 Wednesday, 5 May 2004 15:34:21 UTC