I finally had the chance to look into keywording last night.
Basically, I currently don't keyword anything. But I want to. And I want to in a way that does not make me dependent on the BR database, which I expect would tank the day after I finished keywording my sh*t. So I went poking around, looking for a solution that would
  * allow me to store a master list of keywords in the hierarchy desired
  * be able to convert those keywords into the format needed for each program automatically
  * once a keyword is applied to an image in program A, that keyword should also show up applied to that image in program B. This is the toughie.
  * it would also be nice to be able to somehow export the keywords into the header of a finished image, so that they are at least transportable so that, in 4 years when you no longer use program X for keywording, all is not lost.
Playing around with this a bit more, I have discovered the following.
Lightroom 2 and Bridge CS4Â Â * LR and BR support hierarchical keywords
  * The hierarchical structure of assigned keywords can be exported when a RAW files is exported from LR, and will show up in BR. However the keywords exported along with a LR export are italicized in BR to indicate that they are transient and not part of the BR keyword set. They can be made Persistent by right-clicking the keyword and selecting "Make Persistent."
  * The keywords are actually stored in a special section of the JPEG header (which you can see on a Mac if you run more on a JPEG file that has keywords assigned) (if you don't know what that means, don't worry about it). The section is known as XMP Data, and the part in questions is called "<lr:hierarchicalSubject>" and the keywords are stored as a | delimited UTF-8 string, like this:
  Â
     <lr:hierarchicalSubject>
     <rdf:Bag>
      <rdf:li>Product|Album</rdf:li>
      <rdf:li>Venues|National Art Gallery|Cafe de Beaux Arts</rdf:li>
     </rdf:Bag>
     </lr:hierarchicalSubject>
  Â
   The "lr" part implies that this is an Adobe-ism that almost certainly will not translate to other non-Adobe products. This section can be manipulated using ExifTool.
  * Because of the above, the hierarchical structure survives:
   -a file name change outside of bridge;
   -a file copy outside of bridge;
   -a copy to a windows machine and back again (I was concerned that the keyword structure may have been kept in the data stream file on a Mac--not the case);
   -opening the file in PS and doing a "Save As" to a new file.
  * LR2 and BR CS4 export keywords in the same format: flat text file, using tabs to indicate the hierarchy. This implies that a single source file can be maintained and imported as required into both apps.
  * When LR and BR assign keywords, they are also added to the IPTC keyword list; IPTC is structureless however, and so the hierarchy is lost.
PhotoMechanic 4.5Â Â * Any keywords assigned either by BR or by LR on an exported file are ignored by PM.
  * For the life of me I cannot find a way to display keywords assigned to an image in PM
  * The PM keywords are also stored in the IPTC header, but this time the hierarchy is lost.
  * Keywords assigned by PM show up in BR, but the hierarchy is lost. This is almost certainly due to the fact that PM stores keywords in the IPTC "Keyword" section only. This is also why keywords assigned in PM show up in BR under "Other Keywords."
  * The exported keyword list file from PM is the same as that of BR and LR.
  * I made a request to Kirk at Camera Bits about hierarchical keywords, and after we spoke today he is strongly considering support for the <lr:hierarchicalSubject> in the upcoming 4.6 release, so good news on that front.
I don't use any other products, so I have not tested anything else.
Keyword filesIn general, the keyword files are based on a loose standard that is structured like this:
[Mike's Keywords]
[2009-01-02]
Cakes
<tab>{Cake}
Florists
<tab>{Florist}
Venues
<tab>{Venue}
<tab>National Art Gallery
<tab><tab>Cafe de Beaux Arts
<tab>Rockcliffe Pavillion
<tab><tab>{Rockcliffe Park}
Product
<tab>Album
<tab><tab>Magazine
<tab><tab>Matted
<tab>Canvas
Items in [square braces] are ignored and treated as comments
Items in {curly braces} are synonyms for the containing keyword
<tab> is the tab whitespace character, not the actual symbols for the string <tab>
So going forward, it looks like maintaining a synchronized keyword list is doable, since BR LR and PM can all import the same type of file.
Sources
http://www.adobe.com/products/xmp/http://www.lightroomforums.net/archive/index.php?t-3422.htmlhttp://kb.adobe.com/selfservice/viewContent.do?externalId=kb402660&sliceId=1http://www.adobe.com/devnet/xmp/http://it.toolbox.com/blogs/webdev-for-socialmedia/xmp-extensible-metadata-platform-27301http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/XMP.html