generic Version Detection (use "any" metadata to identify File Relations)

Started by akirot, June 06, 2017, 10:09:16 AM

Previous topic - Next topic

akirot

Background:
As long as I use a DAM (i.e. since IMatch3) I use specific metadata fields to identify masters and derived versions. IMatch5 introduced a mighty relation management. The version detection is based on Filenames, Timestamps or XMP DocumentIDs. All have their pros and cons but don't work on my legacy files and current files at the same time. This is why I wrote a script with my own version detection mechanism.
With IMatch2017 Mario dropped the Basic scripting and necessary version management methods aren't (yet) available (see thread "corresponding IMatch 5 and 2017 methods"). Thus I can't migrate without losing function :-( .

A feature extension of the current Version Detection can help me out (and might be for the benefit of the whole community):
As far as metadata is concerned currently IMatch compares Timestamps  or DocumentIDs to identify relations.

The request is to extend this to "any" metadata field i.e. make it generic.

If the contents of a specific metadata field is identical between two or more files they are related.

It could be achieved by adapting (the logic behind) the existing ...Preferences>File Relations/Detection dialogue:

- "Link via": make a metadata field selectable  (e.g. using one of the already existing dialogues). If this field is identical (according to the Link Expression, see below) the files in scope are related.
- "Master Expression":  add a selectable metadata field to the regex already there. If the contents of the "Link via" metadata field and the "Master Expression" are identical  (the expression true) the probed file is a master.
- "Replacement Expression": leave as is (working on the selected "Link via" metadata field)
- "Link expression": basically leave as is (working on the selected "Link via" metadata field)

This generic approach could replace the currently hard coded DocumentID comparison, the Filename comparison (and even the Timestamp comparison if there weren't the time tolerance ;-) )

Thank you for taking into consideration.