Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Integrate Creative Commons Licensing into your content with ccREL

Judith Myerson, Systems Engineer and Architect
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.

Summary:  With Web 2.0, Cloud, and SOA, it's more important than ever to have a clear understanding of who owns information and what you are permitted to do with it. The Creative Commons License contains a mechanism for providing more open usage rights without giving up ownership. The Creative Commons (CC) Rights Expression Language (ccREL) allows you to embed this information into Web content so that information owners and information users can clearly see the rights granted and choose accordingly, even through automation. Learn more about these techniques, and see how to use them in your own applications.

Date:  14 Jul 2009
Level:  Intermediate PDF:  A4 and Letter (38KB | 11 pages)Get Adobe® Reader®
Also available in:   Chinese  Japanese

Activity:  6653 views
Comments:  

Introduction

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 recap

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.


RDF recap

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

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
ValueDescriptionNote
cc:attributionNameSpecify the name to cite when giving attribution to work.cc: is an abbreviation for http://creativecommons.org/ns#.
cc:attributionURLSpecify the URL when assigning attribution.NA
cc:deprecateOnIndicate the license has been deprecated on the given date.NA
dc:jurisdictionAssociate the license with a particular legal jurisdiction.NA
cc:legalCodeGive the corresponding legal text of the license.NA
cc:sourceAssociate 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:morePermissionsPoint to a URL giving information on additional permissions beyond those specified in the CC license. NA
cc:sourceAssociate 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:titleSpecify the document's title. dc: is shorthand for the Dublin Core vocabulary defined at http://purl.org/dc/elements/1.1/.
dc:typeAssociate the original source as a URI.dcmitype: Text and dcmitype:MovingImage are part of the DCMI Vocabulary.

ccREL

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.

Abstract model

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/> 



Web page application

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>



License properties

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
ValueDescription
cc:licenseLicense the Work.
Note: a subproperty of dc:license, the same as xhtml:license.
cc:permitsPermit a particular use of the work beyond what default copyright law allows.
cc:prohibitsProhibit a particular use of the work
cc:requiresRequire certain actions of the user when enjoying given permissions.

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
ValueDescription
cc:DerivativeWorksPrepare derivatives of the work.
cc:DistributionRedistribute the work.
cc:ReproductionCopy the work in various forms.

Requirements

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
ValueDescription
cc:AttributionGive credit to the appropriate creator.
cc:NoticeProvide an indication of the license that governs the work.
cc:ShareAlikeUse the same license when redistributing derivative works of this work.
cc:SourceCodeProvide source code when redistributing this work (usually software).

Prohibitions

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.

License types

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
LicenseAttributionNon CommercialNo Derivative WorksShare Alike
byYnanana
by-saYnanaY
by-ncYYnana
by-nc-saYYnaY
by-nc-ndYYYna
by-ndYnaYna

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.

License Your Work wizard

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.

Application example

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
AttributeValue
Allow commercial usage of your work?No
Allow modifications of your work?No
JurisdictionUnited States
Tell us the format of your workText
Title of workRFID in the Supply Chain
Attribute work to nameJudith Myerson
Attribute work to URL
Source work URLwww.source.com
More permissions URLwww.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.

RDF/XML

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>


Conclusion

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.


Resources

About the author

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.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Web development
ArticleID=412625
ArticleTitle=Integrate Creative Commons Licensing into your content with ccREL
publish-date=07142009
author1-email=jmyerson@bellatlantic.net
author1-email-cc=cmwalden@us.ibm.com

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

For articles in technology zones (such as Java technology, Linux, Open source, XML), Popular tags shows the top tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), Popular tags shows the top tags for just that product zone.

For articles in technology zones (such as Java technology, Linux, Open source, XML), My tags shows your tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), My tags shows your tags for just that product zone.

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Special offers