In my article, "Supplement Creative Commons with open standards," (see Resources), I wrote about the problems with proprietary Digital Rights Management (DRM) technologies and suggested some solutions. I wrote about license and work properties you should consider when you select a license. I gave an example of a cross-browser menu of usage rights criteria, permissions, constraints, and requirements that the consumer can choose.
In this article, I tell you how you can describe a Creative Commons (CC) license with CC Rights Expression Language (ccREL). I show you the abstract model for ccREL, what license types are available, and I give you an application example to show how you can integrate ccREL into your content.
Creative Commons is an alternative to traditional copyright, which is often designated as "some rights reserved." The purpose of the CC license is to permit some level of sharing of a creative work while retaining rights of ownership and commercial usage. For example, a musical work licensed under Creative Commons may be downloaded and listened to privately, but not remixed or used for commercial purposes. However, the creator may also explicitly permit commercial usage and even remixing of the work to create new works. All of the usage rights are spelled out in the license. It is a simple way to remove the ambiguity of what is permitted for a creative work that is also publicly accessible.
However, Creative Commons doesn't just apply to music. It can also be applied to graphics, data, application code, or anything else that might be considered under a copyright.
The Resource Description Framework (RDF) project home page (see Resources) says that RDF "integrates a variety of applications from library catalogs and world-wide directories to syndication and aggregation of news, software, and content to personal collections of music, photos, and events using XML as an interchange syntax. The RDF specifications provide a lightweight ontology system to support the exchange of knowledge on the Web."
Paired with RDF is RDFa (Resource Description Framework -in- attributes), which is described in the documentation as "a set of XHTML attributes to augment visual data with machine-readable hints. We show how to express simple and more complex datasets using RDFa, and in particular how to turn the existing human-visible text and links into machine-readable data without repeating content."
This is ideal for Creative Commons, as it provides methodology to attach information about a work to the work itself. The ccREL is a specification describing how license information may be described using RDF and RDFa and may be attached to works. ccREL metadata as encoded in RDFa can be embedded in a variety of file types.
RDFa in XHTML is more flexible than RDF in the XML syntax. RDFa defines two types of properties for a license: Work properties and license properties. Work properties describe aspects of specific works, while license properties describe specific licenses that visitors will see on the Web.
Work properties are listed and described in Table 1. Note that dc and cc are prefixes to work properties to indicate the source of specification. I will talk about license properties in the next section.
Table 1. Work properties
| Value | Description | Note |
|---|---|---|
| cc:attributionName | Specify the name to cite when giving attribution to work. | cc: is an abbreviation for http://creativecommons.org/ns#. |
| cc:attributionURL | Specify the URL when assigning attribution. | NA |
| cc:deprecateOn | Indicate the license has been deprecated on the given date. | NA |
| dc:jurisdiction | Associate the license with a particular legal jurisdiction. | NA |
| cc:legalCode | Give the corresponding legal text of the license. | NA |
| cc:source | Associate the original source with a URI. | While associated with software, it can be used to give permission for other types of sources, such as presentation. |
| cc:morePermissions | Point to a URL giving information on additional permissions beyond those specified in the CC license. | NA |
| cc:source | Associate the original source with a URI. | While associated with software, it can be used to give permission fo other types of sources, such as presentation. |
| dc:title | Specify the document's title. | dc: is shorthand for the Dublin Core vocabulary defined at http://purl.org/dc/elements/1.1/. |
| dc:type | Associate the original source as a URI. | dcmitype: Text and dcmitype:MovingImage are part of the DCMI Vocabulary. |
Let's look at the abstract model for ccREL and then translate it into a Web page application that you can modify to suit your taste.
The abstract model for ccREL is based on work properties and license properties. You must include RDF triples that specify the values of both properties. Here is a simple abstract model in the blog example.
Listing 1. Simple abstract model
@prefix xhtml: <http://www.w3.org/1999/xhml#> @prefix cc: <http://creativecommons.org/ns#> <http://JMyerson.org/blog/> xhtml:license <http://creativecommons.org/licenses/by/3.0/> <http://JMyerson.org/blog/> cc:attributionName "J Myerson" <http://JMyerson.org/blog/> cc:attributionURL <http:/jmyerson.org/> |
Now let's translate that model into a form we can use in a Web page application. Listing 2 shows an example.
Listing 2. Web page
<html xmlns="http://www.w3.org/1999/xhml#"
xmlns:cc="http://creativecommons.org/ns#">
<head>
<title>Judith Myerson's Stuff</title>
</head>
<body>
<div about"">
This page, by
<a property="cc:attributionName" rel="cc:attributionURL" href="http://jmyerson.org/">
Judith Myerson
</a>,
is licensed under a
<a rel="license" href="http://creativecommons.org/licenses/by/3.0/">
CC Attribution License
</a>.
</div>
</body>
</html>
|
Creative Commons strives to be easy for non-lawyers to understand. The ccREL representation also strives to be easy to understand. Properties are spelled out in ways that are easily recognizable by even non-technical people. Table 2 shows the license properties.
Table 2. License properties
| Value | Description |
|---|---|
| cc:license | License the Work. Note: a subproperty of dc:license, the same as xhtml:license. |
| cc:permits | Permit a particular use of the work beyond what default copyright law allows. |
| cc:prohibits | Prohibit a particular use of the work |
| cc:requires | Require certain actions of the user when enjoying given permissions. |
The permissions spell out what may be done with a work. Each permission can be used singularly or in combination. If you do not specify a permission then all permissions will apply. Table 3 shows the values for cc:permits. These values can be used by tools to automatically apply in accordance with the creator's wishes, without requiring proprietary DRM protocols.
Table 3. Values for cc:permits
| Value | Description |
|---|---|
| cc:DerivativeWorks | Prepare derivatives of the work. |
| cc:Distribution | Redistribute the work. |
| cc:Reproduction | Copy the work in various forms. |
Certain uses of a CC-licensed work have specific requirements, represented by the cc:requires attribute. Table 4 shows its possible values. A complete explanation of these requirements is described on the Creative Commons Web site. (See Resources.) Table 4 shows the valid ccREL values for cc:requires. Generally all CC works require credit to its creator.
Table 4. Values for cc:requires
| Value | Description |
|---|---|
| cc:Attribution | Give credit to the appropriate creator. |
| cc:Notice | Provide an indication of the license that governs the work. |
| cc:ShareAlike | Use the same license when redistributing derivative works of this work. |
| cc:SourceCode | Provide source code when redistributing this work (usually software). |
Prohibitions cover things that you may not do with a work. As of this writing the only valid value for cc:prohibits is cc:CommericialUse, meaning that the work may not be used for commercial purposes. However, keeping with the extensible spirit of Creative Commons, there may be other prohibitions in the future, as the nature of licensed works and how they may be used changes.
Now let's look at the license types provided by Creative Commons and how they affect usage of a creative work. Table 5 outlines the different licenses and their attributes. In this table, "Y" shows that the restriction is indicated. "na" shows that the usage restriction does not apply. The codes are easy to remember and give you an instant understanding of what is permitted.
Table 5. License types
| License | Attribution | Non Commercial | No Derivative Works | Share Alike |
|---|---|---|---|---|
| by | Y | na | na | na |
| by-sa | Y | na | na | Y |
| by-nc | Y | Y | na | na |
| by-nc-sa | Y | Y | na | Y |
| by-nc-nd | Y | Y | Y | na |
| by-nd | Y | na | Y | na |
As a creator of a work, you keep your ownership while allowing people to copy and distribute your work. Creative Commons always requires giving credit to the creator of works—his or her name and the URL assigning attribution. What people may do with the work beyond that is determined by the specific license type.
You may specify that the work may be used, but not altered, or used for commercial purposes. You may allow people to alter and distribute the work for any purpose, as long as they credit you with the original. You can also require that any derivative of your work be shared in the same way as the original. It provides a good deal of flexibility to make a work available while maintaining the intentions of the creator.
Below are two examples of license types in action with listings of how those rights are represented in ccREL.
License example 1: Attribution Share-Alike
The Attribution Share-Alike v3.0 CC license says you can copy, distribute, display, and perform the work and remix works as long as you attribute the work as specified by the author or licensor. If you alter, transform, or build upon this work, you may distribute the resulting work only under the same, similar, or compatible license.
Listing 3 shows the syntax to describe the license.
Listing 3. Attribution Share-Alike v3.0 CC license
@prefix cc: http://creativecommons.org/ns# <http://creativecommons.org/licenses/by-sa/3.0/> cc:permits cc:Reproduction ; cc:permits cc:Distribution ; cc:permits cc:DerivativeWorks ; cc:requires cc:Attribution ; cc:requires cc:ShareAlike ; cc:requires cc:Notice |
License example 2: Attribution Noncommercial No Derivative Works
The Attribution Noncommercial No Derivative Works lv 3.0 CC license says you can copy, distribute, display, and perform the work as long as you attribute the work as specified by the author or licensor. You may not use this work for commercial purpose. You may not alter, transform, or build upon this work.
Listing 4. Attribution Noncommercial No Derivate Works v3.0 CC license
@prefix cc http://creativecommons.org/ns# <http://creativecommons.org/licenses/by-nc-nd/3.0/> cc:permits cc:Reproduction cc:permits cc:Distribution cc:requires cc:Attribution cc:requires cc:Notice cc:prohibits cc:CommercialUse |
As you can see, the representation of these licenses is logical and easy to understand once you are familiar with the Creative Commons terminology.
If you are new to CC licensing, you may want to use the License Your Work wizard.
To get started, go to the Creative Commons home page (see Resources) and click the License link in the available selections. The wizard will ask you whether or not you allow commercial uses and modification of your work. If you allow modification, you can determine if you want to allow others to share your work. You may designate the jurisdiction of your license.
If you wish, you can give users additional information, such as the format of your work, title of work, creator's name, URL assigning attribution, source work, and more permissions. When you are done, click the Select a License button. This will take you to a page showing details of the license you have selected. If you are not satisfied, you can always go back to change your choices and click the button again to see the results.
Once you are satisfied, you can click on the picture of a license to show you what the visitors will see. Then you can copy the HTML text, and add code to the core of your custom Web page to let your visitors know what license applies to your work.
The HTML code generated by the license is not pretty, although it is easier to modify than the RDF version in the XML syntax. I changed the code to make it easier for you to read, as shown in Listing 5.
I took out redundant xmlns for the same source and
moved unique xmlns within the HTML tag. I
identified a block of code statements associated with a particular bibliographic: topic and added references to calendar
sources. To see the differences, go to the wizard to generate, copy, and compare
it with this example. Table 6 shows the values that I used.
Table 6. Values for CC license wizard
| Attribute | Value |
|---|---|
| Allow commercial usage of your work? | No |
| Allow modifications of your work? | No |
| Jurisdiction | United States |
| Tell us the format of your work | Text |
| Title of work | RFID in the Supply Chain |
| Attribute work to name | Judith Myerson |
| Attribute work to URL | |
| Source work URL | www.source.com |
| More permissions URL | www.morepermissions.com |
Listing 5. Custom HTML code
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:biblio="http://examplebook.org" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://www.w3.org/2002/12/cal/ical#" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <head> <title>Judith M. Myerson's Stuff</title> </head> <body> <p typeof="biblio:RFID"> <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/us/"> <img alt="CC License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" ></a><br /> <span href="http://purl.org/dc/dcmitype/Text" property="dc:title" rel="dc:type">RFID in the Supply Chain</span>by <a href="www.ibm.com" property="cc:attributionName" rel="cc:attributionURL">Judith Myerson</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/us/"> CC Attribution-Noncommercial-No Derivative Works 3.0 United States License</a>. <br />Based on a work at <a href="www.source.com" rel="dc:source">www.source.com</a>.<br/> Permissions beyond the scope of this license may be available at <a href="www.morepermissions.com" rel="cc:morePermissions">www.morepermissions.com</a> <a rel="cc:legalcode" href="http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode"/> Legal Code</a> <br/> <span property="cal:dtstart" content="2008-11-16T16:00:00-05:00" datatype="xsd:dateTime"> November 16, 2008 at 4:00 PM </span> </p>. </p> </body> </html> |
Since it's regular HTML, you can add a style sheet to the code. To test your license code, click on the license icon button or on the license title to get information on what license applies.
Let's take a look at the RDF version of the example in condensed form. The wizard will not generate the RDF code for you. You must start with a base RDF definition and customize it to your needs. You can get the base definition by going to the appropriate URL at the Creative Commons Web site. In our case, since the license was by-nc-nd, I went to the URL, http://creativecommons.org/licenses/by-nc-nd/3.0/rdf. If I wanted a different license, I would change the URL to match the license type, such as by-sa.
The code you receive has a lot of language translations of the title, which I have removed for clarity. It's not absolutely necessary to have all of the title translations in there, but since your information is on the Web, it may be accessed from anywhere in the world. You might as well make sure that everyone can read it.
The <Work> section was manually added around the license, and the attributes specific to the work were added as well. It is a slightly cumbersome process, but could be automated once you become familiar with the schema.
Listing 6. RDF/XML
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:cc='http://creativecommons.org/ns#'
xmlns:foaf='http://xmlns.com/foaf/0.1/'
xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
xmlns:dc='http://purl.org/dc/elements/1.1/'
xmlns:dcq='http://purl.org/dc/terms/'
>
<Work>
<dc:format>text/html</dc:format>
<dc:title>RFID in the Supply Chain</dc:title>
<cc:attributionName>Judith Meyerson</cc:attributionName>
<cc:morePermissions>www.morepermissions.com</cc:morePermissions>
<cc:source>www.source.com</cc:source>
<cc:source>www.source.com</cc:source>
<cc:License rdf:about="http://creativecommons.org/licenses/by-nc-nd/3.0/">
<dcq:hasVersion>3.0</dcq:hasVersion>
<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
<cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
<cc:licenseClass rdf:resource="http://creativecommons.org/license/"/>
<cc:requires rdf:resource="http://creativecommons.org/ns#Attribution"/>
<cc:requires rdf:resource="http://creativecommons.org/ns#Notice"/>
<cc:legalcode
rdf:resource="http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode"/>
<foaf:logo rdf:resource="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png"/>
<foaf:logo rdf:resource="http://i.creativecommons.org/l/by-nc-nd/3.0/80x15.png"/>
<dc:identifier>by-nc-nd</dc:identifier>
<dc:title xml:lang="en">Attribution-NonCommercial-NoDerivs</dc:title>
<cc:prohibits rdf:resource="http://creativecommons.org/ns#CommercialUse"/>
<dc:creator rdf:resource="http://creativecommons.org"/>
<dc:jurisdiction>us</dc:jurisdiction>
</cc:License>
</Work>
</rdf:RDF>
|
As you carry your data and applications forward into Mashups, Cloud, and all of the other unexpected uses of the future, consider using Creative Commons to clarify appropriate sharing and usage. Use these techniques to embed that information into the content so that as the infrastructure develops, tools can automatically find and honor the permissions for your information.
- Read the previous article, "Supplement Creative Commons with open standards" (developerWorks, Jan
2009)
- See the Resource Description Framework (RDF) project home page on the w3c site.
- Learn more about Creative Commons at the CC home page.
- Read the RDFa Primer on the W3C
Web site.
- Read more about ccREL: The
Creative Commons Rights Expression Language (pdf) and RDFa in XHTML: Syntax and
Processing.
- The Work with Web services in enterprise-wide SOA series by Judith M.
Myerson offers information on how to work with Web services in enterprise-wide
SOAs.
- The developerWorks Web
development zone is packed with tools and information for Web 2.0
development.
- Personalize your developerWorks experience
with My
developerWorks.
Judith M. Myerson is a systems architect and engineer. Her areas of interest include middleware technologies, enterprise-wide systems, database technologies, application development, network management, security, RFID technologies, and project management. She is the author of RFID in the Supply Chain and the editor of Enterprise Systems Integration, Second Edition Handbook.




