Re: Disjunction example

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