If you will permit me to ramble on a bit about this…
The biggest problem I see in PL’s keyword functionality is the lack of separation between keyword management and keyword assignment.
The tiny size of the palette gives you the impression that it is just a single tool, when it is, in fact, two separate tools. One for editing keywords for the currently selected image and another for “managing” the dictionary of keywords.
From what I can see, this mixture of ideas leads to wrong thinking about how to use hierarchical keywords.
Flat keywords are easy to understand - they are just one single word.
But a hierarchical “keyword” should be regarded as the whole path that it takes to define the leaf keyword.
A single keyword is not the equivalent of a “hierarchy of one” as PL would have us believe - it is simply a standalone keyword and, as such, should only be mentioned in dc:subject but not in lr:hierarchicalSubject.
Whereas, a hierarchical keyword must be fully defined in lr:hierarchicalSubject in order to maintain and transmit the structure or context of the “word”. Then, as recommended in the MWG guidance, all members of that hierarchy should be mentioned in dc:subject so that they are easily searchable from other software.
Using a Mac means I have access to an in-built metadata indexing engine, known as Spotlight. If I don’t write all keywords in a given hierarchy to dc:subject Spotlight can’t search for them - neither can some other software. But Spotlight doesn’t know anything about hierarchical structure so, in order to transmit that structure to other software, we also need to record it in the lr:hierarchicalSubject tag.
In all of the above, it is assumed that we are not relying on a “database” or “catalogue”, since that would mean we couldn’t easily transfer files from one computer to another without tedious export and import routines. So each image can be fully described, either independently in the case of non-RAW files, or by use of an XMP sidecar in the case of RAW files.
But every good DAM also needs to maintain a dictionary of keywords, including their hierarchies, in order to validate keywords on entry and provide a lookup on searching. The PL UI conflates the act of constructing and maintaining hierarchies with the act of assigning them to images.
Especially for the inexperienced user, it is not at all evident that whatever is done, ostensibly to one selected image, can also propagate, not only to the dictionary, but also to all other images with the same keyword or hierarchy.
Maybe my intent was to simply change the spelling of one keyword for just one image, because I typed it wrongly but, it is all too easy to accidentally end up applying the correction to that keyword where it also forms part of one or more hierarchies.
By far the best solution is to clearly visually separate keyword management from keyword assignment. IF they don’t want to add a popup window, why not add such a keyword management panel to the Preferences dialog?
My app has such a floating panel, which allows me to show a QuickLook panel of images that contain a selected keyword, just by pressing the spacebar…
… or to instigate a search in the main window, just by double-clicking on the selected word…
Assume I apply a hierarchical keyword to an image…
The XMP records…
[XMP] Subject : Fruit, Orange, Satsuma
[XMP] Hierarchical Subject : Fruit, Fruit|Orange, Fruit|Orange|Satsuma
If I change the spelling of Orange…
Then the XMP changes to…
[XMP] Subject : Fruit, Orage, Satsuma
… because I am clearly editing only the currently selected image in the main window.
Meanwhile, the keyword management dialog has been updated from…
… with five references to Orange to…
… with four references to Orange and one reference to Orage, but the original hierarchy hasn’t been changed and, if we look further down the left list of standalone keywords, we find…
… Orage has been correctly added to that list.
Change the spelling for that image back to include Orange and the XMP is returned to its original state.
But, if we change the spelling in the management dialog…
… updates all references in all hierarchies…
But what it hasn’t done is to update the XMP in any images - just in case that the change was a mistake. I have made changing hierarchies in the manager deliberately difficult to do to prevent such problems.
As you can see, you need to be especially careful when renaming keywords, just in case they participate in multiple hierarchies. It is by far the best to make such changes by creating a parallel hierarchy with the new spelling in the dictionary - searching for the old hierarchy and then replacing the old with the new in your images. Only after you are satisfied with the changes in your images can you then remove the old hierarchy from the dictionary.
So, my app enforces
- use the keyword box on the main form and only the currently selected images get updated
- use the keyword manager and only everything in the dictionary gets changed. Clear and logical.