Hey, y'all

I finally have some time and some motivation, so it's time for a new 
project.  I'm planning to add filters and grouping to Pan View.

First off, here's my usecase: A few weeks ago, I photographed a 
25-hour-long endurance car race.  I shot 4,100 frames.  When I was 
reviewing them, I found that sometimes I wanted to focus on certain 
"sections" of the race, and at other times, I wanted to be able to 
briefly skim the different sections.  The sections might be "This was 
morning prep."  "This was the start."  "That's when the car hit a 
barrier."  "This was sunset."  And so on.

Geeqie can already encode all of the relevant metadata using Keywords, 
so that's the obvious design choice there.

As for filters and grouping, SQL is a pretty obvious conceptual analog 
for what I have in mind.  Suppose that we have a PanView open to 
/panview/path/, and that panview_filtered_keywords and 
panview_grouped_keywords are arrays of keywords.

Here's PanView now:
SELECT * FROM images WHERE filename LIKE '/panview/path/%';

The filter step is this.  Note that "&&" is the SQL operator to test for 
set overlap:
SELECT * FROM images WHERE (filename LIKE '/panview/path/%') AND 
(keywords && panview_filtered_keywords);

The grouping step is something like this — images that aren't in any 
grouped sets are unaffected, and ones that are in grouped sets are 
aggregated:
SELECT * FROM images WHERE (filename LIKE '/panview/path%') AND 
NOT(keywords && panview_grouped_keywords)
UNION
SELECT first(*) FROM images WHERE (filename LIKE '/panview/path%') GROUP 
BY GROUPING SETS (panview_grouped_keywords);

See a description of the GROUPING SETS behavior here:
https://www.postgresql.org/docs/9.5/static/queries-table-expressions.html#QUERIES-GROUPING-SETS

"first" is just an aggregation strategy, but it could (and probably 
should) just as well include some special UI treatment to show that the 
thing being displayed is a group rather than just a single image. 
Eventually, it could include a custom UI widget that allows scrolling 
through all of the entries in the group in-place.

There are plenty of details yet to be ironed out, like "what happens if 
an image has two keywords that are both in the panview_grouped_keywords 
array?"

Cheers,
--xsdg

------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
_______________________________________________
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel

Reply via email to