- From: Jos De_Roo <jos.deroo@agfa.com>
- Date: Mon, 6 Sep 2004 23:13:29 +0200
- To: andy.seaborne@hp.com
- Cc: RDF Data Access Working Group <public-rdf-dawg@w3.org>
Thanks for those very useful test cases Andy and it's a good thing to have small tests :) For test case 1 we get (:x "p" q:unset) . (:x q:unset "q") . for test case 2 we get (:x "p" "q") . (:x q:unset "q") . and that is like in your message. Indeed, the case of optionals is different and there we have a design that is not using q:unset but a ?var instead and the result for test case 2 is then just (:x "p" "q") . -- Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/ "Seaborne, Andy" <andy.seaborne@hp.com> Sent by: public-rdf-dawg-request@w3.org 06/09/2004 15:02 Please respond to andy.seaborne To: RDF Data Access Working Group <public-rdf-dawg@w3.org> cc: (bcc: Jos De_Roo/AMDUS/MOR/Agfa-NV/BE/BAYER) Subject: Disjunction example What are people expecting to happen in disjunction when both sides match? Do people expect a solution with one arm matched and a solution with the other arm matched. This seems to be the clear case for me but do people expect one solution if the both arms match? Examples treating each arm independently: ==== data: @prefix : <http://example.org/> . :x :p "p" . :x :q "q" . ==== query: PREFIX : <http://example.org/> SELECT * WHERE { ?x :p ?p } OR { ?x :q ?q } ==== result: ------------------------------ | x | p | q | ============================== | :x | "p" | <<unset>> | | :x | <<unset>> | "q" | ------------------------------ What about: ==== query: PREFIX : <http://example.org/> SELECT * WHERE { ?x :p ?p . ?x :q ?q .} OR { ?x :q ?q } ==== result: ------------------------ | x | p | q | ======================== | :x | "p" | "q" | | :x | <<unset>> | "q" | ------------------------ (so it is not { ?x :q ?q . OPTIONAL {?x :p ?p} })
Received on Monday, 6 September 2004 21:14:07 UTC