guide

如何将数据开放?

Languages:  de  el  en  es  fr  he  hr  id  is  it  ja  ko  lt  lv  my  ne  nl_BE  pt_BR  ro  ru  zh_CN  zh_TW 

作为全书的核心,这一节将对如何将数据开放给出翔实的建议。我们将会从基础开始,但也会提及一些需要特别注意的地方。最后,我们将会讨论一些可能出现的微妙问题。

在把数据开放时,有三条我们推荐的关键准则:

  • 尽量保持简单:从小的,简单的,快捷的数据开始开放。并没有要求说所有的数据都应该立刻开放。从一个数据集,甚至一个大数据集的一部分开始是肯定没有问题的。当然,如果你能开放更多数据那就更好了。

要记住这一切都事关创新。行动越快越好因为这说明你能够创造动力并且吸取经验教训——创新不只关乎于成功也包括失败,并且并不是每一个数据集都是有用的。

  • 尽早且频繁地让他人参与:尽早且频繁地让现有的或潜在的用户使用或再利用那些数据,不管他们是普通民众,还是商人或是开发者。这将会确保你的服务能在下次迭代中变得更为有用。

你有必要记得大部分数据不是直接服务于最终用户的,而往往是通过「信息中介商」。这群人将数据变形或者重新整合后再展现给用户。例如,大部分人并不需要大量的GPS座标数据而更期望一张地图。因此,让那些「信息中介商」先参与进来。这样他们能够开始重利用那些数据。

  • 回应常见的担忧和误解:这一点在和大型组织(例如政府)的合作中尤为重要。当你把数据开放后,你会碰到许多问题和担忧。这就使得找出其中最关键的问题并且尽早回应他们成为关键。

把数据开放涉及到四个主要的步骤,我们将在下面逐一详细介绍。他们之间的顺序不定,甚至大多数时候可以同步执行。

  1. 选取数据集: 选取一个你想开放的数据集。记住当你在之后遇到问题的话,你可以(或者说也需要)回到这一步骤重新选择数据集。
  2. 应用一个开放许可协议:
    1. 确定数据的知识产权。
  1. 应用一个合适的开放协议来确保这些权利以及遵循「开放知识定义」(见「什么是开放数据」一节」)。
  2. 注意:如果你无法应用一个合适的协议,那么就退回到第一步重新选取一个数据集。
  1. 使得数据可获取:将数据提供在可用的、可整批获取的格式下。或者,你可以考虑提供一个API。
  2. 使得数据可发现:将数据发布到网上或者建立一个中央化额数据目录来列举你所有的开放数据集。

选取数据集

虽然选取你将要开放的数据集是第一步,但你要记得整个将数据开放的过程是一个迭代的过程所以当你在之后遇到问题的话还能回到这一步。

如果你已经很清楚要将哪些数据集开放,你可以直接跳到下一节。然而,很多情况下,特别是在大型机构中,选择一个数据集作为工作重心将会是极大的挑战。那么在这种情况下该如何处理呢?

准备一个你考虑可以开放的数据集清单将会是很快完成的工作。之后会有时间具体来审视每个数据集是否合适开放。

这里并*不要求*一个完备的数据集清单。重点是你要清楚将这些数据公开是否可行 (无论这些数据最终是否开放。具体参见 「什么是开放数据」<what-data-can-be-open>一节)。

向社区询问

我们推荐你在一开始就向社区咨询。他们是那些将会访问或使用你数据的人,所以他们很可能对那些数据有价值这一问题有着很好的理解。

  1. 先准备一个你想要回馈意见的数据集的清单。这个清单没有必要和你预期使用的数据集一致,这里主要目的是去了解用户的需求。这个清单也可以基于其他国家的开放数据目录。
  2. 邀请社区评论你的清单。
  3. 将你的邀请做成一个网页。 确保通过URL可以访问到这个邀请。这样当使用社交媒体传播这个邀请时别人可以很容易发现。
  4. 提供提交反馈的简单方法。避免因为要求注册而减少回应数量。
  5. 将邀请发布到不同的讨论组,论坛,个人,记得同时给出网页地址。
  6. 组织一个讨论会。确保讨论会的时间便利,以让大部分商业人士,数据爱好者,政府官员等可以参加。
  7. 请一个政客替你的组织对外发言。开放数据是很容易成为提升政府信息公开这一政策的一部分的。

将数据开放的成本

机构在数据收集和维护上花费多少?如果他们花了很多钱在某一个数据集上,那么别人很可能希望能够访问这些数据。

这一论断很容易引起对于「搭便车」的担忧。所谓「搭便车」的担忧,即「为什么别人可以免费访问我们花费巨资收集维护的数据?」。一个回答是这些资金投入是公共部门需要来执行特定工作的,但数据收集后再分发给第三方的成本则近乎为零。因此,数据不应该在被收费。

将数据开放的简易性

有些时候,与其考虑哪个数据集更有价值,不如考虑哪个数据集更容易被开放给公众。小而易的开放数据更容易促进大型机构改变对开放数据的态度。

然而使用这个方法时也要小心。因为可能一些小的数据集被开放后并没有创造什么价值。如果这发生了,那么整个将数据开放的项目都将夭折。

向同行学习

将数据开放是一个成长中的运动。因此在你的区域里很可能有人了解其他地区在开放数据上的工作进展。基于了解同行们的工作,你可以建立一个工作清单。

应用一个开放许可协议 (法律上的开放)

在大多数司法系统中,知识产权法案都限制第三方在没有许可的情况下对数据的使用,再利用和再分发。即使在知识产权保护范围不清晰的领域,应用一个许可协议来澄清使用许可也是非常重要的。因此,*如果你计划将你的数据开放,你应该考虑对这些数据应用一个许可协议*。

哪些许可协议可以使用呢?我们推荐对于开放数据,你可以选用遵循「开放知识定义」且适用于数据的协议。相应的协议(以及使用方法)可以在这个清单中找到:

一个一页的关于如何应用开放数据许可协议的简短指引可以在 Open Data Commons 网站上找到:

使数据可获得 (技术上的开放)

{term:开放数据}不仅要法律上开放而且要技术上开放。具体来说,数据应该能够被整批获取且提供在机器能阅读的文件格式下。

Available

数据应当能在支付最多不超过合理重制费用的情况下获得,最好是能通过网络下载取得。这一价格模型得以实现是基于你在将数据开放时不产生其他新的成本。

In bulk

数据应当可以完整获取。如果你有一份依法令收集的记录,那么整个记录都必须提供下载。网络API或者类似的服务在这种情况也是非常有用的但并非整批获取的替代品。

In an open, machine-readable format

重利用公共部门开放的数据不应当被技术专利所限制。更为重要的,你应当确保使用机器可阅读的文件格式来实现再利用。例如,统计数据常因高质量印刷的原因被发布在PDF格式下。虽然这些数据可以被人阅读,但对于计算机而言这些数据很难阅读。这就限制了他人对数据的再利用。

这里给出一些有益的准则:

  • 尽量保持简单
  • 行动迅速
  • 要务实

特别的,相比花费六个月去完善数据,直接给出原始数据是更好的选择。

将数据开放有很多方法。在网络时代最直接的方式是提供数据在线版本。这种方法也有很多变种。最基本的是将数据放置于网上上并且在一个数据中心目录上将用户导向到相关的数据源。然而,还有其他方法是可以采用的。

当{term:网络环境}不佳或者数据量异常庞大,通过其他渠道分发数据也是可以的。在这一节里我们将讨论在保持成本低廉的前提下如何分发数据。

在线方式

通过现有网站

对于你的在线内容团队来说,提供可从网站下载的内容是很熟悉的工作内容了。正如你现在提供在线下载文档一样,你也能如此简单地使数据文件通过在线下载方式被获取。

这个方法的难点在于对于外部人员而言,找到在哪获取更新的数据是很困难的。这个方法为那些使用你数据创造新产品的人制造了障碍。

通过第三方网站

很多数据仓库都已经逐渐变成了某个领域内的数据集散中心。比如,pachube.com 把那些拥有传感器的人群和那些希望访问那些传感器数据的人群连接起来。诸如 Infochimps.com 和 Talis.com 网站则允许公共服务机构免费存储海量数据。

第三方网站可以非常有用,这主要是因为他们已经吸引了一群对数据感兴趣的人以及存储了大量其他数据。 当你的数据也成为这个平台的一部分,就会引发出一种对你数据投以关注的正面氛围。

数据批发平台已经提供了底层基础架构来支持此类需求。他们通常提供数据分析和数据使用情况服务。而这些服务对于公共服务部门都是免费的。

使用此类平台要付出两种代价。第一是要丧失独立性。你的机构要有能力将控制权完全交托于第三方。而这通常在政治上,法律上或运营上非常困难。第二种代价是开放性。请确保你的平台不限制任何人的访问。软件工程师和科学家常使用不同的系统,从智能手机到超级计算机都有。他们应该都能够访问到你的数据。

通过FTP服务器

一个逐渐不流行的方式是将数据通过FTP方式开放。如果你的主要客户是熟悉技术的人群,例如软件工程师或者科学家,那么这种方式是合适的。FTP系统是类似于HTTP系统的但其被特别设计为为文件传输服务。

FTP已经逐渐被淘汰了。不同于提供一个网站,提供一个FTP更像是提供了一种访问计算器文件夹的方式。因此,尽管它能解决问题,但其的不可定制性使得鲜有网站开放商愿意提供此服务。

通过torrents

BitTorrent 对于政策制定者而言已经越来越熟悉这是因为它与版权纠纷常联系在一块。BitTorrent 使用一种称为 torrents 的文件,这种文件将文件传输的成本分摊到了每一个正在访问文件的人身上。与传统服务器会遇到服务器过载不同,使用 torrents 会使得在对文件需求增强的时候,文件服务端能力也相应增强。因此它在电影分享上十分成功。它的确是传输大量数据的极为有效的传输方法。

通过API

数据可以以 {term:应用程序语言接口}(API)的方式发布。这种接口现在越来越流行了。因为他们允许程序员选择特定部分的数据发布而不是将整批数据作为一个大型文件来提供下载。APIs 通常和一个实时更新的数据库连接起来。 这意味着任何通过API请求的数据都将是最新更新的。

将原始数据整批发布应当是任何开放数据发布者首要考虑的。提供API将会需要付出以下代价:

  1. 高成本。 API方式相比传统文件下载方式通常需求繁重的开发和维护而造成高成本。
  2. 高预期。 为了营造良好的社区氛围,你应当提供确定的 API 服务内容。当任何部分出错,你都要付出修复他们的代价。

提供整批数据则保证了:

  • 不存在对原始数据提供者的依赖。这就意味着即使因为数据提供者的预算发生了变化或者其机构内部结构重组,都不影响数据的访问。
  • 任何人都会有数据的副本并且可以重分发这些数据。这就降低原数据提供者的数据分发成本以及不用担心分发数据中出现问题。
  • 其他人可以利用这些数据开发自己的服务而不用担心将来会无法访问这些数据。

提供整批的数据使得使用者可以重新规划这些数据的用途。比如,可以将这些数据转换入另一种格式,或者与其他数据整合在一起,或者编上版本号并存档在多个地方。虽然 API 会提供最新版本的数据,原始数据仍应能被定期整批获得。

比如,欧盟统计局的统计服务提供超过4000数据文件的数据整批下载服务。这个服务每两天更新数据一次,将数据提供在 TSV 格式下, 并且提供下载服务说明文档以及数据文件说明文档。

另一个例子来自于哥伦比亚行政区 OCTO 数据目录,这个服务提供了 CSV 和 XLS 两种格式的数据下载以及数据的 live feeds

让数据可被发现

没有用户的话,开放数据就毫无意义。因此你需要确保人们可以找到你的数据。这一节将会讨论不同的使数据可被发现的方法。

最为关键的一点是你能找到一个中立的平台来规避可能的机构间的政治冲突和预算变化。无论是部门间的或是地域间的职权管辖范围都会对机构间合作造成一定的困扰。然而,机构间的合作有其益处。因为别人越容易发现数据,新的基于你数据的产品服务就会越快被开发出来。

现有服务

在网上已经有一批服务可以帮助你使你的数据可被人们发现。

其中最突出的服务当属 DataHub,它是服务于全球数据的数据目录和数据存储服务。它使得任何个人和组织都可以轻易地发布数据并使人们能够找到需要的数据。

除此之外,现在还有许多服务于专门领域和地区的数据目录服务。一些科学社区也开发了专门的数据目录来服务于自己的研究领域,因为这些领域的论文发表都要求一同发布数据。

为政府服务

对政府部门而言,常见的方式是建立一个数据目录。当开发数据目录时,要记得其架构因能使不同部门轻易管理各自的数据。

不要坚持去从头开发一个数据目录。免费,开源的解决方案(比如 CKAN)已经被很多政府所采用。因此,重新投入资源去开发新平台就显得没必要了。

下面我们列出一些数据目录服务通常缺少的特性,你们的开发人员可以考虑添加这些特性:

  • 允许民间企业、组织、社区向数据目录添加数据。或许值得思考一下数据目录是仅仅服务于地区政府的还是服务于整个地区的。
  • 允许数据的衍生版本被列入目录来促进数据质量的提升。比如,某个人或许将地址数据转为地理编码数据并想分享结果。如果你只允许单一版本的数据,这些改进都将不可见。
  • 要容忍你的数据出现在别的地方。这意味着你的数据很可能在其他地方重复出现。比如你提供河流监测数据,它很有可能在水文学者的数据目录中出现。
  • 确保数据的获取对任何人是公平的。不要给政府官员或者终身教授等高级权限,因为这会使社区参与受到打击。

为民间团体服务

要乐意为那些非官方数据建立数据目录。

对于政府部门而言,很少会将非官方数据源和自身联系起来。通常政府部门会花费巨额来防止因为数据的误读和过分解读而造成的政治上的窘迫和损害。

进一步来说,政府通常不愿意支持那些将自身政府信息和商业信息整合使用的活动。对于此类活动,政府部门通常抱以利益驱动的阴谋论。因此,一个由社区运营的独立数据目录是需要的。