@CatDistinct function which works on a Category sub-tree

Started by Quin, June 25, 2014, 04:32:03 PM

Previous topic - Next topic

Quin

It would be very nice to allow for searches within Categories for a distinct category, but with the search restricted to a category sub-tree.
eg Within 'People' to search for images categorized 'Fred' while excluding images categorized 'Joe', so that images containg Fred AND Joe are excluded.
Perhaps a @CatDistinct type of function with 2 parameters: (1) The root of a category sub-tree; and (2) the the distinct Category within that sub-tree.

axel.hennig

Perhaps this feature can be extended a little bit in the following way (described by examples):

(1) searching for images ONLY containing Anna -> this is the feature request posted by Quin
(2) searching for images ONLY containing Anna OR Bernd
(3) searching for images ONLY containing Anna AND Bernd
(4) number (2) and (3) not restricted only to two people

Ferdinand

+1 (to the original request - not sure about the extras)

meyersoft

+1 from me (for initial request and addition 2)+3) - not sure about complexity of 4)).

This is what I already missed on imatch 3 - until now, I had a category "single person" that had to be filled manually - not very convenient.

Mario

I'm not sure if this would make sense as a category formula function. Maybe in addition. But this really looks more like an extension for the Category filter...

I don't think that you want to find all files in "Anna" under "People" that that's it. I guess it is more likely that you will find "Mary" or "Peter" tomorrow. A formula like

@CatExclusive("Anna", "People")

(Find all files which are only assigned to "People|Anna" but to no other category under "People") is rather unflexible. You will have to edit the category formula or create multiple categories for "Anna alone", "Mary alone", "Peter alone", ...

A filter where you can interactively select the Parent and the child category you are interested in would be more interactive. Since the filter and the formula function would use the same technology I would implement both.

Problem for the filter is that users will of course quickly come up with:

"I want to find files with only Anna or Mary".
"I want to find files which have both Anna and Mary, but no other categories from People".
...

And this would complicate both the filter user interface and the formula function. Which means quite a lot of work in the UI and/or the formula parser.

I will also need to do some preliminary tests first. What if a user wants to find all files with the keyword "susurrus" but not "whisper"? @Keywords is just a category, so it needs to work here too. Or a user has many friends and a big family? Just consider we are using @Keywords:

5000 @Keywords. The user specifies

@CatExclusive("susurrus","@Keywords")

+ IMatch first has to calculate 5000 categories to find out which files they contain.
+ For each file in "susurrus" IMatch then must check all 4999 other categories to see if they contain the file.
+ If this is the case, the file is excluded, else it is a match.

This can become a performance issue. Not sure yet, need to make some tests.

As you can see, there is quite a bit of work required for this feature. And there are over 100 other feature requests as well.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Quin

Hi Mario,
Thank you for providing your excellent 'train of thought' on this Feature Request.  I really appreciate it.
It has taken time to fully digest all of what you are saying!
As I understand it, there are 2 primary problems: (1) setting up a @CatExclusive formula for each person ("Anna alone", "Mary alone, ...);  (2) the 'Explosion' of processing that @Keywords would cause.
Also, thinking about my original purpose: @CatExclusive would identify images categorized "Anna" and NOT categorized by any other categorized person.  This is a sort of 'false positive' since the image may contain people who have not been categorized.  Sometimes this is OK, but at other times I need the strict definition of 'Alone' ("Really alone") where images contain only the person categorized, and do not contain other unidentified people.
Perhaps the only solution is to manually categorize images with "Alone" (containing just one categorized person) and "Really alone" containing just one person, categorized or otherwise.

axel.hennig

Hello,

I just want to say that this feature request is still interesting for me.

Carlo Didier

+1 for the original and second request.
I was astonished that a possibility to search for ex. for images with only person X and person Y (and no other person) should not already be possible. It's a perfectly plausible query for me.
Sometimes I'd like to find pictures with only my wife and my daughter (but nobody else), or pictures with only our two dogs (and no other dog). Perfectly logical.
Now, whether to implement this with filters, searches or whatever, I don't care.

meyersoft

Happy New Year!
Any news on this?
I am still very interested in this feature request... :)

Mario

QuoteWithin 'People' to search for images categorized 'Fred' while excluding images categorized 'Joe', so that images containg Fred AND Joe are excluded.

Would that be the same as the result of this category formula:

"Persons|Fred" NOT "Persons|Joe"

Show all images assigned to Fred, except the images are also assigned to Joe?
This rules out images assigned to both Fred and Joe.


PS.: There is no need to 'bump' FR's because there are about 400 FR's now.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

axel.hennig

Quote from: Mario on January 04, 2015, 04:47:09 PM
Would that be the same as the result of this category formula:

"Persons|Fred" NOT "Persons|Joe"

Show all images assigned to Fred, except the images are also assigned to Joe?
This rules out images assigned to both Fred and Joe.

This would be the intended result, but I think the point is: What should we do if we have a "Persons" category with a hundred or more subcategories? Then the category furmula would be:

"Persons|Fred" NOT ("Persons|Joe" or "Persons|Anton" or "Persons|Bernd" or "Persons|Carla" or "Persons|David" or "Persons|Emil" or "Persons|...")

Carlo Didier

Quote from: axel.hennig on January 07, 2015, 07:16:12 PM
This would be the intended result, but I think the point is: What should we do if we have a "Persons" category with a hundred or more subcategories? Then the category furmula would be:

"Persons|Fred" NOT ("Persons|Joe" or "Persons|Anton" or "Persons|Bernd" or "Persons|Carla" or "Persons|David" or "Persons|Emil" or "Persons|...")

Exactly my thoughts. I often look for images where ONLY a certain person is shown. Something like "WHO|People|Didier Carlo" NOT "WHO|People" just won't work. So I have to visually filter through tons of images where the searched person is shown, but not alone.

tmcgill

I agree this sort of thing is useful. But a workaround that would be much less work and time and much less error-prone than a visual scan of hundreds of images might be to temporarily move your target person's category out of the "Persons" hierarchy, then find "Joe" NOT "Persons". You could then select all the resulting images, mark them in some way (flag, bookmark, or assign to a "Targeted Solo Person" category, or whatever), and immediately move the individual name category back inside the "Persons" category (so you don't forget to do that later).

Ferdinand

Quote from: tmcgill on January 08, 2015, 05:51:37 PM
... temporarily move your target person's category out of the "Persons" hierarchy, then find "Joe" NOT "Persons".

Not really an option for keywords.  There is a further workaround that should work for keywords, but this all gets rather tedious if you do it often enough.

Mario

This category formula now supports an optional 2nd argument. This argument allows you to specify where to search when determining if a file is exclusively assigned to a category.

This new feature solves all kinds of problems, e.g. when you want to answer questions like "Show me all files only assigned to Persons|John but no other Persons category".

5.3.4.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

meyersoft

Works like a charm in 5.3.4!
Thanks for implementing!


Quin

Well done, Mario!  It works just like I wanted.  Many thanks.
Quin