Exchanging tags between Photomechanic and Darktable

Some are standard, but many are not. XMP is the eXtendable Metadata Platform. So darktable has its own namespace in the XMP, as does digiKam, lightroom, etc etc.

Does any software write metadata to software specific namespaces? Not talking about edits of course as they are of no interest for exchange between software.

Iptc, xmp and exif metadata are pretty well standardized are they not? (Makertags ignored)

Not that Iā€™m aware of. The issue is that application specific metadata often donā€™t have UIs that are compatible between applications. Color Labels and keywords are good examples of that.

Probably not that hard to write a script that would sync app specific metadata, but the script would likely be specific to your workflow.

Just looking at my Digikam/darktable sidecars, I see the folowing namespaces being used:

Unless you mean something else, looks to me there are 8 or 9 software-specific namespaces in thereā€¦
Most are used for storing versions of title, caption or keywords.

But as @paperdigits said, XMP is extendable. The extension is done through namespaces, with a namespace definition of the form xmlns:<name>="<URI>". The URIā€™s arenā€™t looked up by the parser, they are just there to create a unique name.

Those sidecars are xml files btw, so XSLT would be a possible way to transform the sidecars. And if you are careful, the resulting sidecar would be usable by others (unknown tags are supposed to be ignored, and not treated as an error)

Nicolas, I have almost identical interests to yourself on this topic. I posted a new Support Ticket on the Camera Bits webs-site this morning, only to immediately learn that you used the correct mechanism ("Feature Requestā€™) yesterday. I saw Kirkā€™s reply, which I consider to be too blunt and have told him so. I would be grateful if you would inform me of any ā€˜work-aroundsā€™ which become known to you which are not referenced on this forum.

Thanks Kirk, blunt is an understatement. I would call the answer arrogant!

Funny I should end up here in this thread.

I went looking for DT<->PM integration info on the PM site and stumbled across the thread you mentioned above, now, almost a year later. I ended up engaging with Dennis, the founder/president of Camerabits. He actually seems inclined to try and support the filename.ext.xmp naming convention as an option, but Iā€™m not holding my breath.

Kirk replied to me in a somewhat less arrogant manner, perhaps he was just having a bad day last year.

At any rate, the easiest work-around Iā€™ve come up with for dealing with the incompatible naming convention when using PM is to simply create symlinks to all the XMP files created by PM. I have yet to try it, so I donā€™t know if itā€™s a real solution yet or not.

Anyway, just thought Iā€™d drop my update here.

ā€“
Paul

2 Likes

Hereā€™s the thread if anyone is curious: Exchanging with darktable

Ah so someone actually found it spelled out in the spec that xmp should replace the original extension. It was always obvious, if not from the existing implementations, but literal minded people on this board insisted that it was unclear. (As if it matters what the spec says when the world has settled on a de facto standard).

I doubt dt will change though.

dt wonā€™t change. PhotoMechanic is considering it, as written in the post above.

Not sure where youā€™re getting this from. People here said the spec was a bad decision in this regard.

It is spelled out, but buried in a completely non-intuitive place in the ā€œspecā€. The first location where the file name convention is discussed (which is where it should be spelled out) is incredibly ambiguous, leaving it up to the reader what is meant by ā€œfilenameā€.

I wouldnā€™t go so far as to say ā€œliteral minded peopleā€ thought it was unclear. In a filesystem, every file must have a unique name. The canonical path to the unique file being itself unique, such that:

  • /path/to/some/file.ext

is unique and different than:

  • /path/to/other/file.ext

despite both files being named ā€œfile.extā€. Within a particular directory path, however, one can not have two ā€œfile.extā€, therefore, saying ā€œthe filename with an extension of .xmpā€ is ambiguous if you have both ā€œfile.ext1ā€ and ā€œfile.ext2ā€. As many here have pointed out, if you have to files with the same name but in different formats, this scenario is a possibility. However, the argument that those two files consist of one RAW and one JPG is invalid, since JPEGs store XMP data internal to the image file itself whereas RAWs do not.

A more convincing argument would be what if I had both IMG_1234.CR2 and IMG_1234.NEF. The probability is small, but not zero.

It would make perfect sense on the part of (all) application developers dealing with XMP data and reading/writing XMP data to provide a user configurable file name format option with a reasonable default.

Most applications would likely default to .xmp, but could provide the option letting the user set it to ..xmp. And if DT wants to be the odd-ball in the industry because DT knows better than everyone else, they could default to the latter, but appease those who care by allowing them to change it to the former.

If PM comes through and supports this request, but DT remains obstinate, I will think far more highly of PM as a result. One thing Iā€™ve learned in my 30+ years involvement with the open source world is that they can at times be incredibly arrogant and stubborn, since they have no paying customers to make happy. Say what you will about proprietary software, but they will usually give the customer what they ask for if thereā€™s money to be made by doing it.

IMO, there is no reason NOT to support the standard, even if you think itā€™s a stupid standard. Support the existing standard, at least with configurable options, and then show the rest of the world the better way by defaulting to what you think is right.

ā€“
Paul - Not really holding his breath for either side to give in on this :-/

Iā€™m curious would this not have been done so that if someone read in a folder with nice LR or other software generated xmp files that they could then not somehow get overwritten/corrupted by DT if it also used xmp filesā€¦ I have never owned lightroom so I have no idea how much of an issue this might beā€¦ is that much that is useful that you can get from LR or other xmp ā€¦ I guess maybe the tags and ratings will flow into DT without too much of a problemā€¦

Is the problem that DT might as well have used a totally different identifier but since they used xmp it should be done as other software has decided to do it??

As a linux users, Iā€™m not overly concerned what Photomechanic, Photoshop and similar decide to use as ā€œstandardā€ :stuck_out_tongue: (the cited programs donā€™t exist in a Linux version so far).

Because thereā€™s another issue: many of the ā€œcommercialā€ players arenā€™t interested in providing for Linux (that includes drivers for hardware), where they do provide for MacOS (which has/had a similar part of the ā€œofficialā€ desktop installations).

A program doesnā€™t have to understand all the tags in an XMP (XML) file; as long as it doesnā€™t modify the ones it doesnā€™t understand, everything is fine. The XML standards actually provide for that situation, as the aim of XML is data exchange between programsā€¦

THX ā€¦sounds good in a perfect world. :blush:

As far as I know dt is the only imperfection in this xmp world.

Do note that reading edits from other software is of no interest. Itā€™s the medadata such as tags that should work across software.

For years it was proprietary software that refused to follow standards and made spurious exceptions to ensure lock in. Canā€™t see how following those same footsteps is a dignified revenge.

But there it was about official (ISO) standards. Here we are dealing with a apparently poorly worded document from a proprietary software company.

Also, I know about at least one other program (digikam) that uses the same convention as darktable, and for pretty much the same reason. The main thing is not so much to distinguish between file types, but between versions. If you stick to simple .xmp you cannot distinguish between different versions (think of a way to use such sidecars in e.g. the playraws).

Different versions have the same capture metadata and usually the same content. When it no longer has the same content (cropping people out) as the parent raw file it makes sense to rename it (append versioning to the file name).

The issue has no bearing what so ever on playraws because tagging and metadata has never (in my time on pixls) been a topic of playraws. It would make for a very boring playraw :slight_smile:

Again the issue of saving edits can be solved in lots of different ways. Itā€™s just important that the xmp standard isnā€™t mangled to achieve it. Storing edits in xmp is at best a secondary function of the standard and one whoā€™s utility is very limited.

xmp is part of the whole xml metadata initiative such as dublin core and xhtml (back in the day). Abusing it to make it fit some niche editor use case makes no sense.

The iso standard was written by Adobe and if I remember correctly Digikam and Geeqie optionally use the filename.ext.xmp pattern only to work with dt?