Nepomuk's Query class allowed construction from a manually created Term object. This setup allowed one to use the negation basic logic operator. Baloo's Query dropped the possibility to feed a manually created Term object and moved Term to implementation details. However, in doing so, it also dropped support for such operator (only AND and OR are supported). Negation is a basic logic operator and should be supported. My use case is very simple. Every time I read a document, I tag it with "already-read". I want to search for every document in the tag "project1" that isn't tagged as "already-read". Baloo's Term class still retains the "negated" property. I believe one only needs to update the function Term::fromVariantMap() and it'll automatically propagate to a few upper classes and functions such as Query::fromJSON().
Sounds like you're pretty close to writing a patch for this. :) Wanna go all the way and submit one? https://invent.kde.org/frameworks/baloo/-/merge_requests
Its not only the query which has to be updated, it also has to be executed. Thats the non-trivial part.
> Sounds like you're pretty close to writing a patch for this. :) Wanna go all the way and submit one? I thought more about the problem and -- as Stefan Brüns pointed out -- the query processor will have to be upgraded too. Old Nepomuk would rely on OpenLink Virtuoso for query execution, so no code from old code base could be used as a reference in the new Baloo framework. I'll just find a workaround for my use-case.
*** Bug 474994 has been marked as a duplicate of this bug. ***