Windows Live Photo & Video Blog

Official blog for the Windows Live Digital Memories Experience team

Hierarchical Tags and XMP

Hierarchical Tags and XMP

  • Comments 3

A question came in via the blog from Hans regarding our implementation of hierarchical tags using XMP. He writes:

You chose to use a forward slash as a delimiter (path/path/keyword), which requires that this character cannot be used within a keyword.

Two problems with this approach:
1, This limitation is not in the XMP standard, XML has also an explicit, different way of how special characters are supposed to be handeled.
2, Since XMP allows forward slash - all other apps allow them, too. You can freely enter "Bugs Bunny/Mickey Mouse" or "nuclear/atomic" as a keyword. BUT: Vista Photo Gallery (and Vista Explorer) will think of it as a hierarchical keyword. Not good.

Thanks for the question, Hans.  I'm sorry to hear that our implementation of hierarchical keywords is causing you problems. We actually made a conscious decision to allow users to manually enter a slash in a keyword (as in "Washington/Seattle") and have that interpreted as a hierarchy. We chose this solution with the behavior of other XMP-supporting applications in mind.

It is true that XMP doesn't support any notion of hierarchical keywords, but we didn’t want to invent a brand new way of storing this metadata. We chose to use a simple character separator for hierarchical keywords so that the hierarchy would be visible and available for all of the existing applications that support XMP.

Why slash versus something else? There is no perfect choice here. We wanted to use a character that would show up correctly in every application that didn't support hierarchical keywords (so extended Unicode characters were out of the question) and that would make sense when users saw it (which would not be true for, say, "}"). Additionally, we wanted to choose a character that was not as likely to be used in a normal keyword (which would rule out "." or "-", for instance).

This left us very few choices. The backslash was considered too DOS/Windows-specific. Ideally, we *do* want third-party applications that support XMP to adopt this convention, so we didn't want to use a solution that seemed Windows-specific. The slash character existed in English punctuation long before computers. Other possibilities were ":" (similarly Mac-specific) and "|" (which is very hard to read when placed between words).

We knew there was a risk that someone might use a slash in a keyword (such as the examples you gave), but believed these cases would be rare and easily avoided. Without knowing the specifics of your scenario, I would imagine that you could enter "Bugs Bunny" and "Mickey Mouse" as separate tags, which would be more useful for searching and browsing.

Again, thank you for contacting us about this issue.  Getting feedback on how our solutions work in the real world is critical to making ongoing improvements in future versions.

- David Parlin, Principal Program Manager