EXIF, IPTC, XMP and Standards


After having filed some bugs and spent a bit of time trying to figure out what’s going on, it appears that the issue with the metadata not carrying over from my DNG and CR2 files to the JPEG is not in any way RawTherapee’s fault. The problem is where Exiv2, the library used by Digikam, is expecting to look for this data. Of course, what I don’t understand about this is that Exiv2 is what wrote the data to begin with. Why write it to a location they were not going to be able to read from? Or maybe they only expect it to be there in DNG and CR2 files, but not JPEGs?

I don’t know here are the bugs I’ve filed in case someone else can make sense of it:

https://bugs.kde.org/show_bug.cgi?id=347737

http://dev.exiv2.org/issues/1081#change-3709

I’m going to have to post some DNGs to those bug reports so they can make sure not to be thrown off by the fact that it is not best practice to write to a CR2 file.

But what struck me most about this issue is the fact that the strength of the standards in that they can be expanded upon as camera manufacturers both expand upon what they capture and create new functionality to be captured ends up also being a weakness. For the data can be stored in various places that different tools do not expect to look in. This is the norm when it comes to standards. This is why it is recommended that you use all your WiFi equipment from the same manufacturer, for example.

In the case of my photos, this has resulted in me being somewhat upset. These feelings don’t really even have much to do with the present Digikam/Exiv2 issue. It’s upsetting that these things are not standard enough to guarantee that those who inherit my digital photos will be able to get all the tags, titles, captions, etc that I add. After all, the best thing about digital photos when it comes to documenting the family memories is that, unlike regular photos, there doesn’t have to be a consultation to the oldest living family member to find out who’s in the photo. A well-tagged photo in combination with facial recognition and a large enough database of photos makes it so that at the very least you know who is in the photo and at best you can correlate the names to the faces in the photo. If I take my own family as a representation, then there’ll maybe be 1-2 people per generation who will care about this stuff. But, having been frustrated in my attempts to work my way up the family tree, I’d like for it to neither be my fault nor the fault of technology that my descendants would be lacking in information. At least, if they maintain my folder structure, the dates and events will be roughly identifiable.

In the meanwhile, should I need to replace my photo hard drive soon (the point at which I’d like to make the switch in order to have btrfs instead of NTFS) there are at least a couple workarounds. First of all, I plan to provide a DNG to the Exiv2 guys (I’d given them a CR2 before) and help them in any way I can in order that all users can have a better product. Second, in a blog post I’ve yet written, I will talk about how I most likely won’t be making JPEGs of all photos anyway. This limits the ramifications of this issue. So I can always just sync up the metadata manually for onesy-twosy files. Third, if I need to do a huge batch of JPEGs, I can always create a script to use exiftool and Exiv2 to make sure the metadata is in the right place for Digikam to read it from the files.

Eventually (probably by 2016 when Exiv2 0.26 comes out), this’ll be a moot point in this particular case, but, with the way standards are written, it’ll continue to be an issue in one way or another going forward. And they’re just starting to figure out the best way to do metadata for videos….