test cases for FILTER scope and order

Hi DAWGers,

I've cheked into CVS six test cases for the scope and order of FILTER 
clauses as per this (unresolved) email thread:
  http://lists.w3.org/Archives/Public/public-rdf-dawg/2006JulSep/0186.html

What I've checked in (results-wise) is my *personal* thought on what the 
behavior of FILTER is. My original message points out that the current 
spec. is underspecified, so these test cases are not based on it. I'd 
welcome discussion on what the results of these tests should be, and 
hopefully from there we can determine an overall design and from there we 
can fashion spec text.

The tests are described in this test manifest:
  http://www.w3.org/2001/sw/DataAccess/tests/data/Filter/manifest.n3

I'm summarizing them here:

-- data --

@prefix ex: <http://example.org/>
ex:s ex:p 1.

-- FILTER scope test cases --

-- dawg-filter-scope-001--

Opinion: A FILTER appearing in the same FilteredBasicGraphPattern (a 
sibling in the query tree) as a triple pattern matching the graph should 
constrain bindings arising from that triple pattern.

PREFIX ex: <http://example.org/>
SELECT ?x
{
  ex:s ex:p ?x .
  FILTER(?x > 1) .
}

==> {}


-- dawg-filter-scope-002

Opinion: A FILTER appearing in the same (inntermost) Group (an uncle in 
the query tree) as a triple pattern matching the graph should constrain 
bindings arising from that triple pattern.

PREFIX ex: <http://example.org/>
SELECT ?x
{
  { ex:s ex:p ?x }
  FILTER(?x > 1) .
}

==> {}


-- dawg-filter-scope-003

Opinion: Bindings introduced by a matching triple pattern which appears in 
a BGP which is a sibling of a Group in which a FILTER appears is 
unconstrained by that FILTER. (In this relationship, the FILTER is a 
nephew of the triple pattern in the query tree.) 

PREFIX ex: <http://example.org/>
SELECT ?x
{
  ex:s ex:p ?x .
  { FILTER(?x > 1) }
}

==> {?x/1}


-- dawg-filter-scope-004

Opinion: Bindings introduced by a matching triple pattern which appears in 
a BGP in a sibling Group of a Group in which a FILTER appears is 
unconstrained by that FILTER. (In this relationship, the FILTER is a 
cousin of the triple pattern in the query tree.) 

PREFIX ex: <http://example.org/>
SELECT ?x
{
  { ex:s ex:p ?x } .
  { FILTER(?x > 1) } .
}

==> {?x/1}



-- FILTER order test cases --

--dawg-filter-order-001

Opinion: The order in which a FILTER appears vis a vis triple patterns in 
the same FilteredBasicGraphPattern does not matter.

PREFIX ex: <http://example.org/>
SELECT ?x
{
  ex:s ex:p ?x .
  FILTER(?x=1) .
}

=> {?x/1}


-- dawg-filter-order-002

Opinion: The order in which a FILTER appears vis a vis triple patterns in 
the same FilteredBasicGraphPattern does not matter.

PREFIX ex: <http://example.org/>
SELECT ?x
{
  FILTER(?x=1) .
  ex:s ex:p ?x .
}

==> {?x/1}


Lee

Received on Saturday, 16 September 2006 21:20:37 UTC