W3C home > Mailing lists > Public > public-rdf-dawg-comments@w3.org > June 2005

RE: Test cases

From: Geoff Chappell <geoff@sover.net>
Date: Fri, 17 Jun 2005 08:53:45 -0400
To: <andy.seaborne@hp.com>
Cc: <public-rdf-dawg-comments@w3.org>
Message-ID: <00c701c5733b$994e2ff0$6501a8c0@gsclaptop>



> -----Original Message-----
> From: Seaborne, Andy [mailto:andy.seaborne@hp.com]
> Sent: Friday, June 17, 2005 4:19 AM
> To: Geoff Chappell
> Cc: public-rdf-dawg-comments@w3.org
> Subject: Re: Test cases
> 
> Geoff Chappell wrote:
> >
> >>-----Original Message-----
> >>From: Seaborne, Andy [mailto:andy.seaborne@hp.com]
> >>Sent: Wednesday, June 15, 2005 11:32 AM
> >>To: Geoff Chappell
> >>Cc: public-rdf-dawg-comments@w3.org
> >>Subject: Re: Test cases
[...]
> Geoff,
> 
> This does seem to suggest an approach though.
> 
> The definitions could require that any binding is tracable to a basic
> pattern
> match from some part of the overall query pattern.  This restricts the
> graph
> terms to those that can arise anywhere in the query from a basic pattern -
> and
> it's only basic patterns that connect the query pattern to the target RDF
> graph.

My guess is that to define "traceable" you'll have to introduce equivalence
preserving transformations/re-writes that result in an equivalent query as a
matrix of purely conjunctive queries. Those might look something like:

optional (a) -> a union !a
!(a union b) -> !a !b
!(a b) -> !a union !b
a (b union c) -> a b union a c
...

One approach then would be to require that for all conjunctive queries in
the matrix, any variable that occurs in each must occur at least once in a
positive basic pattern in that same query (i.e. all vars are
range-restricted so the query is safe). I think this is what you're
suggesting above? The downside of that is that it pretty much eliminates
optionals which seems a bit baby-out-with-the-bath-water-ish.

Another approach would be to say that for each of the conjunctive queries,
if a variable occurs in a positive basic pattern it is range-restricted to
the terms that occur in the dataset (plus graph names to allow for vars in
graph name positions), otherwise it has some special value (null or unbound
or ...). This preserves the intended meaning of optional and provides a
clear set of rules to determine when unbound vars are introduced. 

> 
> 	Andy

Geoff
 
Received on Friday, 17 June 2005 12:54:16 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:14:48 GMT