首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

真正的 Web 2.0 链接开放的数据

真正的 Web 2.0 链接开放的数据

在本专栏中,我一直侧重于 Web 2.0 技术中与开放、共享的数据相关的方面,而不是那些浮华的效果。Ajax 固然重要,如果使用得当,它可以改进 Web 站点的实用性。但 Web 提要、开放且 Web 友好的 API、第三方插件以及 mashup 功能才是 Web 2.0 真正的精华所在。与 Web 最初的领导者 W3C 联系密切的一个社区正致力于为这些功能提供一组具体而一致的实践。Linking Open Data(LOD)社区结合了 W3C 的愿景,使用语义特性,用主流 Web 2.0 标志性的实用主义增强 Web。这个社区的主要 Wiki 页面指出,社区的核心是一个半官方的 W3C 项目(见 ):
W3C SWEO [Semantic Web Education and Outreach] Linking Open Data 社区项目的目标是,以 RDF 形式在 Web 上发布各种开放的数据集,并在来自不同数据源的数据项之间设置 RDF 链接,从而增强 Web 上的数据共用。   
对于 W3C 来说,把重点放在 RDF 上是很自然的,因为 W3C 十年来一直在推广这种技术,但有一种发展趋势导致 LOD 倍受重视:人们逐渐意识到,在不同的领域坚持采用严格的 RDF 格式可能不是最好的策略,很难让 Web 开发人员接受这种策略。LOD 将 RDF 作为概念模型加以支持,但更加侧重于链接和开放性,而非任何一种语法。毕竟 RDF 是纯粹的 URI、链接和标签,因此任何包含这三种元素的模型都能与 RDF 系统顺利协作。整个 LOD 社区处于 W3C 的领导核心的外围,为本专栏中目前讨论的所有开放数据的优势提供支持,也将 RDF、Atom、JSON 等技术视为 Web 开发人员用于开放其数据的工具。   
什么是数据网络?从根本上来说,LOD 社区的灵感源自 Web 之父 Tim Berners-Lee 的思想。在他撰写的文章 “Giant Global Graph”(参见 )中,他通过一些合理的观察表述了这种理念的基本发展演变:
  • '(Internet 创建背后)的现实是:“那并不是电缆,而是有趣的计算机”。网络的设计目的就是使我们能够看到计算机,而不必看到电缆。'
  • '[万维网] 又一次提升了我们作为用户的力量。事实是:“那并不是计算机,而是有趣的文档”。现在,您可以浏览海量文档,而无需费心考虑存储这些文档的计算机。'
  • '现在,人们正在经历着又一次思想变迁。现在的情况是:“那并不是文档,而是关于哪些事情更重要"。'
Berners-Lee 指出,这一发展演变过程的所有阶段都与链接网络有关 — 计算机的网络(我们通常用 “network” 而不是 “web” 来表示)、文档的网络(大多数人称之为 “The Web”),最终是我们希望共享的一切内容的网络。他认为,我们应该将网络的基本原则直接扩展到数据(例如,传统数据库的内容),而不应该怯于链接非计算机资源,如人员、实物和非实物、位置等。在后文中,我将讨论链接非计算机资源的诀窍。这种扩展的链接观点称为 “数据网络”,构成了 LOD 的基础。
LOD 101进一步观察 LOD 在实践中的含义,起点就是 Berners-Lee 在另外一篇文章 “Linked Data”(参见 )中介绍的四项基本原则。如 Wikipedia 所列举:
  • 使用 URI 来识别作为资源公开给 Web 的事物。
  • 使用 HTTP URI 使人们能够定位和查找(反向引用)这些事物。
  • 在反向引用 URI 时提供关于这些资源的有用信息。
  • 在公开的数据中包含对其他相关 URI 的链接,作为改进 Web 上信息发现的手段。
原则 1 表示,您应尽可能多地尝试使用 URI 来公开信息。不仅仅是 Web 页面,还包含前台应用程序文档、数据库行和元数据、个人数据、事务日志、业务规则和策略,甚至服务。如果有必要共享此类信息,应尝试为其组件分配 URI。您可能会担忧安全性。或许您习惯于依赖传统应用程序来保护数据。切记,人们处于 Web 之上。在 Web 上进行股票交易。他们在 Web 上旅行和购物。Web 已经被证明为一种安全的数据通道,遵循着久经考验的最佳实践。
原则 2 表示,您应该放弃晦涩的 ID 模式,甚至是 URI 模式,而应坚持使用适合 Web 的 HTTP。这保证了最广泛的工具和资源能够实现访问。
原则 3 表示,您提供给访问数据 URI 的用户的数据应采用适于在 Web 上共享的通用格式。XML 是可想而知的选择之一,但并非所有 XML 都适用。您可能需要以一种在语义上透明的方式使用 XML,这也就是说,采用机器可处理的方式描述 XML 中的结构。RDF 是 LOD 社区中采用的主要格式。它提供了非常高的语义透明度,但对 RDF 的支持尚未达到 XML 支持那样广泛。集两者之大成的方法之一就是使用 GRDDL,一种通过 RDF 的视角查看 XML 的系统。
您可能会犹豫是否要选择 JSON 和微格式,它们已经在 Web 2.0 世界中赢得了如此之多的荣誉。这些技术的问题在于,其语义透明度总是低于 XML,而 GRDDL 可配合微格式使用。
原则 4 从本质上来说就是 “财富共享” 的原则。前三条原则鼓励您尽可能对数据进行 Web 引用,最大化引用的这些数据的有用性。一旦有了这些引用,就应该勇于使用。应在可能时广泛地使用链接。您永远不知道某人或某台机器会选择怎样浏览您的数据网络,LOD 的全部目标就是使得数据能够通过非最初构想的方式轻松使用。
超越数据前一节介绍的原则对于已经作为计算机数据提供的数据非常有意义。文档、文件、数据库等称为 “信息资源”。但 Berners-Lee 说过:“那并不是文档,而是关于哪些事情更重要。”显然,此分类中的大部分内容都并非信息资源。而是人员、位置和其他实物或非实物内容。如何才能创建未包含在计算机内的事物网络?在这里,LOD 采用了一种非常聪明的技巧。您只要如常继续,为此类事物提供一个 URI,比如说 http://censusdata.example.com/joe.cool。不要使用 Joe Cool 的主页(http://joe.cool.name/heyjoe.html)来表示他,因为这可能令点击此链接的用户感到迷惑。这究竟是与此人有关的链接?还是与他的主页文档有关的链接?
技巧就是:只有有人转到表示 Joe Cool 本身的标识符 http://censusdata.example.com/joe.cool,他们就会重新获得一个特殊的 HTTP 响应代码,表示 “这是一个非信息资源,因此无法为您提供资源本身,但可以为您提供一些链接,帮助您获得更多相关信息”。这一特殊的 HTTP 代码就是 303,到相关信息的主链接可以是 Joe Cool 主页的链接 http://joe.cool.name/heyjoe.html。但 303 这一步使得事情清楚明确:初始标识符表示的是人,而不是他的主页。
在很长一段时间内,我一直质疑尝试将非信息资源实体与计算机表示密切配合使用的系统。我认为,这种做法存在根本的哲学问题,而且很可能为系统增加过多的复杂性。我必须承认,303 技巧是我所见过的复杂性最低的方法,观察这种技巧的大量开发实践也非常有趣。某些哲学问题确实存在,我认为说成功的 303 技巧将开启信息系统的新纪元并不夸张,就像最初的 Web 及其令人烦恼却有用的 404 一样意义深远。
扩展气泡图LOD 社区使用 LOD 原则维护着可用的重要公共数据集的图表。图 1 是该图表的最新版本。
图 1. LOD 数据集在  中提供了该图表的一个可点击版本的链接。各气泡的大小大致表示了对应数据集中的数据量。一些有趣的条目包括:
  • Freshmeat,列举开源数据的经典站点
  • MusicBrainz,在线数字音轨和专辑数据库
  • Project Gutenberg,一个值得尊敬的计划,使无版权文本可自由使用
  • FOAF,社会网络的 RDF 方法
  • DBPedia,Wikipedia 文章的 LOD 包
结束语尽管大获成功,Web 依然有许多地方有待改进。W3C 此项工作的核心是语义 Web,它将创建语义透明的数据网络。LOD 从根本上来说是一种对 Web 开发人员非常友好的语义 Web 方法,也完美地补充了最重要的 Web 2.0 概念。本专栏之前的文章已经讨论了 mashup。从站点 A 中获得一个服务的输出,将其混合到站点 B 的输出之中。使用 LOD,就不必再使用这种刻意、专门针对各成员站点的流程。只需透明地从分散在 Web 上的大量数据和服务中提取即可。有些内容可以自由使用,有些则受安全性或商业限制,但从很大程度上来说,这一切只是 Web 开发人员已经能够处理的细枝末节。
LOD 意味着使人们能够更轻松地发现您放置在 Web 上的重要内容,使他们能够轻而易举地对其进行无法预知但卓有成效的处理。在下一个 Web 项目中,首先应考虑 Web 应用程序中表示的有哪些信息资源,有哪些非信息资源,然后竭力为所有资源提供一个精心设计的 HTTP URI 和语义丰富的数据格式,然后就是创建链接、链接……更多链接。
返回列表