My need is to be able to try and add relevant metadata to some of the images.
And the most obvious way would be to do so in a gramplet, because I would prefer to ensure consistency between the two sets.
But as soon as one adds a capability to modify, either/or both an image or the Gramps db itself, one takes on a huge burden of ensuring both safety and consistency.
I have looked at the 2 available gramplets which deal with metadata,
One, Image metadata, deals pretty well only with EXIF data, but the more useful tags, at least for genealogy, will likely be in the XMP and IPTC name spaces.
The second one, Edit Exif Metadata, seems to display the same data as I see from the other metadata gramplet.
I have not yet investigated, in detail, the code for either of these gramplets recently, but from what I recall, they both rely on/use the Python interface to Exiv2, but IIRC, are based on an older version of the Exiv2 library.
I have no idea why development on the ‘Edit Metadata’ (EM) gramplet stalled, but I have been playing with software and metadata for long enough to see what issues one would face if one wanted to integrate the features ‘proposed/promised’ by EM.
Some of the more pressing and important ones, assuming the basic requirements:
- Metadata is data stashed away inside the images
- Gramps data is stashed away in the db
- it is most likely that data needs to be transferred in either direction
- data consistency is most important
there is no specified mapping between which DB data goes to which metadata tag
the purpose of the fields on either side, is ‘predefined and set’ by the designers/maintainers of Gramps and the various metadata ‘authorities’ respectively.
There has been some related work started @ https://www.facebook.com/groups/www.fhmwg.org but it seems stalled from where I sit.
What sort of correspondence between the 2 datasets is desired?
The most obvious one is that they should correspond and match.
What if they don’t?
What sort of facilities can be built in to help, not only detect differences, but provide a means to ‘fix’ these.
Which one of the 2 will be considered ‘primary’
How does one even define ‘match’ for different data? in data format? - such as dates, coordinate representation …
As I mentioned above, as soon as one adds an option which has the potential to change the data of an existing app, the effort to ensure safety and consistency becomes very onerous and demanding.
What the main developers of Gramps have to say about incorporating such a gramplet, I can only imagine.
Without a fixed and accepted mapping between the fields, it is simply impossible to even test.
And until then, each user can make up his own mapping, which really is just putting things off, but makes true and general integration impossible.
Hence, my approach is to stay away from needing to meet the criteria involved in trying to incorporate the gramplet for as long as possible.
My current plan is:
add a gramplet to at least display the metadata already present in the image - as completely as possible.
expand this display to handle as many potential image formats, such as pngs, tif and others
try to come up with a preliminary mapping of data and metadata tags
find how to best display the mapping and any potential differences
look into writing some metadata to images
find out how that affects the media and media verification, resolve any issues if possible.
… there will be plenty of other issues which will show up along the way