- From: Lee Feigenbaum <lee@thefigtrees.net>
- Date: Mon, 13 Aug 2007 15:31:00 -0400
- To: ogbujic@ccf.org
- CC: W3C Data Access Working Group <public-rdf-dawg@w3.org>
Chimezie Ogbuji wrote: > Per my ACTION, I've added 6 new tests to cover *some* common, missing > algebraic forms. 4 were added to data-r2/optional and 2 were added to > data-r2/algebra. Unfortunately (or fortunately, if you consider > uncovering untested bugs a good thing), RDFLib does *not* pass any of > these tests. I've gone over them several times to verify the expected > results. At the very least the data, queries, and results are > well-formed (no parsing compliants). Thanks, Chimezie. I added a trailing period to algebra/join-combo-graph-2.ttl and to optional/complex-data-1.ttl and to optional/result-complex*.ttl to get the parser I'm using to be happy. I also removed a stray " from a namespace declaration in result-opt-complex-2.ttl . > The new tests are: > > http://www.w3.org/2001/sw/DataAccess/tests/data-r2/algebra/manifest#join-combo-1 > Algebra form: Join(LeftJoin(BGP(..),{..}),Join(BGP(..),Union(..,..))) > Comment: Tests nested combination of Join with a BGP / OPT and a BGP / > UNION > > PREFIX : <http://example/> > > SELECT ?a ?y ?d ?z > { > ?a :p ?c OPTIONAL { ?a :r ?d }. > ?a ?p 1 { ?p a ?y } UNION { ?a ?z ?p } > } The result set here has two bindings for ?y. I'm guessing that one (the one bound to a literal) should be ?d but even then I don't think I'd agree with the test. Does the test assume RDF entailment (specifically knowing that if :a :b :c then :b a rdf:Property)? > http://www.w3.org/2001/sw/DataAccess/tests/data-r2/algebra/manifest#join-combo-2 > Algebra form: Join(Graph(varOrIRI,{..}),Union(..,..)) > Comment: Tests combination of Join operator with Graph on LHS and Union > on RHS > > PREFIX : <http://example/> > > SELECT ?x ?y ?z > { > GRAPH ?g { ?x ?p 1 } { ?x :p ?y } UNION { ?p a ?z } > } Glitter passes this test (I haven't eyeballed it in detail). > > http://www.w3.org/2001/sw/DataAccess/tests/data-r2/optional/manifest#dawg-optional-complex-1 > Comment: Complex optional: > LeftJoin(LeftJoin(BGP(..),{..}),Join(BGP(..),Union(..,..))) > > PREFIX foaf: <http://xmlns.com/foaf/0.1/> > SELECT ?person ?nick ?page ?img ?name ?firstN > { > ?person foaf:nick ?nick > OPTIONAL { ?person foaf:isPrimaryTopicOf ?page } > OPTIONAL { > ?person foaf:name ?name > { ?person foaf:depiction ?img } UNION > { ?person foaf:firstName ?firstN } > } FILTER ( bound(?page) || bound(?img) || bound(?firstN) ) > } I don't pass this and will try to look at it later. > http://www.w3.org/2001/sw/DataAccess/tests/data-r2/optional/manifest#dawg-optional-complex-2 > Comment: Complex optional: > LeftJoin(Join(BGP(..),Graph(var,{..})),Union(..,..)) > > PREFIX foaf: <http://xmlns.com/foaf/0.1/> > PREFIX ex: <http://example.org/things#> > SELECT ?id ?ssn > WHERE > { > ?person > a foaf:Person; > foaf:name ?name . > GRAPH ?x { > [] foaf:name ?name; > foaf:nick ?nick > } > OPTIONAL { > { ?person ex:empId ?id } UNION { ?person ex:ssn ?ssn } > } > } Glitter passes this. > http://www.w3.org/2001/sw/DataAccess/tests/data-r2/optional/manifest#dawg-optional-complex-3 > Comment: Complex optional: > LeftJoin(Join(BGP(..),Graph(var,{..})),LeftJoin(BGP(..),{..})) > > PREFIX foaf: <http://xmlns.com/foaf/0.1/> > PREFIX ex: <http://example.org/things#> > SELECT ?name ?nick ?plan ?dept > WHERE > { > ?person > a foaf:Person; > foaf:name ?name . > GRAPH ?x { > [] foaf:name ?name; > foaf:nick ?nick > } > OPTIONAL { > ?person ex:healthplan ?plan > OPTIONAL { ?person ex:department ?dept } > } > } Glitter passes this. > http://www.w3.org/2001/sw/DataAccess/tests/data-r2/optional/manifest#dawg-optional-complex-4 > Comment: Complex optional: > LeftJoin(Join(BGP(..),Union(..,..)),Join(BGP(..),Graph(varOrIRI,{..}))) > > PREFIX foaf: <http://xmlns.com/foaf/0.1/> > PREFIX ex: <http://example.org/things#> > SELECT ?name ?plan ?dept ?img > WHERE > { > ?person foaf:name ?name > { ?person ex:healthplan ?plan } UNION { ?person > ex:department ?dept } > OPTIONAL { > ?person a foaf:Person > GRAPH ?g { > [] foaf:name ?name; > foaf:depiction ?img > } > } > } I don't pass this either. I'll do my best to look at these tests in more detail to see what's up a bit later. Can anyone else report on these tests? Lee
Received on Monday, 13 August 2007 19:32:48 UTC