Photo Mechanic > Support

Hierarchical Keywords: Lightroom vs Photo Mechanic

(1/5) > >>

davidgordon:
Back in 2009 member Lars asked here about the "Strange bahaviour with the structured keywords" http://forums.camerabits.com/index.php?action=post;board=2.0

Its a question about how PM reads LR's XMP <lr:hierarchicalSubject> and then adds those hierarchical keywords to the keywords field even when those keywords already exist resulting in duplicates.

The thread ends with Kirk Baker suggesting


--- Quote ---Quote from: Kirk Baker on 02-12-2009, 19:54:26
Having an option to leave hierarchical keywords out of the standard keywords field will solve your problem with Lightroom and people who need to have the hierarchy available to all existing applications will not use this new feature.

Everyone should be happy then, no?
--- End quote ---

Was that option ever implemented? I seem to have the same problem Lars complained about.

If I write hierarchical keywords using Lightroom they are written to the XMP  <dc:subject> and <lr:hierarchicalSubject>. Photo Mechanic reads both fields and I have my keywords and duplicates as well as the hierarchical structure in the keywords field.

I've found the Preference in IPTC/XMP "When updating XMP, add structured keywords to hierarchical keyword field only". But that doesn't appear to solve my problem which perhaps is to do with reading rather than writing?

Is it possible to round trip using hierarchical keywords with Lightroom and Photo Mechanic / Photo Mechanic Plus without polluting the keywords fields?

Kirk Baker:
David,


--- Quote from: davidgordon on January 05, 2021, 02:55:35 AM ---Back in 2009 member Lars asked here about the "Strange bahaviour with the structured keywords" http://forums.camerabits.com/index.php?action=post;board=2.0

Its a question about how PM reads LR's XMP <lr:hierarchicalSubject> and then adds those hierarchical keywords to the keywords field even when those keywords already exist resulting in duplicates.

The thread ends with Kirk Baker suggesting


--- Quote ---Quote from: Kirk Baker on 02-12-2009, 19:54:26
Having an option to leave hierarchical keywords out of the standard keywords field will solve your problem with Lightroom and people who need to have the hierarchy available to all existing applications will not use this new feature.

Everyone should be happy then, no?
--- End quote ---

Was that option ever implemented? I seem to have the same problem Lars complained about.

If I write hierarchical keywords using Lightroom they are written to the XMP  <dc:subject> and <lr:hierarchicalSubject>. Photo Mechanic reads both fields and I have my keywords and duplicates as well as the hierarchical structure in the keywords field.

I've found the Preference in IPTC/XMP "When updating XMP, add structured keywords to hierarchical keyword field only". But that doesn't appear to solve my problem which perhaps is to do with reading rather than writing?

Is it possible to round trip using hierarchical keywords with Lightroom and Photo Mechanic / Photo Mechanic Plus without polluting the keywords fields?

--- End quote ---

Can you post the XMP before it is polluted?  And post the XMP after it is polluted?  I'd also like to see a screen shot of your IPTC/XMP preferences.  Use the 'Attachments and other options' link when you're composing your reply to this message and there you'll be able to upload your files.

Thanks,

-Kirk

davidgordon:

--- Quote from: Kirk Baker on January 06, 2021, 09:50:18 AM ---Can you post the XMP before it is polluted?

--- End quote ---

Here is a 'brand new' XMP file from an image ingested into Photo Mechanic without any metadata added.

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.6.0">
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about=""
    xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
    xmlns:xmp="http://ns.adobe.com/xap/1.0/"
    xmlns:photomechanic="http://ns.camerabits.com/photomechanic/1.0/"
    xmlns:aux="http://ns.adobe.com/exif/1.0/aux/"
   photoshop:DateCreated="2021-01-07T08:56:19"
   xmp:CreateDate="2021-01-07T08:56:19"
   xmp:Rating="0"
   photomechanic:ColorClass="0"
   photomechanic:Tagged="False"
   photomechanic:Prefs="0:0:0:005960"
   photomechanic:PMVersion="PM6"
   aux:ImageNumber="5960"/>
 </rdf:RDF>
</x:xmpmeta>

And after adding some (very limited) metadata including a single keyword using PM.

x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.6.0">
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about=""
    xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
    xmlns:xmp="http://ns.adobe.com/xap/1.0/"
    xmlns:photomechanic="http://ns.camerabits.com/photomechanic/1.0/"
    xmlns:aux="http://ns.adobe.com/exif/1.0/aux/"
   xmpRights:Marked="True"
   photoshop:DateCreated="2021-01-07T08:56:19"
   xmp:CreateDate="2021-01-07T08:56:19"
   xmp:Rating="0"
   photomechanic:ColorClass="0"
   photomechanic:Tagged="False"
   photomechanic:Prefs="0:0:0:005960"
   photomechanic:PMVersion="PM6"
   aux:ImageNumber="5960">
   <dc:subject>
    <rdf:Bag>
     <rdf:li>Photo Mechanic</rdf:li>
    </rdf:Bag>
   </dc:subject>
   <dc:creator>
    <rdf:Seq>
     <rdf:li>David Gordon</rdf:li>
    </rdf:Seq>
   </dc:creator>
   <dc:rights>
    <rdf:Alt>
     <rdf:li xml:lang="x-default">© David Gordon</rdf:li>
    </rdf:Alt>
   </dc:rights>
  </rdf:Description>
 </rdf:RDF>
</x:xmpmeta>

After a trip to Lightroom and adding some sample hierarchical keywords (edited for brevity to remove irrelevant camera EXIF)

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c140 79.160451, 2017/05/06-01:08:21        ">
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about=""
    xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/"
    xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
    xmlns:xmp="http://ns.adobe.com/xap/1.0/"
    xmlns:photomechanic="http://ns.camerabits.com/photomechanic/1.0/"
    xmlns:aux="http://ns.adobe.com/exif/1.0/aux/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
    xmlns:exif="http://ns.adobe.com/exif/1.0/"
    xmlns:exifEX="http://cipa.jp/exif/1.0/"
    xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
    xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
    xmlns:crd="http://ns.adobe.com/camera-raw-defaults/1.0/"
    xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/"
    xmlns:lr="http://ns.adobe.com/lightroom/1.0/"
   xmpRights:Marked="True"
   photoshop:DateCreated="2021-01-07T08:56:19"
   <dc:creator>
    <rdf:Seq>
     <rdf:li>David Gordon</rdf:li>
    </rdf:Seq>
   </dc:creator>
   <dc:rights>
    <rdf:Alt>
     <rdf:li xml:lang="x-default">© David Gordon</rdf:li>
    </rdf:Alt>
   </dc:rights>
   <dc:subject>
    <rdf:Bag>
     <rdf:li>Photo Mechanic</rdf:li>
     <rdf:li>alpha</rdf:li>
     <rdf:li>another</rdf:li>
     <rdf:li>beta</rdf:li>
     <rdf:li>better</rdf:li>
     <rdf:li>charlie</rdf:li>
     <rdf:li>cloud</rdf:li>
    </rdf:Bag>
   </dc:subject>
   <xmpMM:History>
    <rdf:Seq>
     <rdf:li
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:da0b69cf-0c4f-49ef-8226-44c31dce7a98"
      stEvt:when="2021-01-07T09:18:11Z"
      stEvt:softwareAgent="Adobe Photoshop Lightroom Classic 10.1 (Macintosh)"
      stEvt:changed="/metadata"/>
    </rdf:Seq>
   </xmpMM:History>
   <lr:hierarchicalSubject>
    <rdf:Bag>
     <rdf:li>Photo Mechanic</rdf:li>
     <rdf:li>[A]|alpha</rdf:li>
     <rdf:li>[A]|another</rdf:li>
     <rdf:li>|beta</rdf:li>
     <rdf:li>|better</rdf:li>
     <rdf:li>[C]|charlie</rdf:li>
     <rdf:li>[C]|cloud</rdf:li>
    </rdf:Bag>
   </lr:hierarchicalSubject>
  </rdf:Description>
 </rdf:RDF>
</x:xmpmeta>

Lightroom has an option to show the 'containing keywords' or only those which will be exported to a derivative file. Photo Mechanic appears not to have that option and shows keywords from both the <dc:subject> and <lr:hierarchicalSubject> in the IPTC info keywords field. Lightroom and Photoshop will both 'hide' the hierarchical keywords in a file saved from Photo Mechanic, but PM itself always appears to show them.

I use the word "polluting" meaning PM is showing duplicate keywords in its IPTC keyword section. Maybe the solution is only ever keyword using PM, but that's not really practical for me. Or maybe I'm not using the keywording tools in PM because I don't understand them well enough.

Thanks



Kirk Baker:
David,

Thanks for the samples.  Photo Mechanic only has one keywords field for display.  Your metadata has both hierarchical keywords and flat keywords.  PM is showing both sets in the same field.  There is no duplication that I can see in your examples.

Is there some other step in PM that then causes the flat keywords to be written into the hierarchical keywords or for the hierarchical keywords to be written into the flat keywords?

-Kirk

davidgordon:
Kirk

Thanks for looking.


--- Quote from: Kirk Baker on January 07, 2021, 08:27:41 AM ---Photo Mechanic only has one keywords field for display.

--- End quote ---

So does my question/problem boil down to: why does Photo Mechanic display the XMP <lr:hierarchicalSubject>?

When adding hierarchical keywords using Lightroom these are written into two XMP spaces, <dc:subject> and <lr:hierarchicalSubject>. The <dc:subject> contains 'flattened' keywords, the <lr:hierarchicalSubject> has the full path including keywords which are not keywords, those marked not to be written on export. For example I - and others who have posted the same issue here http://forums.camerabits.com/index.php?topic=13878.0 - use alphabetical headers to help organise my keywords by nesting them under "{A}", "{B}", "{C}" and so on.

If I add the simple keyword "Random" using either Lightroom or PM it will be written to <dc:subject> only. However if using Lightroom I add that keyword and it is 'nested' under "{R}" it will be written to <dc:subject> and _in addition_ its full path "{R} | Random" will be written to <lr:hierarchicalSubject>.


--- Quote ---There is no duplication that I can see in your examples.

--- End quote ---

Look at the Photo Mechanic keyword field. The keywords "alpha', "another", "beta", "better", "charlie" and "cloud" each appear twice. Not to mention the duplicates "{A}", "{B}", "{C}" and the pipe characters. Lightroom (which also has only a single keyword display field) does not duplicate the keywords in the way PM does. It shows the keywords only from <dc:subject> unless specifically asked to display "Keywords and Containing Keywords" in which case it displays the hierarchy - but only showing a single entry for each keyword and containing keyword.


--- Quote ---Is there some other step in PM that then causes the flat keywords to be written into the hierarchical keywords or for the hierarchical keywords to be written into the flat keywords?

--- End quote ---

Its not a writing issue, its a reading issue! What business does Photo Mechanic have reading <lr:hierarchicalSubject>? Lightroom has already written the keywords into <dc:subject>, that's all we need to see. As far as I understand when using PM's Structured Keywords Panel, keywords are written 'flat' into <dc:subject>. Correct me if I'm wrong but PM's structured are not hierarchical keywords. Another PM user can't see my keyword structure in the same way another Lightroom user can see its hierarchical ones.

I don't know/understand why Photo Mechanic displays the contents of <lr:hierarchicalSubject>. I think it doesn't need to read that space but if it does, give me an option _not_ to display it in the keywords field.

Many Thanks

PS I've had to substitute square for curly brackets above as seems to mess the formatting and explains why some omissions  occur in the previous post's XMP examples. <-- proving my point, theres a missing square bracket B square bracket here!

Navigation

[0] Message Index

[#] Next page

Go to full version