photools.com Community

IMatch Bug Reports and Feature Requests => Feature Requests => Archive (Feature Requests) => Topic started by: Quin on June 25, 2014, 04:32:03 PM

Title: @CatDistinct function which works on a Category sub-tree
Post by: Quin on June 25, 2014, 04:32:03 PM
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.
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: axel.hennig on June 25, 2014, 04:43:12 PM
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
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: Ferdinand on June 25, 2014, 11:33:33 PM
+1 (to the original request - not sure about the extras)
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: meyersoft on June 26, 2014, 07:50:51 AM
+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.
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: Mario on June 26, 2014, 03:55:37 PM
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.
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: Quin on June 27, 2014, 01:04:31 PM
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.
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: axel.hennig on November 09, 2014, 11:14:17 AM
Hello,

I just want to say that this feature request is still interesting for me.
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: Carlo Didier on November 14, 2014, 03:46:46 PM
+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.
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: meyersoft on January 04, 2015, 04:03:52 PM
Happy New Year!
Any news on this?
I am still very interested in this feature request... :)
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: Mario on January 04, 2015, 04:47:09 PM
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.
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: axel.hennig on January 07, 2015, 07:16:12 PM
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|...")
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: Carlo Didier on January 07, 2015, 07:43:52 PM
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.
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: tmcgill on January 08, 2015, 05:51:37 PM
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).
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: Ferdinand on January 08, 2015, 11:17:02 PM
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.
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: Mario on January 10, 2015, 07:40:49 PM
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.
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: meyersoft on February 01, 2015, 04:11:04 PM
Works like a charm in 5.3.4!
Thanks for implementing!
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: Carlo Didier on February 01, 2015, 10:56:22 PM
Great Mario!
Thanks a lot!
Title: Re: @CatDistinct function which works on a Category sub-tree
Post by: Quin on February 02, 2015, 10:41:15 AM
Well done, Mario!  It works just like I wanted.  Many thanks.
Quin