xmp-dcterms

Started by Jeff_Leger, July 07, 2017, 06:03:03 AM

Previous topic - Next topic

Jeff_Leger

Hello,

I don't find dcterms: metadata in XMP:
https://exiftool.org/TagNames/XMP.html

Nevertheless, some of them are incorporated in PRISM:
http://www.prismstandard.org/specifications/3.0/PRISM_Dublin_Core_Metadata_3.0.pdf
http://www.prismstandard.org/specifications/2.1/prism_dublin_core_namespaces_2.1.pdf
http://www.prismstandard.org/specifications/1.3/PRISM_dublin_core_1.3.pdf

Do you have reasons to not add these metadata among XMP ones?

Regards,

Jean-François Léger

Phil Harvey

Thanks for this note.   I'll look into this and post back here if I have any comments.  This may take a couple of weeks since I am about to go on vacation.

- Phil

P.S.  I've moved this to the feature requests section of this forum.
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

herb

Hello Phil,

sorry, that I hijack this topic. But I also have the question: Is XMP-dcterms missing in Exiftool?

Some days ago I started to work with DarwinCore tags.
In order to learn more about I opened http://rs.tdwg.org/dwc/terms/ and
I came to know about SimpleDarwinCore which e.g. requests the tag XMP-dcterms:language.

I also found some slides about XMP-dwc on
https://docs.google.com/presentation/d/1Ia1eXmUM0a3u8IpLwqj-JUDmVC_NG78NP2uYTVDm3vE/edit#slide=id.g1cfad62490_0_293
which talk also about XMP-dcterms tags and also about AudubonCore tags (XMP-ac), which I found on
https://terms.tdwg.org/wiki/Audubon_Core_Term_List
And AudubonCore tags also point to dcterms tags.

XMP-ac seems to be XMP-dwc specific and should not be discussed here.
But what is about XMP-dcterms?

Best regards
Herb

Phil Harvey

Hi Herb,

Thanks for bringing this up again.  It seems this topic got forgotten.

ExifTool does support DarwinCore tags.

I'll look into the dcterms namespace.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Phil Harvey

OK.  The reason that ExifTool doesn't support dcterms is because there are no XMP dcterms tags.  From the PRISM documentation, all dcterms in XMP are qualifiers for other tags.  There are no actual tags as such.  So I don't know how these could be specified in ExifTool.

Also, it looks like the use of qualifiers in XMP isn't compatible backward compatible with existing XMP (they use a separate model for this in the PRISM specs).  So we have a couple significant problems, both of which would need to be addressed before implementation could be attempted.

If anyone has some XMP samples that use dcterms, please post them here and we can continue the discussion.  I may be mis-reading the PRISM spec, or maybe there is another spec I should be looking at.  The dublin core documentation itself doesn't deal with XMP.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

herb

Hello Phil,

thanks for all your investigations.
I understand many of your arguments but it is not 100% clear to me. So please allow additional questions.
QuoteFrom the PRISM documentation, all dcterms in XMP are qualifiers for other tags.
PRISM documentation is for me PRISM_Dublin_Core_Metadata_3.0.pdf (and earlier versions) that Jeff_Leger has given in his first post to this topic.
I also looked into this papers:
Yes you are right: all "tags" dcterms:xxxx are a refinement of dc:relation

QuoteThe document states:
Note: Refined versions of dc:relation are: dcterms:isPartOf, dcterms:hasPart, dcterms:isRequiredBy, dcterms:Requires, dcterms:IsFormatOf, dcterms:hasFormat, dcterms:isVersionOf, dcterms:hasVersion, dcterms:source, prism:hasPreviousVersion,
prism:isTranslationOf, prism:hasTranslation, prism:hasAlternative, prism:isCorrectionOf.
Therefore I looked also into: http://www.prismstandard.org/specifications/3.0/PRISM_Basic_Metadata_3.0.htm
and found that e.g. prism:isTranslationOf is also a refinement of dc:relation.
But prism:isTranslationOf is available in Exiftool xmp-prism taggroup.

A "qualifier" for me is a tag that gives more details as the base tag. So why should ther be no xmp-dcterms group?

I hope I did not go to a wrong direction. If so, please point me to the right one.
Thanks in advance and
Best regards
Herb

By the way:
Exiftool tag xmp-prism:acedemicField should be academicField (change e to a).

Phil Harvey

Hi Herb,

I'm not sure I understand this either, but for example:

Page 24 of PRISM_Dublin_Core_Metadata_3.0_FINAL.pdf shows this for dcterms:requires:
Profile 3 (XMP)
Qualifier Value                   bag Text, a refined version of dc:relation


while page 39 of PRISM_Basic_Metadata_3.0_FINAL.pdf shows this for prism:isTranslationOf:
Profile 3 (XMP)
Property Value                  Text, a refined version of dc:relation


One is listed as a qualifier, and the other as a property.

Although I haven't seen any examples of this.  Without examples, I can't know for sure what the intention was, so I can't implement it.  Implementing qualifiers will be difficult because one must maintain the relationship between the property and its qualifiers. (Maybe something similar to the way structures are implemented would work.)

Quote from: herb on March 27, 2018, 07:20:12 AM
By the way:
Exiftool tag xmp-prism:acedemicField should be academicField (change e to a).

Thanks, I'll fix that.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

herb

Hello Phil,

thanks again for your quick reply and for your detailed explanations.

Now it is also clear to me.
Thanks again.

Best regards
Herb

blue-j

I think this issue has been misdiagnosed.  I am unsure.  But it seems to me that the historical view was only in terms of Darwin Core / PRISM, when in fact dcterms also comes from Dublic Core Metadata Initiative and is a dedicated namespace there:

https://www.dublincore.org/specifications/dublin-core/dcmi-terms/

Am I wildly off here?  I don't think Exiftool supports more than the basic Dublin Core fields...?

- J

Phil Harvey

As I said, I don't think that any dcterms elements are XMP properties unto themselves.  They are all just qualifiers of other properties.  ExifTool doesn't yet support XMP qualifiers.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

blue-j

#10
C2PA / Adobe is now writing at least one... xmp:xmp-dcterms:provenance

See attached example.

- J

PH Edit: deleted attachment on request

Phil Harvey

Those guys at C2PA really know how to make life hard for me. :P

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

blue-j

Have you looked at the C2PA spec?  It is the most epic spec I have ever seen, and brother I have seen a lot! It's a doozy.

- J

Phil Harvey

Yes.  ExifTool supports C2PA.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

blue-j

#14
In what sense?  I don't see anything in STDOUT. We're using c2patool presently to grab manifest details. Sorry if I am missing something. - J

[EDIT] I've deleted the file for privacy reasons

Phil Harvey

#15
C2PA stores metadata in JUMBF format in JP2 files and APP11 of JPG files (including support for both JSON and CBOR-encoded information).  ExifTool should extract this.  (See attached sample image.)

If there is something that you think ExifTool should be extracting, post a sample and I'll take a look.

- Phil

Edit: Attachment deleted
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

blue-j

Ok I just modified my prior message by uploading a simple sample file. I hadn't noticed your reply!  We'll check yours, too!

-J

Phil Harvey

Ah, interesting.  When C2PA support was added to ExifTool I don't think the specification included PNG support, but that was before the spec was finalized.  Looks like I should add PNG support.

It also seems that PDF, FLAC and MP3 are possible.  If you have samples of these please post them.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Phil Harvey

#18
The C2PA metadata from your PNG image may be extracted using this config file:

%Image::ExifTool::UserDefined = (
    'Image::ExifTool::PNG::Main' => {
        caBX => {
            Name => 'JUMBF',
            SubDirectory => { TagTable => 'Image::ExifTool::Jpeg2000::Main' },
        },
    },
);
1; #end

(although you will get some warnings that I'll take care of when I release this officially.)

- Phil

...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

blue-j

#19
Attached is JSON output from c2patool, if it proves helpful at all.  I've also attached the Adobe dictionary. I'm also including another sample that is storing credentials in Adobe's cloud.

[EDIT}  i've deleted the files for privacy reasons and will email

- J


blue-j

I've tried your config and it works great!  I have not compared the data meticulously yet.

Note - c2patool does not parse your c2pa.jpg at all.  Spot checking, I think your JPEG is not conformant to the current C2PA 1.2 spec

- J

blue-j

https://github.com/contentauth/c2patool

Phil Harvey

#23
You're right, the sample I posted may be old.  I added this feature while the specification was still under development, and ExifTool reads the old (historic) versions as well.  (I'll delete this file to avoid distributing outdated samples.)

Note that you should use "exiftool -j -b -G3 -u FILE" to extract all of the C2PA information in a reasonable JSON format.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).


blue-j

Quote from: Phil Harvey on November 18, 2022, 01:39:06 PMIt also seems that PDF, FLAC and MP3 are possible.  If you have samples of these please post them.

I have the bleeding edge versions of Acrobat and Illustrator, and there is no support for C2PA in either for PDF. Photoshop only permits PNG and JPG to have C2PA metadata in them.  I don't really deal with audio files, but suspect it is not yet present there either.  The wikipedia page only lists Photoshop and Adobe Stock as using this presently.

I know you can also have the C2PA as a sidecar. I'll now try to make one for us for a PDF, and we can have a look.

- J

Phil Harvey

I'll bet the sidecar uses Jpeg2000-like (ISO BMFF) formatting.  ExifTool should read this.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

blue-j

So sorry to report that I have not achieved joy in producing a sidecar.  Superfically it looks like the c2patool is expecting a different structure than Adobe is producing, but user error cannot be ruled out yet.  Will keep you informed!

I do know the Media Type is application/x-c2pa-manifest-store

- J

blue-j

Exiftool did extract xmp:xmp-dcterms:provenance so it seems it is not completely missing the data.

Would a workaround at present be to extract the data from that family and then marry the qualifiers to the fields in post processing?  Is that workable?

I suppose I need to ask about writing as well.

- J

blue-j

Are there any sample files using DC Terms anywhere in the known universe???  - J

Phil Harvey

Other than the C2PA samples, I have only ever seen dcterms properties used in XML (never XMP).

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).