Why does Aperture keep showing deleted keywords?

Instead of going to bed at a decent hour, I felt compelled to write about an Aperture keyword issue I discovered a solution to recently. If you're not an Aperture user, you probably don't need to continue reading... As a photographer who sells his images, I have to keyword my images constantly. It sucks.

Aperture has almost too many ways to work with keywords, but I like that because I'm someone who likes to have a lot of different ways to do the same thing. The keyword HUD is a place I end up working in a lot. It's pretty good, except that when you *really* start banging on it, it has some annoying issues that I hope Apple fixes in a future version:

  1. You can only search from the beginning of a keyword. This is really, really annoying. Let's say I've just photographed an animal with 10 different common names, but I can't remember which one I'm using as a keyword. What kind of limpet was it? I can't just type "keyhole limpet" to see the entire list of keyhole limpets. Instead, I have to remember that it was a "two-spot keyhole limpet" (or whatever).
  2. When you finally find a keyword via search, it hides all of that keyword's children in the hierarchy. I had this great idea of placing scientific names as children of common name keywords, but since finding the "two-spot keyhole limpet" doesn't let me expand any further down the hierarchy, that won't work.
  3. There is no option to automatically export images with keywords and all of their ancestors. Aperture knows that a two-spot keyhole limpet is a kind of limpet. So why doesn't it let me export the entire hierarchy as an option? Instead, I have to expand the entire hierarchy (the easiest way is to search for the specific keyword, which auto-expands a keyword's parents), select every single node (shift-click or shift-arrows are fast), and then drag the entire list over to my image(s). Lame.
  4. Single-image mode isn't obvious enough. I don't know how many times I've accidentally hit the "S" key by accident and entered single-image mode. After 30 minutes of keywording and captioning, I then discover that only certain images are having metadata applied to them. There should be a way to LOCK the mode, because "S" is an easy key to hit by accident.
  5. Deleting used keywords is slow. Why does it take 10 minutes to delete a keyword from 350 images? That's right. SQL Lite -- the Aperture user's #1 nemesis.

The worst problem deserves its own space: the keyword database does strange things if you use multiple Aperture libraries. Every time you open an Aperture library, all of the keywords it knows about -- even the keywords that aren't used by any images -- are merged into a master list. The merged list saved in some global area, and is also copied back into the library itself. I'll demonstrate why this can make you want to kill yourself.

Here's something that happened to me just a couple of weeks ago. I was on a boat in Alaska with some bear experts who can't spell the scientific name of a Kodiak bear (I am no bear expert!). What I got from them was "Ursos arctos middendorfi" [sic]. I added that keyword into my bear keyword hierarchy (luckily, "Kodiak" is easy to remember, so a search is always easy!) and tagged 1800 images with it. Since I use multiple Aperture libraries, at some point I opened a second library and didn't think much of it.

learning to spell is fun!

Eventually, I learned that the proper name for a Kodiak bear is Ursus arctos middendorffi. I corrected the keyword spelling (but not until after I uploaded all of my images to Flickr and PhotoShelter. ARGH!). Luckily, renaming a keyword that is in use is a very easy operation for Aperture (< 1 second) because of its non-destructive editing workflow, and I thought I was done. But later on (after a few days), I opened the keyword HUD and found that the old, misspelled keyword was present again, sitting next to the corrected one!

old keyword returns to haunt me

Having one old keyword mysteriously reappear isn't a big deal, but I had changed dozens in the past, and every once in awhile, they would all just appear in my list again! This is confusing and terrible. The reason I wanted them gone was because they had been replaced with new ones, and I din't want to ever see the old ones again, lest I accidentally use them.

I finally realized that the old, deleted keywords were being copied into the master library from the 2nd library I had been using, which isn't even related to wildlife imagery. I had opened that 2nd library at a point when the old keywords still existed in the master library, and it inherited them even though none of its images required their presence.

I have 7 libraries in my Aperture collection, and because my library hierarchy has changed over the past year, those 7 libraries collectively contain very different versions of what I want my master keyword library to look like. To solve this problem, I had to choose one library to be a working library master, and open all of the libraries, one at a time, so that the keyword library would become an über, merged version. Then, I made sure to open the working library master last, to make sure that it held the final, merged keyword hierarchy. I then opened each of the lesser libraries in turn and deleted every "bad" keyword from their list. (I actually deleted every keyword that wasn't being used -- same effect, but fast.)

Now I know that none of my bad keywords will work their way into my master library again because they don't exist in any library in my collection, but I'll bet that I'm going to have to do this again sometime in the future.

Addendum: I had lunch with Randy Ching today, and he told me that I'm the sort of person that wants features that only 5 people in the world care about. I think it was a complement. :) But is that true? My feeling is that anyone who is REALLY using Aperture to try to manage a photo library is going to run into this problem. Maybe they don't care as much about keywording, or maybe they only use a single library. Feh.

Addendum 2: I wanted to show what my master keyword hierarchy looks like, but Aperture is busy right now. It may be some time before it comes back. :) (see below)

Addendum 3: I thought about this some more, and what I really want as another input method for keywording and captioning that have more convenient quick-access methods. In a perfect world, I envision hitting a keyboard shortcut to have a "search keywords" window come up (it can just be the HUD with search focus). I could then start typing immediatey, with a smart search displaying all matching entries by rank, in real time. The top 10 could be given single-key shortcuts so I could just hit the matching key.

The same is necessary for captioning. We need to be able to access the caption field with a keystroke, and navigate from image to image with keystrokes while any IPTC field is active. After you edit one, you are likely to want to edit the next, and there is no way to do it right now without multiple mouse clicks.

Finally, I'd love to be able to have keywords associated with each other. So adding "shark" would automatically also add "predator", "powerful", "elasmobranch", etc.