`
zhangziyueup
  • 浏览: 1170671 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

2008 年 3 月 20 日

了解链接开放的数据(Linking Open Data,LOD),这一社区计划致力于将 Web的形式从相互隔离的文档转变为更加广阔的信息数据空间。LOD 的关键原则是:简单,容易为 Web 开发人员所接受,并对其他许多流行的 Web趋势起补充作用。了解如何使您的数据更容易被发现、更有价值且更易于重用(甚至支持未来的重用方式),从而让数据得到更广泛的使用。

在本专栏中,我一直侧重于 Web 2.0 技术中与开放、共享的数据相关的方面,而不是那些浮华的效果。Ajax 固然重要,如果使用得当,它可以改进Web 站点的实用性。但 Web 提要、开放且 Web 友好的 API、第三方插件以及 mashup 功能才是 Web 2.0真正的精华所在。与 Web 最初的领导者 W3C 联系密切的一个社区正致力于为这些功能提供一组具体而一致的实践。Linking OpenData(LOD)社区结合了 W3C 的愿景,使用语义特性,用主流 Web 2.0 标志性的实用主义增强 Web。这个社区的主要 Wiki页面指出,社区的核心是一个半官方的 W3C 项目(见 参考资料):

W3CSWEO [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”来表示)、文档的网络(大多数人称之为 “TheWeb”),最终是我们希望共享的一切内容的网络。他认为,我们应该将网络的基本原则直接扩展到数据(例如,传统数据库的内容),而不应该怯于链接非计算机资源,如人员、实物和非实物、位置等。在后文中,我将讨论链接非计算机资源的诀窍。这种扩展的链接观点称为 “数据网络”,构成了 LOD 的基础。

LOD 101

进一步观察 LOD 在实践中的含义,起点就是 Berners-Lee 在另外一篇文章 “Linked Data”(参见 参考资料)中介绍的四项基本原则。如 Wikipedia 所列举:

  1. 使用 URI 来识别作为资源公开给 Web 的事物。
  2. 使用 HTTP URI 使人们能够定位和查找(反向引用)这些事物。
  3. 在反向引用 URI 时提供关于这些资源的有用信息。
  4. 在公开的数据中包含对其他相关 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 数据集
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和语义丰富的数据格式,然后就是创建链接、链接……更多链接。

分享到:
评论

相关推荐

    corpusexplorer2.0:语料库语言学从未如此轻松。

    CorpusExplorer2.0 适用于语料库语言学家和对文本/数据挖掘感兴趣的人的软件。 CorpusExplorer结合了超过45种交互式评估选项,并且操作简单。 例行任务,例如B.文本获取,标记或结果的图形准备是完全自动化的。 ...

    C#物联网平台服务器框架源码(自带WEB API,硬件数据接收服务,一键部署,无需IIS)

    c# 物联网平台服务器框架源码。集成iot,web api服务,这套带码是通过C#编写集成IOCP高性能高并发优势服务器服务源码。...5、开放服务器接收源数据事件接口,使用时可以自定义协议以及扩展性更强。

    software-radio

    很多因素推动了对这类环境的需求,其中包括连接设备、实时数据流、SOA的采用以及搜索、开放协作、社会网络和移动商务等这样的Web2.0应用的急剧增长。 另外,数字元器件性能的提升也使IT环境的规模大幅度提高,从而...

    wap网站和wap+2.0教程.

     WAP(无线通讯协议)是在数字移动电话、互联网或其他个人数字助理机(PDA)、计算机应用乃至未来的信息家电之间进行通讯的全球性开放标准。这一标准的诞生是WAP论坛成员努力的结果,WAP论坛是在1997年6月,由...

    云计算共享基础架构,提供各种IT服务

    很多因素推动了对这类环境的需求,其中包括连接设备、实时数据流、SOA的采用以及搜索、开放协作、社会网络和移动商务等这样的Web2.0应用的急剧增长。 另外,数字元器件性能的提升也使IT环境的规模大幅度提高,从而...

    夏茂政府网集成OA完整版 v2.0

    2.数据库开放,不再加密隐藏数据表; 3.前台管理分文章、图片、视频、下载、新闻、公告、投诉、部门、友情、广告、客服、设置等10多个模块,代码完整; 4.文件上传改用aspupload及aspjpeg组件,自动生成略缩图,且不...

    Java数据编程指南

    网络客户机上的数据显示 第12章 Web体系结构 引言 典型的Web中心体系结构 应用程序体系结构 Web中心应用程序的判定标准 小结 第13章 服务程序(Servlets) 概述 服务程序的结构 服务...

    动网论坛程序PHP2.0

    实现整体效果的同时,融入更多的Web2.0新鲜元素,给人全新的视觉。新增首页右边自定义,实现一些广告的投放,以及论坛相关的帖子和圈子的数据的调用。 二、FLASH验证码 大胆的采用国际的领先技术,在保证安全稳定的...

    基于J2EE框架的个人博客系统项目毕业设计论...

    在web 2.0应用中,博客(Blog)是web 2.0核心应用中最典型、最流行的代表之一,也是web 2.0技术应用的最直观的表现,是web 2.0精神和理念的具体体现。 1.2. 问题的提出 Blog记载了日常发生的事情和自己的兴趣爱好,把...

    新云网站管理系统 V2.0.0

    本系统是一套基于WEB的网站管理系统,采用网络中已经成熟、稳定地技术ASP+Access(或SQL2000)开发而成, 通过它,您可以很方便地管理自己网站。当前本系统已具有如下功能特点: 一、六大功能管理模块,用户管理、...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    在web 2.0应用中,博客(Blog)是web 2.0核心应用中最典型、最流行的代表之一,也是web 2.0技术应用的最直观的表现,是web 2.0精神和理念的具体体现。 1.2. 问题的提出 Blog记载了日常发生的事情和自己的兴趣爱好,把...

    中文维基百科的结构化信息抽取及词语相关度计算方法

    维基百科作为一个以开放和用户协作编辑为特点的Web 2.0知识库系统,具有知识面覆盖度广,结构化程度高,信息更新速度快等优点。然而,维基百科的官方仅提供一些半结构化的数据文件,很多有用的结构化信息和数据,并不能...

    ikaros:用于系统级大脑建模的开放基础架构

    有关Ikaros 2.0的重要更改,请参见以下链接: 伊卡罗斯项目 Ikaros计划于2001年初开始,其目标是为大脑的系统级建模开发开放的基础设施,包括实验数据,计算模型和功能性大脑数据的数据库。 该系统大量使用了新兴的...

    JAVA上百实例源码以及开源项目源代码

     Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器地址  ...

    abot:为提高速度和灵活性而构建的跨平台C#Web爬网程序框架。 请为该项目加注星标! +1

    Abot是一个开放的C#Web爬网程序框架,旨在提高速度和灵活性。 它负责低级管道(多线程,http请求,调度,链接解析等)。 您只需注册事件即可处理页面数据。 您也可以插入自己的核心接口实现,以完全控制爬网过程。...

    FuIP v2.1 专为单片机联网而定制的TCP/IP协议栈

    发送数据缓冲,DATA数据: DATA[200](键人默认长度200,可改) 接收包缓冲(包含ETHERNET头,IP头,TCP/UDP首部) Re_DATA[200](默认长度200,可改,但是为了接收,长度至少TCP>=54,UDP>=42) (本demo占用RAM大约...

    概要设计说明书模版

    建立统一接口平台和数据分发平台,分别用于处理联机交易接口和批量数据接口,采用通用的标准协议、提供丰富的底层封装,提高了标准化和开放性。 2、业务需求 渠道运营支撑系统产品通过对系统的重新构建,全面系统地...

    软件界面设计工具_3款合集

    Balsamiq Mockups是一款免费的带有手绘风格的原型设计软件,可以帮助你设计桌面应用软件,Web 2.0 站点, RIA富网络应用程序, Web站点和Web应用软件。 功能和亮点: 操作方面:拖拽,控件分组,甚至元素之间的对齐...

    java开源包4

    它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步...

    tmp-badge:#mozsprint有关可再生研究和开放科学徽章的工作

    UW ROS工作组项目: 可重现的研究与开放科学徽章 该存储库包含。 #链接 (Google表单)( )( -Google Spreadheet... Github存储库包含用于从Google表单收集数据的Web应用程序的R代码-https: Shinyapps回应和结果

Global site tag (gtag.js) - Google Analytics