[whatwg] [html5] Copyright and licensing metadata

Daniel O'Connor wrote:
> Ick!
> 
> XML gave us xmlns for a reason! Failing that..

   Seeing as this is a working group for HTML as well as XHTML, and only
deals with the HTML namespace, any discussion in the mailing list of the
use of other namespaces is pointless.

> See:
> http://dublincore.org/
> http://creativecommons.org/
> http://www.w3.org/2005/Talks/05-steven-xtech/
> http://www.w3.org/TR/2005/WD-xhtml2-20050527/mod-meta.html
> http://hublog.hubmed.org/archives/001187.html
> ...
> There's far too many more widely accepted methods of inserting
> metainfomation (in the microformat / RDF + GRDDL / style) into a
> (x)HTML document without the need for a "copyright" attribute.

   Okay, let's look at my example again:

| <code copyright="2005; Matthew Raymond"
| license="GPL 2.0; http://www.gnu.org/copyleft/gpl.html">
|   // * Put non-proprietary code here...
|   <span copyright="2004-2005; Microsoft Corporation"
|   license="GPL Killer; http://microsoft.com/licenses/firstborn.html">
|     // * Ultra-proprietary, patent encumbered code.
|   </span>
|   // * Put more non-proprietary code here...
| </code>

   Now, remember that we can't use namespaces, because HTML doesn't have
them. We can, however, borrow from XHTML 2.0 where it doesn't have
namespaces, and we can also use classes and relationships. Here's an
idea of what the licensing and copyright metadata might look like using
the standards you stated above:

| <code id="codeblock1">
|   <meta about="#codeblock1" property="dc:rightsholder"
|   content="Matthew Raymond"/>
|   <meta about="#codeblock1" property="dc:license"
|   content="http://www.gnu.org/copyleft/gpl.html"/>
|   <meta about="#codeblock1" property="dc:datecopyrighted"
|   content="2005"/>
|   // * Put non-proprietary code here...
|   <span id="codeblock2">
|     <meta about="#codeblock2" property="dc:rightsholder"
|     content="Microsoft Corporation"/>
|     <meta about="#codeblock2" property="dc:license"
|     content="http://microsoft.com/licenses/firstborn.html"/>
|     <meta about="#codeblock2" property="dc:datecopyrighted"
|     content="2005"/>
|     // * Ultra-proprietary, patent encumbered code.
|   </span>
|   // * Put more non-proprietary code here...
| </code>

   I'm assuming that the <meta> elements apply to the entire document
unless you use |about|. If you only assume that the <meta> elements in
the <head> do that, and that otherwise they apply to the parent, you get
this:

| <code>
|   <meta property="dc:datecopyrighted" content="2005"/>
|   <meta property="dc:rightsholder" content="Matthew Raymond"/>
|   <meta property="dc:license" content="GPL 2.0"/>
|   // * Put non-proprietary code here...
|   <span>
|     <meta property="dc:datecopyrighted" content="2005"/>
|     <meta property="dc:rightsholder" content="Microsoft Corporation"/>
|     <meta property="dc:license" content="GPL Killer"/>
|     // * Ultra-proprietary, patent encumbered code.
|   </span>
|   // * Put more non-proprietary code here...
| </code>

   And, of course, if you want the user to see the license and
copyright, you just do this:

| <code>
|   Copyright <meta property="dc:datecopyrighted">2005</meta> by
|   <meta property="dc:rightsholder">Matthew Raymond</meta>.
|   Licensed under the <meta property="dc:license">GPL 2.0</meta>.
|   [...]
| </code>

   Of course, if we have to use the |about| attribute to keep metadata
from applying to the document as a whole, we might to this:

| <code id="codeblock1">
|   <meta about="#codeblock1">
|     <meta property="dc:datecopyrighted" content="2005"/>
|     <meta property="dc:rightsholder" content="Matthew Raymond"/>
|     <meta property="dc:license" content="GPL 2.0"/>
|   </meta>
|   // * Put non-proprietary code here...
|   <span id="codeblock2">
|     <meta about="#codeblock2">
|       <meta property="dc:datecopyrighted" content="2005"/>
|       <meta property="dc:rightsholder" content="Microsoft"/>
|       <meta property="dc:license" content="GPL Killer"/>
|     </meta>
|     // * Ultra-proprietary, patent encumbered code.
|   </span>
|   // * Put more non-proprietary code here...
| </code>

   I suppose you can also use <blockquote>, <cite> and <address> for
improved semantics. The first two, though, don't seem appropriate for
copyright and licensing information. The third is a slight semantic
mismatch, as it's supposed to be for the author's contact information.
Using Dublin Core in |rel| attributes might also be useful, but I think
that's limited.

   End of line.

Received on Tuesday, 13 September 2005 14:12:01 UTC