Although I delete most of the images I shoot, although I put each month’s keepers in a directory, although I have taken the habit of printing a “digital contact sheet” each month, I am faced with a growing number of images and they need to be manageable somehow…
One of the main tool for that is image tagging and guess what? It is the subject of this entry.
Tagging: the principle
The idea is to add keywords (“tags”) to your images, which can then be searched through. Simple, like all great ideas are.
In my opinion (and I am not the only one), it is important that the tags are attached to the image file as metadata. This way, moving, copying, renaming a file will not have any influence on its tags – as opposed to having something like a ~/.tagfolder.
It is also important that the format of the tags is standard so it can be read by your image viewer (think virtual slidehow), written by whichever tool you have your image open with and be searched by desktop search tools.
Tagging: the standard(s)
Now the good news is that the first standard for tagging as metadata was defined in 1979 and is known as IPTC (wiki). It was revised in 1991 and in 2001 Adobe further developed it into XMP (Extensible Metadata Plateform – wiki, web) which is based on xml embedded as image metadata.
Since May 2007, Adobe licensed its XMP SDK (Software Development Kit) under a BSD Licence. There has also been some collaboration going on between Adobe and IPTC, resulting in the “IPTC Core Schema for XMP”.
So the standards exist and there are 3 libraries implementing them under Linux: libiptcdata (for IPTC, yeah!), libexempi (for XMP, developped by Hub Figuiere, as a side-product of libopenraw) and the Exiv2 library (for image metadata in general: exif, XMP and IPTC).
Tagging: GThumb support
Now the question is whether my $favorite_image_viewer implements IPTC or XMP tagging. In my case, favorite_image_viewer = GThumb and I am lucky. GThumb can use libiptcdata and is apparently considering libexiv2.
Now why Ubuntu compiles GThumb without libiptcdata is beyond me (bug report).
So I added libiptcdata a few more -dev packages to my Ubuntu and recompiled GThumb. Now I can add tags (“Categories” as they are known by GThumb) and retrieve them from Nautilus, for example. Cool.
Tagging: other applications
There is a pyGTK image-viewer/manager called JBrout which focuses on metadata management. Although it is ony on its 0.2 version, the tags management is working very well.
Tagging: using tags
As I was told in academy, sorting the technical side is just a first step. What matters is the usage. And using tags asks a few questions: how many tags? what do they cover: the place where the image was taken, the technique used, the content of the image, its style? If someone knows about “good tagging practice” I would love to hear from you.
In the meantime, here is what I have come up with. I use the first 2 letters of my tags for its category: pl = place, pe = people, te = technique, th = theme. Then I have the tag itself: pl_geneva, te_black_white, th_mountain. This allows me to have my tags ordered by category and then pick the tags I need inside each category.
Here is a screenshot of adding tag(s) to an image from my list:
And here is what is like to have a “virtual folder” of all my black & white images for 2008 – with the search dialog on the side. The interesting thing here is that you can use these search result to do any mass editing you want, like adding a new tag and removing the current one, for example – since tag renaming is logically not possible.
Tagging: one last word
None of my entries would be complete without a last word… While the technical infrastructure for standard tagging is shaping up pretty well on Linux, the usefulness of tagging is in the right choice of keywords and a standard use of them over time. You don’t get out of the GIGO principle…
And, just because a proper entry also contains a “conclusion image”, here is my favorite pic from last week-end hot air balloon show in Geneva: