Re: MINUS

Mechanical answer: I calculated it as:

==== D.ttl

@prefix i: <http://example/> .
@prefix n: <http://example/ns#> .

i:Jules n:memberOf  i:abc .
i:Jules n:related        i:Jim .
i:Jim    n:memberOf i:def .

=== Q.arq
prefix i: <http://example/>
prefix n: <http://example/ns#>

select * where {
     ?x n:memberOf ?org .
     {{?x n:related ?y} minus {?y n:memberOf ?org}}
}
===
which is:
(prefix ((n: <http://example/ns#>)
          (i: <http://example/>))
   (join
     (bgp (triple ?x n:memberOf ?org))
     (minus
       (bgp (triple ?x n:related ?y))
       (bgp (triple ?y n:memberOf ?org)))))

 >> arq.sparql --engine=ref --data D.ttl --query Q.arq
---------------
| x | org | y |
===============
---------------

because LHS of MINUS:

prefix i: <http://example/>
prefix n: <http://example/ns#>
SELECT * {?x n:related ?y}
==>
-------------------
| x       | y     |
===================
| i:Jules | i:Jim |
-------------------

and RHS of MINUS
prefix i: <http://example/>
prefix n: <http://example/ns#>
SELECT * {?y n:memberOf ?org}
==>

-------------------
| y       | org   |
===================
| i:Jim   | i:def |
| i:Jules | i:abc |
-------------------

so ?y=i:Jim in the LHS is in the RHS of the MINUS and so that row is 
removed from the results.

The join with ?x n:memberOf ?org . is joining with the empty table so is 
empty.

----

What did you expect?  What was the thought behind the question?

 Andy

LHS = Left Hand Side
RHS = Right Hand Side

On 18/05/2010 1:57 PM, Olivier Corby wrote:
> What is the result of this query ?
>
> i:Jules n:memberOf i:abc
> i:Jules n:related i:Jim
> i:Jim n:memberOf i:def
>
> select * where {
> ?x n:memberOf ?org .
> {{?x n:related ?y} minus {?y n:memberOf ?org}}
> }
>
>
>
> Olivier
>
>
>
>
> Please consider the environment before printing this email.
>
> Find out more about Talis at http://www.talis.com/
> shared innovation™
>
> Any views or personal opinions expressed within this email may not be
> those of Talis Information Ltd or its employees. The content of this
> email message and any files that may be attached are confidential, and
> for the usage of the intended recipient only. If you are not the
> intended recipient, then please return this message to the sender and
> delete it. Any use of this e-mail by an unauthorised recipient is
> prohibited.
>
> Talis Information Ltd is a member of the Talis Group of companies and is
> registered in England No 3638278 with its registered office at Knights
> Court, Solihull Parkway, Birmingham Business Park, B37 7YB.

Received on Tuesday, 18 May 2010 13:43:25 UTC