Difference between revisions of "Web Statement"

From Creative Commons
Jump to: navigation, search
 
 
(23 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= Using Creative Commons Metadata in Non-Web Content =  
+
<div style="border:1px solid #c00;padding-left:10px; padding-right:10px; background:#eee;">
 +
=== For Developers ===
  
'''This is a developer-oriented document.  Read our [http://creativecommons.org/embedding non-technical account with explanatory comics] first.'''
+
This is a developer-oriented document for a developer oriented featureThis has two implications:
 +
* Do not attempt to implement as a content creator. If your software doesn't transparently handle CC metadata for you (you should only have to select a license), do not attempt to do it yourself.
 +
* Read our [[Embedded Metadata|non-technical account with explanatory comics]] first.
 +
</div>
  
License metadata for HTML and RSS is published with the content it describes.  If someone publishes false metadata, it can be taken down or corrected.
+
==Rationale==
 +
 
 +
License metadata for web pages is published with the content it describes.  If someone publishes false metadata, it can be taken down or corrected.
  
 
But with non-web content (such as files on peer-to-peer networks), incorrect metadata can propagate around the network, since it's extremely difficult to get everyone to correct it.
 
But with non-web content (such as files on peer-to-peer networks), incorrect metadata can propagate around the network, since it's extremely difficult to get everyone to correct it.
Line 9: Line 15:
 
Our solution is to embed a link to a license info page that includes the license metadata, rather than including it directly in the file. For example:
 
Our solution is to embed a link to a license info page that includes the license metadata, rather than including it directly in the file. For example:
  
<p class="licensebox" style="margin-left: 30px;"><code>mysong.mp3</code> links to <code>http://example.com/licenseinfo</code> (using ID3 tags)<br><br>
+
<div class="code">
 +
<code>mysong.mp3</code> links to <code>http://example.com/licenseinfo</code> (using ID3 tags)
  
 
<code>http://example.com/licenseinfo</code> says the work is available under <code>http://creativecommons.org/licenses/by/2.0/</code> (using HTML and RDF)
 
<code>http://example.com/licenseinfo</code> says the work is available under <code>http://creativecommons.org/licenses/by/2.0/</code> (using HTML and RDF)
 +
</div>
 +
 +
The URL for the page that includes license metadata for a file is known as a '''WebStatement''' URL after the name used in [[XMP]].
 +
 +
The page at the WebStatement URL should also identify the licensed media file with a content-derived identifier (e.g., SHA1 hash, see example below) or other independently verifiable identifier so that a program can verify that the page is making a license assertion about the media file at hand.
  
</p>
+
This has additional benefits besides preventing the propagation of incorrect license metadata:  the metadata can now be linked to and indexed by search engines. Imagine searching the Web for music under a Creative Commons license, and then downloading it from a peer-to-peer network.
  
<p>When possible, the file will also have a human-readable license claim like "© 1995 Example Band. Licensed to the public under http://creativcommons.org/licenses/by/2.0/ verify at http://example.com/licenseinfo". Readers should display this alongside other file metadata like title and author.</p>
+
Third parties can also build authentication services that provide additional assurance that the data is valid.
  
<p>This has additional benefits besides preventing the propagation of incorrect license metadata:  the metadata can now be linked to and indexed by search engines. Imagine searching the Web for music under a Creative Commons license, and then downloading it from a peer-to-peer network.</p>
+
=== Security Considerations ===
  
<p>Third parties can also build authentication services that provide additional assurance that the data is valid.</p>
+
Software will automatically download the license info page. Security impact: Anyone who can get you to download their file, just like anyone who can get you to visit their web page, can get you to visit another page and discover your IP address.
  
<h2>Security Considerations</h2>
+
== Implementation ==
  
<p>Software will automatically download the license info page. Security impact: Anyone who can get you to download their file, just like anyone who can get you to visit their web page, can get you to visit another page and discover your IP address.</p>
+
===Embedding a link to the license info page===
  
<h2>Implementation</h2>
+
Many [[:Category:Filetype|file formats]] support embedding CC license information; embedding a WebStatement is supported in {{#ask:[[Category:Filetype]] [[supports web statement::True]]}}.
  
<p><strong>Step one: linking to the license info page.</strong> We have guides on how to do this in different file formats:</p>
+
===Publishing the license info page===
  
<ul>
+
The license info page must have or HTTP redirect to a page that has a license notice for the file in question. (Readers should be ready to follow several HTTP redirects.)
  <li><a href="mp3">MP3</a></li>
 
  <li><a href="ogg">Ogg</a></li>
 
</ul>
 
  
<p><strong>Step two: building the license info page.</strong> The license info page must have or HTTP redirect to a page that has RDF, or RDF <a href="metadata/extend#html">embedded in HTML comments</a>. (Readers should be ready to follow several HTTP redirects.) Example RDF:</p>
+
Example HTML fragment with [[RDFa]]:
<pre>&lt;rdf:RDF xmlns="http://web.resource.org/cc/"
 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"&gt;
 
  &lt;Work rdf:about="urn:sha1:MSMBC5VEUDLTC26UT5W7GZBAKZHCY2MD"&gt;
 
    &lt;dc:date&gt;2003&lt;/dc:date&gt;
 
    &lt;dc:format&gt;audio/mpeg&lt;/dc:format&gt;
 
  
    &lt;dc:identifier&gt;http://example.com/mp3s/test.mp3&lt;/dc:identifier&gt;
+
    <nowiki><span about="urn:sha1:MSMBC5VEUDLTC26UT5W7GZBAKZHCY2MD">
    &lt;dc:rights&gt;&lt;Agent&gt;&lt;dc:title&gt;ExampleBand&lt;/dc:title&gt;&lt;/Agent&gt;&lt;/dc:rights&gt;
+
        Example_Song.mp3 is licensed under
    &lt;dc:title&gt;Example Song&lt;/dc:title&gt;
+
        <a rel="license" href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>
 +
    </span></nowiki>
  
    &lt;dc:type rdf:resource="http://purl.org/dc/dcmitype/Sound" /&gt;
+
This fragment includes the statement
    &lt;license rdf:resource="http://creativecommons.org/licenses/by/2.0/" /&gt;
 
  &lt;/Work&gt;
 
  &lt;License rdf:about="http://creativecommons.org/licenses/by/2.0/"&gt;
 
    &lt;requires rdf:resource="http://web.resource.org/cc/Attribution" /&gt;
 
    &lt;permits rdf:resource="http://web.resource.org/cc/Reproduction" /&gt;
 
  
    &lt;permits rdf:resource="http://web.resource.org/cc/Distribution" /&gt;
+
<urn:sha1:MSMBC5VEUDLTC26UT5W7GZBAKZHCY2MD> :license <http://creativecommons.org/licenses/by/3.0/> .
    &lt;permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" /&gt;
 
    &lt;requires rdf:resource="http://web.resource.org/cc/Notice" /&gt;
 
  &lt;/License&gt;
 
  
&lt;/rdf:RDF&gt;
+
which may be read as "File with the SHA1 hash (base32 encoded) of MSMB... is licensed under CC BY 3.0."
</pre>
 
  
<p><code>rdf:RDF</code> contains one or more <code>Work</code> elements. The value of their <code>rdf:about</code> attributes are content-based URIs that can be verified by the user (in this case, a sha1 URN). All the children of <code>Work</code> are optional. If you want to describe their licenses then there must be a <code>license</code> license child and a corresponding <code>License</code> element.</p>
+
== Tools ==
  
<p>In the above example, <code>dc:identifier</code> is a URL from which the content described may be obtained. It can also be used to identify other content-based names for the work.</p>
+
[[ccPublisher]] and [[ccLookup]] offer GUI tools for MP3 license claim embedding and verification metadata generation. Available for Linux, OS X, and Windows.
  
<p><strong>Step three: publish the license info page.</strong> Publish license info RDF at the license claim URL specified in the embedded metadata (step one).</p>
+
See [[XMP]] for tools and code for embedding XMP in PDF and JPEG formats.
  
<h2>Tools</h2>
+
[[Category:Developer]]
 +
[[Category:Technology]]
 +
[[Category:Metadata]]
  
<p><a href="http://mirrors.creativecommons.org/software/">ccLookup and Publisher</a> offer GUI tools for MP3 license claimn embedding and verification metadata generation. Available for Linux, OS X, and Windows.</p>
+
__NOTOC__

Latest revision as of 15:27, 12 May 2011

For Developers

This is a developer-oriented document for a developer oriented feature. This has two implications:

  • Do not attempt to implement as a content creator. If your software doesn't transparently handle CC metadata for you (you should only have to select a license), do not attempt to do it yourself.
  • Read our non-technical account with explanatory comics first.

Rationale

License metadata for web pages is published with the content it describes. If someone publishes false metadata, it can be taken down or corrected.

But with non-web content (such as files on peer-to-peer networks), incorrect metadata can propagate around the network, since it's extremely difficult to get everyone to correct it.

Our solution is to embed a link to a license info page that includes the license metadata, rather than including it directly in the file. For example:

mysong.mp3 links to http://example.com/licenseinfo (using ID3 tags)

http://example.com/licenseinfo says the work is available under http://creativecommons.org/licenses/by/2.0/ (using HTML and RDF)

The URL for the page that includes license metadata for a file is known as a WebStatement URL after the name used in XMP.

The page at the WebStatement URL should also identify the licensed media file with a content-derived identifier (e.g., SHA1 hash, see example below) or other independently verifiable identifier so that a program can verify that the page is making a license assertion about the media file at hand.

This has additional benefits besides preventing the propagation of incorrect license metadata: the metadata can now be linked to and indexed by search engines. Imagine searching the Web for music under a Creative Commons license, and then downloading it from a peer-to-peer network.

Third parties can also build authentication services that provide additional assurance that the data is valid.

Security Considerations

Software will automatically download the license info page. Security impact: Anyone who can get you to download their file, just like anyone who can get you to visit their web page, can get you to visit another page and discover your IP address.

Implementation

Embedding a link to the license info page

Many file formats support embedding CC license information; embedding a WebStatement is supported in {{#ask: supports web statement::True}}.

Publishing the license info page

The license info page must have or HTTP redirect to a page that has a license notice for the file in question. (Readers should be ready to follow several HTTP redirects.)

Example HTML fragment with RDFa:

   <span about="urn:sha1:MSMBC5VEUDLTC26UT5W7GZBAKZHCY2MD">
        Example_Song.mp3 is licensed under
        <a rel="license" href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>
    </span>

This fragment includes the statement

<urn:sha1:MSMBC5VEUDLTC26UT5W7GZBAKZHCY2MD> :license <http://creativecommons.org/licenses/by/3.0/> .

which may be read as "File with the SHA1 hash (base32 encoded) of MSMB... is licensed under CC BY 3.0."

Tools

ccPublisher and ccLookup offer GUI tools for MP3 license claim embedding and verification metadata generation. Available for Linux, OS X, and Windows.

See XMP for tools and code for embedding XMP in PDF and JPEG formats.