Hierarchical Keywords in Lightroom | Be Careful!

Murat
4 Min Read

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.

[cta-block]

Share This Article
Co-founder and CEO of Daminion Software. I like traveling, swimming, cycling, etc... all kind of activities that makes me happy ).