I've found several things to like and several not to like about Adobe's XMP specification ([1], [2], [3]), a subset of RDF that lets you embed standard and custom metadata into the kinds of file formats that Adobe products typically read and write. I recently learned from a Tony Hammond posting on the crosstech blog that Adobe just released a new version of this seven year-old spec. There's a new SDK with it as well, and while I only remember the SDK supporting C++ before, this "version" includes Java support.
I quote the word "version" because, as Tony pointed out, this new one has "no version number and no date". Hopefully they'll learn something from the current problems being discussed about dating releases of the XML Recommendations and the value of making it easy for people to cite specific releases of a spec.
Hi Bob:
Just to clarify the SDK issues. As I posted to CrossTech back in March '07, there was a new release of the SDK (4.1.1) which included two libraries: XMPCore and XMPFiles. Both are implemented in C++ with a Java implementation provided for XMPCore only. (XMPCore allows XMP packets to be constructed, whereas XMPFiles allows XMP packets to be written to and read from files, i.e. the useful bit.)
The new SDK release (4.4.2 - there were no public 4.2 or 4.3 offerings afaik), does not change things in this regard. There is still no Java support for reading or writing files. To quote from the Toolkit Overiew (PDF):
The XMP Toolkit SDK is at least versioned. The XMP Spec, however, is not currently versioned - although Gunar Penikis has agreed that the docs should be dated. Another related concern is that there seems to be no public archive of XMP Specs being maintained by Adobe (or other).