- From: Paul Gearon <pgearon@revelytix.com>
- Date: Wed, 20 Jun 2012 19:49:13 -0400
- To: SPARQL Working Group <public-rdf-dawg@w3.org>
Hi, I've been working on an implementation of MINUS recently, and found the existing SPARQL tests did not cover a number of cases. I'd like to suggest the following tests: full-minuend, part-minuend. (files included below) These two queries cover a number of conditions each. Alternatively, each case tested in these queries could be pulled out individually. Regards, Paul Gearon full-minuend.ttl @prefix : <http://example/> . :a0 :p1 :b0 ; :p2 :c0 . :a1 :p1 :b1 ; :p2 :c1 . :a2 :p1 :b2 ; :p2 :c2 . :a3 :p1 :b3 ; :p2 :c3 . :d0 a :Sub . :d1 a :Sub ; :q1 :b1 ; :q2 :c1 . :d2 a :Sub ; :q1 :b2 . :d3 a :Sub ; :q1 :b3 ; :q2 :cx . full-minuend.rq prefix : <http://example/> select ?a ?b ?c { ?a :p1 ?b; :p2 ?c MINUS { ?d a :Sub OPTIONAL { ?d :q1 ?b } OPTIONAL { ?d :q2 ?c } } } order by ?a full-minuend.srx <?xml version="1.0"?> <sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head> <variable name="a"/> <variable name="b"/> <variable name="c"/> </head> <results> <result> <binding name="a"> <uri>http://example/a0</uri> </binding> <binding name="b"> <uri>http://example/b0</uri> </binding> <binding name="c"> <uri>http://example/c0</uri> </binding> </result> <result> <binding name="a"> <uri>http://example/a3</uri> </binding> <binding name="b"> <uri>http://example/b3</uri> </binding> <binding name="c"> <uri>http://example/c3</uri> </binding> </result> </results> </sparql> part-minuend.ttl @prefix : <http://example/> . :a1 a :Min ; :p1 :b1 . :a2 a :Min ; :p1 :b2 . :a3 a :Min ; :p1 :b3 . :a4 a :Min . :d1 a :Sub ; :q1 :b1 . :d3 a :Sub ; :q1 :b3 ; :q2 :c3 . :d4 a :Sub ; :q1 :b4 ; :q2 :c4 . :d5 a :Sub . part-minuend.rq prefix : <http://example/> select ?a ?b ?c { ?a a :Min OPTIONAL { ?a :p1 ?b } OPTIONAL { ?a :p2 ?c } MINUS { ?d a :Sub OPTIONAL { ?d :q1 ?b } OPTIONAL { ?d :q2 ?c } } } order by ?a part-minuend.srx <?xml version="1.0"?> <sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head> <variable name="a"/> <variable name="b"/> <variable name="c"/> </head> <results> <result> <binding name="a"> <uri>http://example/a2</uri> </binding> <binding name="b"> <uri>http://example/b2</uri> </binding> </result> <result> <binding name="a"> <uri>http://example/a4</uri> </binding> </result> </results> </sparql>
Received on Wednesday, 20 June 2012 23:49:42 UTC