ACTION: chimezie to eyeball the algebraic forms

So, I started with the list of facets [1] and removed those that didn't
explicitely match any of the operators (Join,Graph,Union,or LeftJoin).
This left only 3 facets (listed below).  For each, I checked against the
facet coverage report [2] for matches and grouped them by the abstract
expression forms [3]. 

<http://www.w3.org/2001/sw/DataAccess/tests/facets#GroupOrUnionGraphPattern-union>

Union(Graph(varOrIRI,{..}),BGP(..)))
- graph/graph-07.rq 
- graph/graph-11.rq
- dataset/dataset-11.rq
- dataset/dataset-07.rq
- dataset/dataset-11.rq
- dataset/dataset-12.rq

Union(BGP(..),BGP(..))
- optional/q-opt-3.rq

<http://www.w3.org/2001/sw/DataAccess/tests/facets#OptionalGraphPattern>

LeftJoin(BGP(..),LeftJoin(BGP(..),{..}))
- algebra/two-nested-opt.rq

LeftJoin(LeftJoin(BGP(..),{..}),Graph(varOrIRI,{..}))
- algebra/two-nested-opt-alt.rq
- optional/q-opt-2.rq

LeftJoin(BGP(..),{..})
- distinct/distinct-2.rq
- distinct/no-distinct-2.rq
- optional/q-opt-1.rq
- construct/query-construct-optional.rq
- algebra/var-scope-join-1.rq
- algebra/opt-filter-1.rq
- algebra/opt-filter-2.rq
- algebra/filter-scope-1.rq
- algebra/opt-filter-3.rq
- bound/bound1.rq
- boolean-effective-value/query-bev-5.rq
- boolean-effective-value/query-bev-6.rq
- optional-filter/expr-1.rq
- sort/query-sort-3.rq
- optional-filter/expr-2.rq
- open-world/open-eq-12.rq
- optional-filter/expr-3.rq

<http://www.w3.org/2001/sw/DataAccess/tests/facets#GraphGraphPattern>

Graph(varOrIRI,{..})
- graph/graph-03.rq
- graph/graph-04.rq
- graph/graph-06.rq
- dataset/dataset-03.rq
- dataset/dataset-04.rq
- dataset/dataset-06.rq

Join(Graph(varOrIRI,{..}),BGP(..))
- graph/graph-08.rq
- graph/graph-09.rq
- graph/graph-10.rq
- dataset/dataset-08.rq
- dataset/dataset-09.rq
- dataset/dataset-10.rq

(already mentioned):
- graph/graph-07.rq
- graph/graph-11.rq
- dataset/dataset-07.rq
- dataset/dataset-11.rq
- dataset/dataset-12.rq

Focusing on combinations not covered, the Join operator jumps out, with
the exception of the use of Graph and BGP with the Join operator:

Join(Graph(varOrIRI,{..}),BGP(..))

Some of the tests with the above form in common (there are many) could
perhaps be replaced with other Join forms not covered.  In particular,
Joins used in combination with Union and LeftJoin, such as:

Join(LeftJoin(BGP(..),{..}),Join(BGP(..),Union(..,..)))
  SELECT * WHERE { ?x ?y ?z OPTIONAL { .. }. ?a ?b ?c { .. } UNION
{ .. } }

Join(Graph(varOrIRI,{..}),Union(..,..))
  SELECT * WHERE { GRAPH ?x { .. } { .. } UNION { .. }}

..etc..

Combinations of LeftJoin that were not well covered include:

LeftJoin(LeftJoin(BGP(..),{..}),Join(BGP(..),Union(..,..)))
  SELECT * WHERE { ?a ?b ?c OPTIONAL { .. } OPTIONAL { ?x ?y ?z { .. }
UNION { .. } } } 
LeftJoin(Join(BGP(..),Graph(varOrIRI,{..})),Union(..,..))
  SELECT * WHERE { ?a ?b ?c GRAPH ?x { .. } OPTIONAL { { .. } UNION
{ .. } } } 
LeftJoin(Join(BGP(..),Graph(varOrIRI,{..})),LeftJoin(BGP(..),{..}))
  SELECT * WHERE { ?a ?b ?c GRAPH ?x { .. } OPTIONAL { ?x ?y ?z OPTIONAL
{ .. } } }
LeftJoin(Join(BGP(..),Union(..,..)),Join(BGP(..),Graph(varOrIRI,{..})))
  SELECT * WHERE { ?a ?b ?c { .. } UNION { .. } OPTIONAL { ?x ?y ?z
GRAPH ?w { .. } } }
LeftJoin(Graph(varOrIRI,{..}),Union(..,..))
  SELECT * WHERE { GRAPH ?x { .. } OPTIONAL { { .. } UNION { .. } } }
LeftJoin(Union(..,..),Join(BGP(..),Graph(varOrIRI,{..})))
  SELECT * WHERE { { .. } UNION { .. } OPTIONAL { ?a ?b ?c GRAPH ?x
{ .. } } }  

etc..

[1] http://www.w3.org/2001/sw/DataAccess/tests/facets
[2] http://www.w3.org/2001/sw/DataAccess/tests/facets-coverage

-- 
Chimezie Ogbuji
Lead Systems Analyst
Thoracic and Cardiovascular Surgery
Cleveland Clinic Foundation
9500 Euclid Avenue/ W26
Cleveland, Ohio 44195
Office: (216)444-8593
ogbujic@ccf.org


===================================

Cleveland Clinic is ranked one of the top hospitals
in America by U.S. News & World Report (2007).  
Visit us online at http://www.clevelandclinic.org for
a complete listing of our services, staff and
locations.


Confidentiality Note:  This message is intended for use
only by the individual or entity to which it is addressed
and may contain information that is privileged,
confidential, and exempt from disclosure under applicable
law.  If the reader of this message is not the intended
recipient or the employee or agent responsible for
delivering the message to the intended recipient, you are
hereby notified that any dissemination, distribution or
copying of this communication is strictly prohibited.  If
you have received this communication in error,  please
contact the sender immediately and destroy the material in
its entirety, whether electronic or hard copy.  Thank you.

Received on Tuesday, 7 August 2007 12:08:48 UTC