XMP (Extensible Metadata Platform) facilitates embedding metadata in files using a subset of RDF. Most notably XMP supports embedding metadata in PDF and many image formats, though it is designed to support nearly any file type.
Creative Commons is recommending XMP as the preferred format for embedded metadata, given its support for numerous file formats and the balkanized state of embedded metadata standards. Others are apparently coming to the same conclusion, e.g., Microsoft has announced support for XMP in Vista applications and Jon Udell notes "There’s also good support in .NET Framework 3.0 for reading and writing XMP metadata."
XMP defines a rights management schema (see section 4.2.5). Creative Commons sets the following properties (example values):
xapRights:Copyright — This work is licensed to the public under the Creative Commons Attribution-ShareAlike license http://creativecommons.org/licenses/by-sa/2.0/ verify at http://example.com/pdf-metadata.html (Replace URL following 'verify at' with URL containing metadata about the XMP-embedded file; this is typically the same URL specified by xapRights:WebStatement.)
xapRights:Marked — False if Public Domain, True otherwise.
We also define a Creative Commons schema http://creativecommons.org/ns# whose common prefix is cc.
It currently has the following property:
license — http://creativecommons.org/licenses/by-sa/2.0/ (Replace with relevant license URL.)
Set license to maintain a direct reference to the license URL.
- LaTeX users may use the pdflatex macro.
- PdfLicenseManager is a standalone GUI/command line tool for embedding XMP in PDFs.
- PdfLicenseManager uses the iText java library, which may be easily incorporated into any Java tool that needs to do XMP embedding.
- We have a PHP tool/library for embedding XMP in JPEGs, useful in, e.g., web gallery programs. See the xmp/php-jpeg module in the cctools sourceforge subversion repository.
- XMP Toolkit 4.1
- Exempi bundles the above two tools into one package, with modifications to make it build on Linux. It therefore allows reading/writing XMP metadata for various file formats, including PDF, MP3, JPEG, and PNG.
- Exiftool is a perl-based module for embedding and extracting Exif from multiple filetypes. This allows for using XMP in addition to other formats.
- JPEG-XMP are java-based programs for operating on jpegs to extract and embed XMP metadata.
- The PHP JPEG Metadata Toolkit is a php-based program for embedding and extracting XMP metadata for JPEGs.
- PdfLicenseManager is a Java-based GUI and command line program for embedding XMP with license information into PDFs.
- XMP Manager A Ruby action for Nautilus which exposes and allows editing of XMP metadata.
- Raptor - Supposedly this can generate XMP somewhat, and can also parse it, if you grab the rdf/xml out of the <?xmp...> blocks for it. It's GPL / LGPL / Apache2 licensed so compatible with your code.
- Please add yours here :)
Note on Visible Copyright Notice in PDFs
Even when embedded with XMP metadata a licensed PDF document should include a visible copyright notice as described in HOWTO Tag HTML pages.
Note on embedded metadata
This specification conforms with the Nonweb Tagging recommendation.
The XMP logo is either a registered trademark or tradmark of the Adobe Systems Incorporated in the United States and/or other countries.