万维网赋予了人类前所未有的力量。Web 展示给人们的信息的绝对数量和种类让人非常吃惊。您可以找到菜谱和体育比分;共享日程和联系信息;阅读新闻报道和餐馆点评。您可能一直在使用 Web 上以各种充满吸引力的方式提供的数据:示意图、表格、图表、图片、短文和照片。
然而,这个内容丰富、对人类友好的世界有一个阴暗的地下世界。那是机器试图从人类可轻松访问的大量数据中获益的世界。它是聚合器、代理、推理机和可视化的世界,所有一切都致力于提高其人类控制者的生产力。但是,机器通常要费很大的力气去解释专门供人类使用的大量信息。
但这个故事并非完全令人沮丧。即使您尚未注意到人类与计算机间的这种冲突,也不必担心。在阅读完此系列文章后,您将具备足够的知识,可以在无数种可能的、在机器和人类这两种数据用户所需的数据表示之间架起桥梁的方法之中,作出明智的选择。
在 20 世纪 90 年代早期,Tim Berners-Lee 发明了 HTML、HTTP 和万维网。按照他最初的设计,Web 是一种不仅局限于人与人间交互的信息空间。他打算使 Web 成为语义上丰富的数据网络,能够被人类浏览,并且利用计算机程序执行操作。这一 Web 远景现在仍然称为语义 Web。
|
然而,由于其使用者的根本特性,Web 的呈指数式发展,并且将优先权赋予了主要由人类而非机器使用的内容。逐渐地,用户的生活开始越来越依赖 Web,我们从个人站点、学术主页过渡到电子商务以及 b2b 交易网站。世界上最重要的信息越来越多地流过 Web 上的链接,但大多数支持 Web 的交互仍然需要人类的解释。可想而知,人们日常生活中使用的连接到 Internet 的设备也越来越多,这促使人们越来越依赖理解 Web 数据的设备软件。
|
很明显,早在 Web 出现以前,机器之间就已经开始彼此交互了。如果 Web 如此迅速地发展壮大,而主要目标又是人类的使用,那么自然而然地就会产生一个问题,为机器开发技术,使其将 Web 作为信息通道与人类共享会带来哪些收益。为了探讨这个问题,想像一下,如果机器完全 不能理解 Web,那么当前的 Web 将会怎样。
根据 Alexa 对所有搜索引擎的流量排名,排名前三名的网站(至本文撰写之时)是 Yahoo!、MSN 和 Google。这些站点都是由大量软件驱动的 Web 爬虫(crawler)提供动力,它们应用各种技术来索引人为生成的 Web 内容,并使之适于文本搜索。如果没有这些公司为使用 Web 而提供的大量算法技术,您的 Web 导航体验将局限于下级明确声明的超文本链接。
接下来,考虑 Alexa 列表上流量排名第五的站点:eBay。人们通常将 eBay 视为 Web 上人类交互的最佳示例之一。但是,机器在 eBay 的声望方面发挥着重要作用。在 eBay 清单中,约有 47% 是使用软件代理创建的,而不是使用人类驱动的表单。在 2005 年的最后一个季度中,面向机器的 eBay 平台处理了 80 亿个服务请求。也是在 2005 年,eBay 通过 Web Services API 交易的数量全年增加了 84%。很明显,如果没有 eBay 为软件代理提供和人类平等参与的服务,对于处理大宗销售或采购的人来说,在线拍卖业务几乎是无法管理的。
对于第三个示例,我们转向 Web 提要。内容联合格式(如 Atom 和 RSS)使新一代的新闻阅读软件足够强大,使您免于单调、重复和低效地依赖书签式网站和 Web 浏览器,从而能够只阅读感兴趣的新闻。如果没有 RSS 和 Atom 实现的那种机器可理解的内容表示,这些新闻阅读器也就不会存在。
总之,如果万维网中的网站只包含人类授权专用于该站点 的内容,则内容将不能在网站之间共享、重新混合以及重用。为了智能地聚合、组合并处理基于 Web 的内容,代理、Web 爬虫、阅读器以及其他设备必须能够读取和理解该内容。这就是为什么改进 Web 应用程序中机器和人为生成的内容之间的交互需要深入了解当前可用的各种机制的原因。
考虑 W3C 上语义 Web 活动页面中的场景。大多数人都有一些可以在 Web 上访问的个人信息。您可以看到您的银行结单、访问您的在线日历应用程序,还可以通过不同的照片共享服务在线发布照片。意思表达不准确。建议为:但是您能在日历中看到您的照片并提醒自己这些照片拍摄的位置和目的吗?又能在您的日历中看到显示出来的银行结单条目吗?
创建此类的新数据整合要求致力于整合的软件能够理解和解释特殊网页上的数据。该软件必须能够从 Flickr 中检索显示您的照片的网页,并发现这些照片的拍摄日期、时间及其描述。还需要理解如何解释在线银行结单中的交易。同样的软件必须能够理解在线日历(日、周和月)的各种视图,并且弄清网页的哪些部分表示哪些日期和时间。
图 1 中的示例介绍嵌入式元数据如何能够使您的最终用户应用程序获益。首先是将数据存储在几个位置。Flickr 托管照片,Citibank 提供对银行交易的访问,Google Calendar 管理您的每日日程安排。您希望在一个基于日历的界面(missMASH)中体验所有数据,以便在与您的星期三购买杂货信用卡交易的同一周的视图中出现星期天在 State Park 处拍摄的照片。为此,为 missMASH 提供动力的软件必须使用相同的方式理解来自 Flickr、Citibank 和 Google Calendar 帐户的数据,以便在集成的环境中将数据重新混合。
图 1. 日历视图中银行业务和照片的 mashup
有一套完整的技术使应用程序创作者能够进行此类集成。其中一些技术已发展成熟,而另外有一些则刚刚起步,尚未得到很好的认知。入门的障碍随技术的不同而不同,某些技术能够提供更为有效的实用程序。
在此系列文章中,我们将探讨如何使用可用于人类和计算机在 Web 上共存的不同机制来实现上述场景。我们将介绍和解释每一种技术,然后介绍如何应用这些技术来整合银行结单、照片和日历。此外还将评估每种技术的强项和弱项,希望使您更容易在各种选择间作出决定。
|
开始着手对比技术时,首先概括出评估技术的标准是非常有帮助的。下面的列表描述了使 Web 不仅对人类友好、而且对机器可读的方法的必要属性。我们不指望找到一种能够成功满足这一切的技术,实际上也找不到。最后,我们希望构建一个矩阵,帮助您为手头的工作选择适当的工具。下面是我们将要使用的标准:
-
权威性的数据
-
无论技术的细节如何,最终获得的总是对机器可读的数据,理论上,此数据就是相应的人类友好网页上显示的内容。您需要获得确保这种关系保真度的技术;并且您应该确信数据能够真实地反映您在网页上所读取的内容。
数据的权威是测量这种信任程度的一个轴。如果数据表示由数据的所有者发布,我们就认为这种数据表示具有权威性。如果它派生自另外一种第三方数据表示,则此数据表示不具有权威性。
表现性和可扩展性
-
如果您使用一种技术创建了一个包含有您家通讯地址的网页,并且该网页既对人类友好也可以机器读取,那么您就不需要再使用其他不同的技术来向同一网页上添加天气预报。我们希望此标准能最大程度地降低任何特殊应用程序中涉及的软件组件数量,这样就会增加应用程序的健壮性和可维护性。
除此之外,如果技术能很好地容纳新数据,并且表现性足够强,使我们有信心在将来能够表示之前无法预期的数据,这正是我们所期待的。
不要重复自己(DRY)
-
如果网页有被引用两次的相同数据,那么您不应该写两次。需要更改时,重复会导致不一致,您不会希望通过过多的循环来创建人类和计算机都能理解的网页。
如果多个数据表示 是由同一个数据存储生成的,那么这并不一定适合这些数据表示内的重复。
数据局部性
-
同一文档中相同数据的多个表示应该尽可能位于文档的独立单元中。例如,若在一个涉及菜谱各种配料的大网页中,一个段落是此页面的惟一部分,那么您需要一种技术,将所有关于这些配料的机器可读数据包含在该段中。
除了容易创作和读取之外,数据局部性还允许网页的访问者将数据的人类表示和机器表示复制并粘贴在一起,无需再复制网页的多个不连续部分即可完全捕获感兴趣的数据。这反过来促进了技术和数据的更广泛采用和重用。(请向曾经学过 HTML 的人咨询 View Source 命令的广泛应用。)
现有的内容保真度
-
我们希望让技术发挥作用,但不需要创作者重写网站。技术能够使用有关网页的专用(机器可使用的)含义越多越好。但是有一个警告:但是有一个警告:技术不应该由于其解释而过于自由,因为从现有网页有可能产生不正确的解释。
例如,一种新技术规定 HTML 的 u 标记所包含的文本表示出版物的名称,该名称在某些情况下可能导致正确的语义,但也有可能许可很多不正确的解释。尽管此示例中的标记可能具有权威性(因为它源于数据的所有者),但由于网页的创作者不想通过这种方式使用 u HTML 标记,因此,它仍然不正确。
标准遵从性
- 您应该能够在使用这些技术的同时,坚持采用公认的 Web 标准,如 HTML(HTML 4 或 XHTML 1)、CSS、XML、XSLT 等等。 工具
- 如果没有工具理解所使用的技术,创建不仅能被人类读取而且也能被机器处理的数据 Web 是没有什么价值的。我们希望技术具有很多可用工具的基础。如果不是这样,我们希望其中一种技术能够轻松实现新工具。工具应该不仅仅有助于创作利用某种技术的网页,而且还可以根据这种技术使用机器可读取的数据。 整体复杂性
-
Web 已经存在很长时间了,但人类和机器间共享数据的需求近来才得到广泛关注。Web 上可用的大量内容由很多人授权并进行维护,重要的是,我们推荐的所有技术都非常容易被尽可能多的 Web 创作者理解和采用。
如果过于复杂而无法采用,那么最好的技术也和没有技术一样无价值。最理想的技术应该门槛很低、学习曲线比较平缓。它们应该不需要实现广泛的编码,而一旦实现也不需要花费过多的精力来维护。
|
本节简要介绍当前使机器与人类能够在 Web 上共存所使用的主要技术。此系列中后续的文章将详细探讨这些技术。
从这个角度来看,Web 上的数据通过(至少)两个地址(URL)来表示:一个地址采用人类可用的格式,一个地址采用机器可用的格式。支持并行 Web 的技术包括 HTML link 元素以及 HTTP 内容协商。它们涉及创建 HTML 规范,此类规范关注 HTML 中对两个链接元素的需求:a 元素,它是可见的,并且只能出现在网页的正文中;link 元素,它是不可见的,并且只能出现在网页的页眉。HTML 规范设计者根据这些代理的用途和目标受众对它们进行推理,将根据它们的 rel(relationship)属性解释前面的链接,并利用这些属性执行感兴趣的功能。
例如,Web 提要和提要阅读器使人类能够跟读当天发布的大量信息。使用提要阅读器时,您通过 XML 文件(通常是 RSS 或 Atom 文件)的地址(URL)进行初始化。在大多数情况下,此类提要中机器可用的数据在 Web 上具有一个并行 URL,在这个 URL 中,您可以找到相同内容的人类可读的表示。有很多技术可以通过有用、可维护的方式获得此并行 Web。此系列的第 2 部分将详细讨论并行 Web,包括在多个 Web 地址上获得相同数据的优缺点。此系列未来的文章将涉及允许在一个 Web 地址内包含多个数据表示的技术。
算法包含利用随机算法的应用程序从人类可读的网页中产生机器可用的数据。一般来说,算法分为两类:
- Scrapers,它通过检查网页的结构和布局提取数据
- Natural-language processors,它试图读取和理解网页的内容,以便生成数据
这些技术是专门为网页的结构或内容具有高度可预测性、不太可能出现变化的情况而设计的。算法通常都是由寻求使用数据的人来开发的,同样没有任何标准组织对其进行管理。通常在访问数据时,如果数据的所有者未发布这些数据的机器可读表示,那么这些算法将是惟一的选择。此系列的第 3 部分将详细讨论算法。
微格式就是一系列的数据格式,它利用现有的(X)HTML 和 CSS 构造将原始数据嵌入到以人类为目标的网页的标记中。微格式以一组设计准则为指向,根据社区的一致意见而开发。微格式社区的目标是向现有的(X)HTML class 属性中添加语义,该属性最初的主要目标是表示。
由于有了算法,微格式有别于本系列中的很多其他格式,原因是它不是某些组织(如 W3C 或 IETF)内的标准过程的一部分。与此不同,它们的原则侧重于特定问题,并且利用 Web 上当前的行为和使用模式。这通常给微格式朝着改进 Web 微内容(例如,博客)发布的目标前进带来了良好的开端。微格式的成功典范是 hCard 和 hCalendar 规范。这些规范允许微内容发布者在其 HTML 内容中轻松嵌入属性,使机器能够获取少量信息,如微内容网站中的名片或活动信息。
Gleaning Resource Descriptions from Dialects of Languages(GRDDL)允许网页发布者将其 XHTML 或 XML 文档与将网页作为输入的转换相关联,然后输出机器可用的数据。GRDDL 可以使用 XSL 转换从网页中提取特定词汇。GRDDL 还允许使用配置文件文档,而这些文档又为特定类别的网页和数据词汇引用适当的转换算法。
GRDDL 使权威的内容能够动态转换,因而在跨越人类和机器之间的鸿沟方面有着巨大的潜力。尽管这与并行 Web,但仍存在着很大的差异。GRDDL 为机器提供按需转换内容的机制,并且不会创建替代数据表示的永久版本。近来,W3C 已经特许 GRDDL 工作组 为 GRDDL 制定推荐的规范。
嵌入式 RDF 是在 XHTML 文档内使用现有元素和属性嵌入 RDF 数据的技术。eRDF 试图通过可扩展性和表现性来均衡标记的简化。在较小的范围内,它和 RDFa 以及 GRDDL 一起,显式利用 Resource Description Framework(RDF)对它所编码的机器可用数据进行建模。eRDF 和微格式共享重用现有词汇的原则,目的是在 XHTML 文档中嵌入元数据。eRDF 寻求通过使用名称空间和任意的 RDF 图形数据模型扩展到一小组格式和词汇之外。
嵌入式 RDF 当前不是由标准机构开发的。eRDF 类似于微格式,是在网页中对数据进行编码以帮助机器获取联系信息、事件和位置信息(以及其他类型的数据),从而为功能强大的软件代理提供支持。
RDFa 以前称为 RDF/A,是直接在 XHTML 内包含 RDF 数据的另一种机制。RDFa 使用现有和新 XHTML 元素和属性的一个固定集合,以使网页能够包含任意数量和任意复杂性的机器可读的语义数据,以及为人类显示的标准 XHTML 内容。RDFa 是由 W3C RDF-in-XHTML 任务组 最新开发的,它是 XHTML 和 Semantic Web Deployment 工作组的共同成果。
就像 eRDF 一样,RDFa 利用名称空间和 RDF 图形数据模型来支持很多数据结构和词汇在一个网页中的表示。RDFa 致力于成为在网页中包含随机的、机器可读数据的通用解决方案。
|
本文解释了创建人类和机器都可以访问的万维网的挑战,并说明了其动机所在。我们开发了一个示例集成场景,该场景可以由无数的共存机制所支持。我们还讨论了对本系列其他部分将详细介绍的技术进行比较和评估的标准。
请继续关注第 2 部分,我们将详细探讨广泛应用的并行 Web 技术。
学习
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
- eBay Web Services:查看该资源,以进行使用情况统计。
- Citibank:查看用于在线银行、投资、借贷以及更多方面的功能。
- GRDDL:阅读有关 RDF/XML 语法补充机制的 Gleaning Resource Descriptions from Dialects of Languages 规范。
- RDF in XHTML:从 W3C 的这个特别工作组中了解更多内容。
- 微格式 hCard 规范:尽量使用这个简单、开放、分布式的格式来表示人员、公司、组织和位置。
- 微格式 hCalendar 规范:在 iCalendar 标准的基础上探讨简单、开放、分布式的日历和事件格式。
- Tim Berners-Lee:访问网站,拜访万维网联盟的总监、MIT 的 CSAIL 的高级研究员兼 Southampton ECS 计算机科学的教授。
- Links:探讨 HTML 规范,以便获得有关超文本和交互文档的更多信息。
- Alexa 列表中的前 500 名:查看美国站点的流量排名。
- W3C:在万维网联盟上深入讨论多种技术。
- IETF:拜访因特网工程工作小组。
- RDF:查阅 Resource Description Framework 的规范。
- Semantic Web Activity:在 W3C 的这个主页上了解有关语义 Web 的更多内容。
- Atom 1.0 扩展(James Snell,developerWorks,2005 年 10 月):在这个由两部分组成的系列文章中,阅读有关 Atom 1.0 Syndication Format 的大量推荐扩展的详细信息。
- developerWorks Web 开发专区:通过阅读专门探讨 Web 技术的文章和教程来增加您的站点开发技巧。
- developerWorks 技术事件和网络广播:通过这些技术会话了解您关注的领域的最新动向。
获得产品和技术
- Google Calendar:尝试使用这个在线日历来组织您的时间表,并与朋友和家人共享事件。
- eBay:访问这个流行的在线拍卖网站。
- Flickr:访问这个流行的在线照片共享应用程序和 Web 2.0 站点。
- Microformats:浏览一组在设计时首先考虑人类其次才是为机器的简单、开放的格式。
- RDFa:深入探讨设计用于表示 XHTML 中 RDF 的所有概念的规范。
- Embedded RDF:查看此规范,它允许您在 HTML 页面中嵌入 RDF 的子集。
- developerWorks RSS 和 Atom 提要:获得更多信息,并构建您自己的内容。
- AtomEnabled.org:访问这个出色的站点,了解有关 Atom 的信息、内容联合格式和协议。
- IBM 试用软件:使用可直接从 developerWorks 下载的软件构建您的下一个开发项目。
讨论
- developerWorks blogs:参与开发人员社区。
- developerWorks forums:参与任何一个以 Web 为中心的论坛。
|
| Lee Feigenbaum 是位于 Cambridge, MA 的 IBM 的 Internet 技术团队的顾问软件工程师。他当前的工作主要集中在研究和开发战略和软件上,以便在企业内利用语义 Web 技术。过去的研究和开发主题包括即时消息软件、结构化注释系统和 DHTML 客户机运行时。他定期在他的博客 TechnicaLee Speaking 中描述有关语义 Web 的内容和其他主题。 | |
|
| Elias Torres 是位于 Cambridge, MA 的 CIO 组织中的 IBM WebAhead 实验室的高级软件工程师。他现在主要研究的领域包括语义 Web、Web 2.0 和社会性软件。在 IBM,他曾经开发、部署和宣讲过基于开放源码软件的两个主要合作服务,即 Blog Central 和 Wiki Central。他是 Apache Software Foundation 开放源码项目的积极提交者,并且他还参与了 W3C 中语义 Web 标准的开发。他的博客是 http://torrez.us。 | |
本文探讨了如何创建人类和机器皆可访问的万维网,介绍了多种技术方案,包括并行Web、算法、微格式等,并分析了各自的优势与局限。

被折叠的 条评论
为什么被折叠?



