语义网
一种能让计算机理解的新型Web内容形式,将引发对新的未知可能性的探索
作者: TIM BERNERS-LEE, JAMES HENDLER and ORA LASSILA
编译:毛向辉
语义网概述
至今为止,WWW大部分都被用作为人们服务的文档媒体,而不是能够自动控制的信息。为网页扩展面向计算机的数据,并且增加专为计算机使用的文档,我们就可以把Web变成一个语义网络。
计算机会根据关键名称定义的超链接和逻辑推理规则发现语义数据的含义。这种基础设施的最终结果就是能够刺激开发自动化的网络服务,例如强大的代理。
普通用户能够用现成的有语义标记功能的软件编写语义网页,增加新的定义和规则。
表达含意
知识表现
今天的Web搜索
除此之外,这些系统往往小心地对允许问的问题加以限制,这样计算机才能给与可靠的回答。问题就像数学中的哥德尔理论:任何足够复杂的系统如果是可用的,就必然存在不可解决的问题。 也就像那个最基本的悖论的复杂版本: “本句话是错误的。” 为避免此类问题,传统的知识表现系统通常各自都有针对其数据作推理的一套有限和特殊的规则。例如,一个基于家庭数据库的家谱系统,可能包含规则“叔叔的妻子是婶婶”。即使数据可以由一个系统传到另一个系统,规则则不然,由于规则所处的环境完全不同了,它往往不能运用到另一个系统中了。
在Web上增加逻辑性—— 使用规则去推理、选择行为的步骤并回答问题的方法—— 是语义网组织面临的一个任务。 这个任务涵盖了数学和工程化决策,使其更加复杂。逻辑必须强大到能够描述复杂的对象属性,但也不能太复杂,导致代理可能被一些悖论的问题问倒。幸运的是,通常我们大部分想表达的意思就像“六头螺钉是一种机器螺钉”这样的句子,稍加一些词汇表,用现在的语言就能将其表达出来。
开发语义网的两个重要技术已经就绪,它们是eXtensible Markup Language (XML) 和 Resource Description Framework (RDF)。 XML让每个人都能创建自己的标签,例如<zip code>、 <alma mater>,来对网页或页面的部分文字进行注释。 脚本,或者说是程序,可以将这些标签运用到复杂的应用中,不过程序编写者必须知道网页作者是如何使用每一个标签的。简而言之,XML允许用户在文档中加入任意的结构,但无需说明这些结构的含意 [见 "XML 和第二代Web," by Jon Bosak and Tim Bray; Scientific American, May 1999]。
-------------------------------------------------------------------------
语义网能使机器理解含语义的文档和数据,而不是语音和笔迹。
-------------------------------------------------------------------------
含意由RDF来表达。RDF中的代码包含一组组的三元组,每个三元组相当象句子中的主语、动词和宾语。这些三元组可以用XML的标签来描写。在RDF中,文档中的声明通常是某个事物(人、网页或其他任何东西)对于某些值(另一个人、另一网页)拥有某些属性(例如“是姐姐”,“是作者”)。这种结构用于描述由机器处理的大量数据,是非常自然的方法。如同使用网页上的链接一样,主语和宾语分别由Universal
Resource Identifier (URI)识别。(URL, Uniform Resource Locators,
是最普通的URI。)
动词也由URI识别,这样任何人只要通过在Web上定义一个URI,就能定义新概念、新动词。
一词多意使人类语言变得丰富,对自动处理而言却不是什么好事。想象一下,我雇了小丑信使服务,叫他们在客户生日的那天送去气球。但是,当服务将我的数据库中的地址传到它的数据库中时,并不知道我这里的“地址”指的是开票地址,大部分都是邮局信箱号码。结果,我雇的小丑去逗邮局工人们乐了,当然这并不是坏事,但是我最初的意图并非如此。 要解决这个问题,可以给每个概念应用不同的URI。这样,邮寄地址、开票地址等等都可以互相区分开。
三元组RDF 构成相关事物的网上信息。RDF使用URI 来对文档中的信息进行编码,而URI能够确保概念并非只是文章中的词,还能将其和人人都能在网上找到的一个唯一定义相联系。比方说,假设我们可以访问到人们的许多信息,包括他们的地址。如果我们要寻找住地位于特定邮政编码的人,我们需要知道哪个数据的哪个字段分别代表姓名和邮编。通过URI, RDF能这样声明“(field 5 in database A) (is a field of type) (zip code)”,而不必描述每个名词。
本体论(Ontology)
当然,事情并未到此结束。因为两个数据库可能对同一概念,例如邮政编码,采用不同的标识符,程序若要进行两个数据库之间信息的比较和合并,它就必须了解这两个标识符表示的是同一事物。在理想的情况下,对于遇到的任何数据库,程序必须有办法来发现这种同意的标识符。
分类定义对象的类别及其之间的关系。例如,地址可以定义为属于一种位置的类型,城市代码可以定义为仅用于位置,等等。类、子类,实体间的关系对于网上应用是非常强大的工具。 通过给类指定属性,允许子类继承类的属性,我们能够表达实体之间的大量关系。如果城市代码 必须属于城市类型,而城市通常有自己的网址,那么即使没有数据库直接将城市代码和网址相连,我们也能讨论与城市代码相关的网址。
代理
当许多程序被开发用来从不同的资源收集网页内容,处理信息和其他程序交换结果,将真正实现语义网络的力量。当出现更多的机器可读的网页内容和自助服务(包括其他的代理),这种软件代理的效率将呈指数级增长。语义网络提倡这样的协同作用,即使各代理之间并非明确设计为在一起工作,当数据随语义到达时,代理之间也能传送数据。
代理功能的一个重要方面是由语义网络的统一语言所写的“Proof”的交换,该语言通过应用规则和信息(如ontology中所指定的)表达逻辑推理。比如,某个在线服务找到了Cook 小姐的联系信息,而令人惊讶的是她在Johannesburg。当然,你要核对一下,所以你的计算机让服务来证明它的回答,服务立即将其内在的推理理由翻译成语义网络的统一语言,你计算机中的界面引擎证实了这个Cook 女士确实符合你的查询要求,如果你还有疑问,它能显示出相关的网页。尽管离真正发挥语义网络的潜能还很远,已经有一些程序可以按这种方法利用目前的统一语言初级版本来交换“证明”。
另一个重要的特性将是数字签名。数字签名是一段加密的数据,计算机和代理可以据此证明所附的信息是由特定的可靠来源提供。当你的会计应用程序收到一条信息,说明你欠某个在线零售商一定的金额,你当然想证明这是确实的,而不是由邻家那个黑客小子发来的假信息。代理应该对在语义网上读到的声明保持警觉,检查确认其信息来源之后才能相信。 (我们希望更多的人学会在网上这样操作!)
在没有语义的情况下,现在已经存在了许多自动的网上服务, 但是如果没有语义,其他一些程序,例如代理,则无法对执行某个特定功能的服务进行定位。这个过程称为服务发现,它的实现需要存在一种共同的语言来描述服务,让其他的代理都能“理解”该服务的功能并知道如何利用其功能。服务和代理可以宣传它们的功能,比方说,将这些功能描述放到类似于黄页的目录下。
目前有一些低层的服务发现的方案,例如,微软的Universal Plug and Play, 它专门用于连接不同类型的设备,还有Sun Microsystems的Jini,它的目的在于连接服务。但是,这些尝试仅仅是在结构或句法的级别上解决问题,较多地依赖于对一些事先确定的功能描述的标准化。标准化这个方法能达到的功能也就到此为止了,因为我们无法预见未来所有的需求。
-------------------------------------------------------------------------
经过正确设计,语义网络能够从整体上帮助人类知识的进化。
-------------------------------------------------------------------------
相反,语义网则灵活得多。通过交换ontology,这之中提供了讨论中需要的词汇,消费者和生产者的代理之间能达成共同的理解。当发现新的ontology时,代理甚至可以“提升”出新的推理能力。语义的应用也更易于去利用仅仅部分符合请求的服务。
通常的处理过程将涉及“价值链”的建立,信息的各个组成部分从一个代理传向另一个代理,每个代理都对其“增加价值”,以构成用户所要求的最终产品。别搞错:要按需建立复杂的价值链,一些代理除了语义网之外,还将利用人工智能技术。然而,语义网将为此类技术更为可行提供基础框架。
综合以上所有特性,就能实现本文最初提到的彼得和露西的代理实例。他们的代理将任务细分,分配给服务广告中找的其他服务和代理。例如,它们可以通过可靠的服务获取诊所清单,决定它们中的哪些符合特定的保险计划和治疗方案。诊所清单也可以由其他搜索服务提供。这些活动构成了一条链,大量在网上传播的(几乎没有什么费用)数据逐步筛减为彼德和露西所需的少量数据,以满足他们的日程安排和其他一些要求。
下一步,语义网将要突破虚拟的理论世界,延伸到实际应用中去。 URI能指向任何事物,包括物理实体,意味着我们能使用URI语言来描述诸如电话、电视机等设备。 这些设备可以将它们的功能加以宣传。它们能做什么,软件代理等如何对它们进行控制。这样的语义解决方案较Universal Plug and Play等的低层方案更为灵活,它打开了一扇通往更多神奇的可能性的门。
例如,现在的家庭现代化需要仔细对各个设备进行配置,以使它们协同工作。如果存在设备功能的语义描述,将帮助我们用最少的人工干预就实现自动化。一个小小的例子便是,当彼得答电话时,音响的音量自动调低了。对于音量控制这个功能,不需要为每个设备都一一编程,只要对该功能编码一次,就可以应用到所有宣布带有音量控制的本地设备,如电视机、DVD机,甚至是晚上带回家只用上一次的媒体播放器。
在这一领域,已经采取了第一步的具体行动,即对设备的功能(如屏幕大小)描述研究开发一个标准和用户喜好。该标准建立于RDF之上,称为Composite Capability/Preference Profile (CC/PP)。最初,它将让电话以及其他非标准的网上客户描述它们的特性,这样网上内容就可以按照它们的功能进行剪裁了。之后,当增加处理ontology和逻辑的语言完全多样性后,设备将能自动挑选出并使用服务和其他设备,来增强功能或增加信息。不难想象,有一天,你家的微波炉会向冷冻食品生产商的网址咨询最佳烹饪参数。
知识的进化
精确搜索
插入表情