# MINUS vs. NOT EXISTS (comment JB-2)

From: Axel Polleres <axel.polleres@deri.org>
Date: Tue, 1 Mar 2011 11:26:40 +0000
Message-Id: <6F8DFA21-0503-40FF-B08F-C3BFFCCDE755@deri.org>
To: SPARQL Working Group <public-rdf-dawg@w3.org>
```Dear all,

I am afraid I need some help on Jeen's comments on negation, see

http://www.w3.org/2009/sparql/wiki/CommentResponse:JB-2

Please, for Jeen's original comments, refer  see [1,2].
His criticism boils down to the fact that MINUS is - essentially - equivalent to NOT EXISTS in
all cases except those where it is - syntactically - superfluous. At first glance, this seems to be a correct
observation and - if so -  a good point.

Coming from Sesame's definition of MINUS, I assume that Jeen probably had expected something like a multiset-difference operator
that potentially affects cardinality? *)

Now, I think, we most probably do not want to revisit the definition of MINUS, but maybe we want to re-think whether
we not simply want to drop the difference between MINUS and NOT EXISTS to avoid further confusion.

So, I see three options to proceed on Jeen's comment...

a) leave things as they are, but find a good explanation for answering Jeen's comment... I'd appreciate
any suggestions there, but I feel a bit uncomfortable arguing for it in a reply, since I think he has a point.

b) eliminate the difference between MINUS and NOT EXISTS, which would mean that

Minus(Ω1, Ω2) = { μ | μ in Ω1 such that for all μ' in Ω2, either μ and μ' are not compatible or dom(μ) and dom(μ') are disjoint }

would change (back?) to

Minus(Ω1, Ω2) = { μ | μ in Ω1 such that for all μ' in Ω2, μ and μ' are not compatible }

right?

c) trying to really address multiset difference affecting cardinality...

Without knowing Sesame's internals, I think Jeen's intuition might be something like

Minus(Ω1, Ω2) = { μ | μ in Ω1 }

card[Minus(Ω1, Ω2)](μ) = max(0, card[Ω1](μ) - sum({card[Ω2](μ') | μ' in  Ω2 AND μ' compatible with μ AND  dom(μ) intersect dom(μ') != empty }))

but that's just a guess at the moment and I think some people here had thought deeper about this than me...

In all honesty, if Jeen's observation is right, personally:
- I am a bit worried about a), but I can live with it, if someone helps me with a good suggestion how to answer (without having to explaing all the history of NOT EXISTS vs. MINUS
- I could live with b), which seems to make MINUS and NOT EXISTS equivalent syntactic sugar
- c) seems to be too far off to me at this stage, I haven't had a chance to think about such definition deeply and don't know whether we have time and resources to
throw things over in that way here.

Opinions?

best,
Axel

*) I do remember we discussed these things a while back, but I couldn't dig up any definitions that would do something about cardinality... any pointers welcome!