W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > January to March 2011

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!

1. http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2011Jan/0010.html 
2. http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2011Feb/0004.html
Received on Tuesday, 1 March 2011 11:27:15 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:45 GMT