级别: 中级 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 列出了作品属性并进行了描述。注意 dc 和 cc 是作品属性的前缀,用来表明规范的来源。我将在下一小节中讨论许可属性。
表 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. 许可类型
| 许可 | 署名 | 非商业性使用 | 禁止演绎 | 相同方式共享 |
|---|
| 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 |
|---|
作为一个作品的创建者,在持有所有权的同时,您允许别人复制和转载您的作品。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 | | | 源作品 URL | www.source.com | | 更多权限 URL | www.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 是一位系统工程师兼架构师。她感兴趣的领域包括中间件技术、企业级系统、数据库技术、应用程序开发、网络管理、安全性和项目管理。 |
对本文的评价
|