IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Web development  >

使用 ccREL 将 Creative Commons Licensing 集成到内容中

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

英文原文

英文原文


级别: 中级

Judith Myerson, 系统工程师兼架构师

2009 年 9 月 02 日

随着 Web 2.0、Cloud 和 SOA 的出现,清晰地定义消息所有者和消息权限的需求变得比以往更加迫切。Creative Commons License 包含了一个机制,在不放弃所有权的情况下提供了更多开放的使用权。Creative Commons(CC)Rights Expression Language(ccREL)允许把这种信息嵌入到 Web 内容中,以便信息所有者和用户能够清晰地了解所授权利并作出相应选择,甚至可以自动实现这一过程。进一步了解这些技术以及如何在您的应用程序中使用它们。

简介

在我的文章 “Supplement Creative Commons with open standards” 中(请参见 参考资料)介绍了关于专有 Digital Rights Management (DRM)技术的一些问题,并提出了一些解决方案。还介绍了在选择一个许可时,您应该考虑到的许可和作品署名。我给出了一个跨浏览器菜单示例,这是有关消费者可选择的使用权标准、权限、约束和要求的菜单。

在本文中,我将告诉您如何使用 CC Rights Expression Language(ccREL)描述 Creative Commons(CC)许可,并向您展示 ccREL 的抽象模型和可用的许可类型。我还将给出一个应用程序示例,演示如何把 ccREL 集成到内容中。

Creative Commons 简述

Creative Commons 是传统版权(通常被指定为 “保留一些权利”)的一个替代方案。CC 许可的目的是对一个原创作品保留所有权和商业使用权的同时,允许一定程度的共享。例如,一个使用 Creative Commons 许可的音乐作品可以进行私自下载和聆听,但不可以进行再混音或者用于商业目的。然而,创作者也可以明确表明其作品可用于商业用途,甚至可进行再混音,从而创作新的作品。所有的使用权利都在许可中进行了详细说明。对于可以公开获取的创作性作品来说,这是一种消除使用范围不明确性的简单方法。

然而,Creative Commons 不仅仅适用于音乐。它还适用于图像、数据、应用程序代码,或者其他任何涉及版权的东西。





回页首


RDF 简述

Resource Description Framework(RDF)项目主页(请参见 参考资料)指出,RDF “使用 XML 作为一种交换语法,集成了各种各样的应用程序,从库目录和世界级目录,到新闻、软件和内容的连锁和聚合,再到个人的音乐、相片和事件的集合。RDF 规范提供了一个轻量级本体(ontology)系统,用来支持在 Web 上互换知识。”

与 RDF 相配合的是 RDFa(Resource Description Framework -in- attributes),它在文档中被描述为 “一组 XHTML 属性,用来通过计算机可读的提示增强可视数据。我们将展示如何使用 RDFa 表达简单的和更为复杂的数据集,特别是在不重复内容的情况下,把现有的人类可见的文本和链接转变成计算机可读的数据。”

这对于 Creative Commons 来说是理想的,因为它提供了一种方法来将作品信息附加到作品本身。ccREL 是一个规范,描述如何使用 RDF 和 RDFa 描述许可信息,以及如何把许可信息附加到作品。和在 RDFa 中被编码一样,ccREL 元数据可以嵌入到各种类型的文件中。

XHTML 中的 RDFa 比 XML 语法中的 RDF 更为灵活。RDFa 为一个许可定义了两种类型的属性:作品属性和许可属性。作品属性描述特定作品的各个方面,而许可属性描述的是访客将在 Web 上看到的特定许可。

作品属性

表 1 列出了作品属性并进行了描述。注意 dccc 是作品属性的前缀,用来表明规范的来源。我将在下一小节中讨论许可属性。


表 1. 作品属性
描述注意
cc:attributionName为作品添加属性时,指定要引用的名称。cc: 是 http://creativecommons.org/ns# 的缩写。
cc:attributionURL分配属性时,指定 URL。NA
cc:deprecateOn许可失效日期。NA
dc:jurisdiction把许可和一个特定的合法权限相关联。NA
cc:legalCode给出许可的相应的合法文本。NA
cc:source关联原始来源和 URI。与软件进行关联时,可以用来为其他类型的来源(如演示文稿)提供权限。
cc:morePermissions指向一个 URL,给出除了在 CC 许可中已经指定的权限外的一些附加权限的信息。NA
cc:source关联原始资源和 URI。与软件进行关联时,可以用来为其他类型的资源(如演示文稿)提供权限。
dc:title指定文档标题。dc: 是在 http://purl.org/dc/elements/1.1/ 中定义的 Dublin Core 词汇的简写形式。
dc:type把原始资源作为 URI 进行关联。dcmitype:文本和 dcmitype:MovingImage 是 DCMI Vocabulary 的一部分。

ccREL

查看 ccREL 抽象模型,然后,把它转换成可被修改且符合需求的 Web 页面应用程序。

抽象模型

ccREL 抽象模型是以作品属性和许可属性为基础。您必须包含指定这两个属性的值的 RDF 三元组(triple)。这是在 blog 示例中的一个简单的抽象模型。


清单 1. 简单的抽象模型
				
@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 页面应用程序

现在把模型转换成一个能够在 Web 页面应用程序中使用的表单。清单 2 给出了一个示例。


清单 2. Web 页面
				

<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 力求简易,即使不是律师也能够理解。ccREL 表示也努力实现简单易懂。对属性进行了详细说明,即使是非技术人员也能够轻易识别。表 2 显示的是许可属性。


表 2. 许可属性
描述
cc:license对作品颁发许可。
注意:dc:license 的一个子属性,与 xhtml:license 相同。
cc:permits允许将作品应用于除默认的版权法以外的特定用途。
cc:prohibits禁止作品的某个特定用途。
cc:requires要求用户在享用给定的权限的时候,执行某些特定动作。

权限

权限详细地说明了一个作品可以用来做什么。每个权限都能单独行使或者结合起来行使。如果您没有指定一个权限,那么,将应用所有的权限。表 3 显示了 cc:permits 的值。工具可以使用这些值,然后根据创建者的意愿自动应用它们,而无需专有的 DRM 协议。


表 3. cc:permits 的值
描述
cc:DerivativeWorks准备作品的派生。
cc:Distribution重新发行作品。
cc:Reproduction以各种形式复制作品。

要求

一个 CC-licensed 作品的某些用途有特定的要求,由 cc:requires 属性表示。表 4 显示了它可能的一些值。在 Creative Commons Web 站点上对这些要求的完整说明进行了描述(请参见 参考资料)。表 4 显示了 cc:requires 的有效的 ccREL 值。通常来说,所有的 CC 作品都要求注明其创建者。


表 4. cc:requires 的值
描述
cc:Attribution注明相应的创建者。
cc:Notice提供管理作品的许可说明。
cc:ShareAlike重新发行该作品的派生作品时,使用相同的许可。
cc:SourceCode重新发行该作品时,提供源代码(通常用于软件)。

禁例

禁例涵盖了您不能 对一个作品所做的事情。例如,在撰写本文时,cc:prohibits 惟一的有效值是 cc:CommericialUse,意味着该作品将不可以用于商业目的。然而,为了秉承 Creative Commons 的可扩展精神,将来可能会有其他的禁例,这是因为被许可的作品的本质和它们的用途都在改变。

许可类型

现在看看由 Creative Commons 提供的许可类型以及它们对创作性作品的影响。表 5 概括了各种不同的许可和它们的属性。在这个表中,“Y” 表示使用了限制。“na” 表示没有使用限制。这些代码很容易记住,而且您能够即时了解可以做些什么。


表 5. 许可类型
许可署名非商业性使用禁止演绎相同方式共享
byYnanana
by-saYnanaY
by-ncYYnana
by-nc-saYYnaY
by-nc-ndYYYna
by-ndYnaYna

作为一个作品的创建者,在持有所有权的同时,您允许别人复制和转载您的作品。Creative Commons 总是要求注明作品的创建者 — 他或她的名字以及 URL 分配属性。除此以外,人们对作品的使用由具体的许可类型决定。

您可以指定作品可被使用,但是不能进行修改或者用于商业目的。只要人们注明您为原创者,那么就允许他们进行任意目的的修改和转载。还可以要求对作品的派生物使用与原版一样的条款。这提供了很大的灵活性,在保持作品可用的同时还能保留创建者的目的。

下面给出了两个许可类型示例,清单中的内容说明了如何在 ccREL 中表示那些权利。

许可示例 1:署名 相同方式共享

Attribution Share-Alike v3.0 CC 许可指出,只要按照作者或者许可方的要求设定作品归属,就能够复制、转载、展示、执行作品,以及再混合作品。如果您要修改、改变或者在该作品上进行创作,您在转载结果作品时,只能使用同样的或类似的许可。

清单 3 显示的是描述许可的语法。


清单 3. Attribution Share-Alike v3.0 CC 许可
				

@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


许可示例 2:署名 非商业性使用 禁止演绎

署名 非商业性使用 禁止演绎 lv 3.0 CC 许可指出,只要按照作者或者许可方的要求设定作品归属,就能够复制、转载、展示、执行作品。不可以把作品用于商业目的。不能修改、改变或者在该作品上进行创作。


清单 4. Attribution Noncommercial No Derivate Works v3.0 CC 许可
				

@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


如您所见,一旦熟悉了 Creative Commons 术语,这些许可的表示就显得具有逻辑性而且简单易懂。

License Your Work 向导

如果您不熟悉 CC 许可的用法,可以使用 License Your Work 向导。

要获得入门,请访问 Creative Commons 的主页(请参见 参考资料),然后单击可用选项中的 License 链接。向导程序将询问是否允许把作品用于商业目的和进行修改。如果同意修改,您可以决定是否允许他人共享作品。您需要指定许可的权限范围。

如果愿意,可以给予用户一些附加信息,如作品的格式、作品的标题、创建者的名字、URL 分配属性、源作品,以及更多的权限。完成后,单击 Select a License 按钮。这将把您引向一个显示所选许可的详细信息的页面。如果不满意的话,您总是能够返回并更改选择,然后再单击按钮查看结果。

一旦对许可满意后,单击一个许可的图片,将显示访客所能看到的效果。然后,复制 HTML 文本,并且把代码添加到定制的 Web 页面的核心部位,这样访客就能知道您的作品所使用的许可了。

应用程序示例

尽管由许可生成的 HTML 代码比 XML 语法中的 RDF 版本更容易修改,但它并不美观。我改变了代码,使其更容易读懂,如清单 5 所示。

我去掉了同一源代码中多余的 xmlns,并且在 HTML 标记中去掉了惟一的 xmlns。确定了与一个特定的 bibliographic: topic 相关联的代码块,并且给日历源代码添加了引用。要查看区别,请用向导生成、复制代码,并与这个示例进行比较。表 6 显示的是我使用的值。


表 6. 用于 CC 许可向导的值

属性
允许把您的作品用于商业用途?
允许对您的作品进行修改?
适用范围美国
作品形式文本
作品标题RFID in the Supply Chain
作者名字Judith Myerson
作品 URL
源作品 URLwww.source.com
更多权限 URLwww.morepermissions.com


清单 5. 自定义 HTML 代码

				

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



由于这是常规的 HTML,因此可以在代码中添加样式表。要测试许可代码的话,请单击许可图标按钮或者单击许可标题,便可获得有关许可应用的信息。

RDF/XML

看一下使用压缩格式的示例的 RDF 版本。向导不会生成 RDF 代码。您必须从一个基础的 RDF 定义开始,然后定制它来满足您的需求。可以在 Creative Commons Web 站点通过相应的 URL 来获取基础定义。在我们的例子中,由于许可是 by-nc-nd ,所以使用了 URL http://creativecommons.org/licenses/by-nc-nd/3.0/rdf。如果我想要一个不同的许可,我会修改 URL 以匹配许可类型,如 as by-sa。

您收到的代码包含了使用许多语言翻译的标题。为了保持简洁,我把它们删除了。保留所有版本的标题译文不是绝对必要的,但由于您的信息是放在 Web 上的,因此,访问可能会来自世界各地。您也要确保每个人都能够看懂。

<Work> 部分是手动添加到许可中的,而且也添加了作品的特定属性。尽管过程有点麻烦,一旦熟悉了这个模式,整个流程就能够自动处理。


清单 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>


结束语

当您要把数据和应用程序应用到 Mashups、Cloud,以及所有其他未来无法预见的用途时,考虑使用 Creative Commons 来阐明相应的共享和使用。使用这些技巧把信息嵌入到内容中,以便在基础设施演变时,工具能够自动找到并遵守您的信息权限。



参考资料



关于作者

Judith M. Myerson 是一位系统工程师兼架构师。她感兴趣的领域包括中间件技术、企业级系统、数据库技术、应用程序开发、网络管理、安全性和项目管理。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款