Hierarchical Keywords in Lightroom | Be Careful!

by Murat on November 21st, 2012

So what’s the problem with hierarchical keywords in Adobe Lightroom?

Adobe was behind the XMP specification that makes our life easier by allowing different software programs to communicate in the same language and exchange information on the metadata level. For example image annotations entered in Lightroom are visible in Daminion and vice versa.

But the Lightroom development team has invented a new dialect (read: new XMP scheme) to store the common annotation field, named Keywords.

In XMP specification Keywords are stored in a place called “dc:subject”. The “dc:” prefix denotes that this field is a part of the Dublin Core section of the XMP metadata.

Although XMP specification doesn’t permit the storage of hierarchical keywords inside the “dc:subject”, there is a magic “|” delimiter symbol* that can be used to split different hierarchy levels of keywords and store them inside a single text line. This symbol has been unofficially adopted by many software programs including Microsoft Windows Live Gallery, Lightroom, Expression Media, Daminion, etc…

However, according to a new MWG Specification, the hierarchical path elements of keywords MUST be flattened. This means that each hierarchy node must be stored as a separate keyword entry in the XMP “dc:subject” (a dubious decision IMO).

So Lightroom uses a new unofficial Lightroom Scheme that stores keywords with the hierarchy preserved (inside the “lr:HierarchicalSubject” field) and the Dublin Core Scheme to store flattened keywords (inside the “dc:subject” field).

The MWG consortium offers a complex new way of storing hierarchical fields in XMP, but that’s another story. It would appear that new specification creators don’t see any point in providing backward compatibility for existing metadata specifications. I dislike MWG’s new method of storing hierarchical keywords mainly because there is no way of determining exactly where the most up to date keywords are: in dc:subject, in “lr:HierarchicalSubject” or in “mwg-kw:Keywords”.

Most photo software programs, for example GeoSetter, use “dc:subject” to store Keywords, which means that hierarchical info that you’ve entered in Lightroom will be invisible to these programs.

Although Lightroom developers probably couldn’t care less about other programs (their competitors), this is one of the main reasons that some people prefer to stay with other image cataloging software programs.

Hey Lightroom dev team! You’ve created an excellent product, but why won’t you make the other software development companies lives a lot easier by letting us save hierarchical info in “dc:subject” as well?

* Some people use the “/” delimiter, but this isn’t really a big problem because it can be adjusted in program preferences.

How Daminion lives with this issue:

As a temporary solution Daminion’s Keyword mapping list sets the priority of “lr:HierarchicalSubject” higher than “dc:subject”. This is simply because LR is a widely adopted program so we need to provide good compatibility with it.