[tmql-wg] Negation in the different TMQL candidates

Rani Pinchuk Rani.Pinchuk@spaceapplications.com
Wed, 31 Mar 2004 16:01:41 +0200


Thanks for your reply.

> | 
> | select $player, %is-author where is-author->author != $player;
> | 
> | Could give:
> | 
> |   $player   | %is-author
> | ------------+------------
> | bla         |     1
> | bla         |     2
> | 
> | Because the topic 'bla' indeed doesn't play the author role in an
> | association of type is-author. But actually the more correct result
> | is: 
> | 
> | 
> |   $player   | %is-author
> | ------------+------------
> | steve-pepper|     2
> | holger-rath |     1
> | bla         |     1
> | bla         |     2
> 
> It's not clear what this query does, actually. Where do the $player
> values come from? As far as I can see, Toma doesn't say, and that's
> why your query is ambiguous. It's also hard to see how you could read
> this query in English.

The expression is-author->author represents a player that plays 
the role 'author' in an association object of type 'is-author'.

The problem I describe raise because there are several association
objects 
of that type, so there is more then one player that plays in such
association 
object. 

When there is = sign, $player value will be all the topics that plays in
such
association object (so all the players playing the role 'author' in an 
association object of type 'is-author').

When there is != sign, $player value can be:
1. All the topics that do not play in such an association object, 
OR 
2. All the topics that do not play in ALL those association objects.

Number two above looks to me like the filtering you do in tolog. Am I
correct? 

Rani