(续上期)

  主 体

  当然,故事到此并未结束,因为对于那些实际上相同的概念,如邮政编码,两个数据库可以用不同的标识符来标识。如果一个程序想要比较或合并这两个数据库中的信息,那么它必须知道两个数据库中的这两个不同的标识符实际上都是用来标识相同概念的。因此,在一个理想化的程序中,必须要有一种方式来发现那些不同数据库中的相同概念。

  这个问题的解决,需要借助于语义网络的第三个基本组件——主体(ontology,它是由一组相关信息构成的)。从哲学上讲,主体论是指关于存在的本质以及何种事物存在的理论。这里,人工智能和网络研究人员们根据他们的需要对主体的词义进行了一些变更,对他们而言,一个主体就是一个文档或文件,这些文档或文件从形式上定义了各个项之间的关系。网络中一个典型的主体需要具备一个分类(taxonomy)和一系列推理规则。

  分类定义了对象的类及其之间的关系。例如,一个地址可以被定义为一种场所,城市编码可以被定义为只应用于场所,等等。类和子类以及各个实体(entities)之间的关系的引入,为各种网络应用提供了非常强大的工具。我们可以通过赋予类各种属性,并且规定子类可以继承这些属性,来表达实体之间的大量关系。例如,如果城市编码必须是属于城市这个类的,而每个城市通常都有它们的网址,那么即使没有一个把城市编码和网站直接相连的数据库,我们也可以讨论与该城市编码相关联的网址。

  主体中的推理规则提供了更为强大的功能。一个主体可以表达这样的规则:如果一个城市编码与一个州编码相关联,并且一个地址使用了该城市编码,那么这个地址也具有相关州的编码。”这样,程序可以立刻进行如下推理:位于伊萨卡的康奈尔大学的地址,必然在纽约州,而纽约州又在美国,所以这个地址应当采用美国标准的地址格式。尽管实际上计算机并不理解这些信息,但是对于用户而言,计算机现在似乎正用一种懂语义的方法高效率地处理着这些信息。

  因而,对于定义了主体页的网络,我们就有了一种解决专业术语问题的方法。对于网页中的项或者XML编码的意义可以通过从网页到主体的指针来定义。当然,如果我指向的是一个把地址定义为美式邮政编码的主体,而你指向的却是一个把地址定义英式邮政编码的主体,那么以前的老问题就又会出现了。如果主体(或其他网络服务)能提供一种等价关系:即在一个主体或两个主体中,都含有美式邮编和英式邮编是等价的这样一条信息,那么这种混淆就可得以澄清。

  当两个数据库指向不同的地址定义时,前面我们要“小丑们去招待我们客户的方案就部分上得以解决了。一个程序如果用不同URIs来标识不同的地址概念,那么它就不会混淆它们,而且实际上它将发现这两种概念之间本来就是有联系的。接着,程序就会调用一项服务,这项服务先取出一系列邮政地址(由第一种主体定义),然后通过辨认并且除去邮政信箱和其他一些不合适的地址,它可以把邮政地址转换成一系列物理地址(由第二种主体定义)。由于有了主体所提供的结构和语义,所以服务商提供这种服务就容易得多了,同时它的使用也变得更为简捷了。

  主体可以从许多方面提高网络的功能。它能用非常简捷的方式来提高网络搜索的精确性。搜索程序只能搜索那些有精确概念的网页,而不能搜索那些关键词不明确的网页。在更为高级的应用中,可以通过主体把一个页面上的信息与相关的数据结构和推理规则联系起来。这样的一个网页范例可以在http//www. cs. umd. edu /hendler找到,如果你的浏览器访问了该页,那么你将看到普通页面上的标题是詹姆斯·A·亨德勒博士。作为一个人,你能立刻找到与之相链接的关于亨德勒博士的略传,然后从那里了解到亨德勒在布朗大学获得博士学位。然而,对于一个计算机程序而言,如果想要获得这些信息,则将非常复杂。它必须猜出这个信息可能是一个传记,并且还需要理解传记里的英文。

  实际上,从计算机处理的角度来说,这个页面实际是与一个定义了关于计算机系信息的主体页相链接的。例如,在该大学任教的教授,通常都具有博士学位。在网页上通过(不通过普通的网络浏览器显示)主体概念来标识亨德勒是在一个“实体得到博士学位的,而这个实体则是由URI http//www. cs. umd. edu/hendler(布朗大学的网页)来定义的。此外,计算机还可以发现诸如亨德勒是哪个研究项目的成员、他的电子邮件地址等等之类的信息。由于计算机可以立即处理所有的信息,所以它可以回答各种查询(如亨德勒博士是在哪里获得学位的)。而在现今的网络中,这一步通常是由人通过筛选搜索引擎搜索到的大量信息来实现的。

  另外,这种标注也为开发那些能处理复杂问题(这些问题的答案不在一个网页上)的程序带来了许多方便。假如你想找到去年交易会上遇到的一位女士,但你只记得她姓库克,而忘记了她的名字,此外,你还记得她是在你的一个客户的公司工作,她的儿子在你的母校上学。智能搜索程序可以从大量名字是库克的网页中进行筛选,略去那些关于厨师、烹调,以及库克岛之类的网页(译注:英文中cook(库克)还有厨师、烹调的意思),找到那些是在某个公司(而且该公司也在你的客户名单中)工作的库克,并且通过超链接连到他们子女的网页,以查明他们是否是在你所要求的学校里就读。

  代 理

  当人们编写的程序可以从各种地方收集网页内容,并且处理这些信息,与其他程序交换信息处理的结果时,语义网络的强大功能才算是真正实现了。当越来越多的供计算机阅读的网页和自动服务(包括其他代理)成为可能时,这种软件代理的效力就会大幅度的增长。语义网络促进了这样一种共同作用:即当数据有了语义之后,即使是在那些没有进行过特别的协同工作设计的代理之间也可以互相传递数据。

  相互交换由语义网络中的统一语言(这种语言是通过信息和规则来表达逻辑推理模式的,而这些信息和规则是由主体来描述的)所编写的核对信息是代理的诸多功能中的一个非常重要的方面。例如,如果库克女士的联系信息已经被一个在线服务找到了,但是,非常令人奇怪的是该在线服务却把她的地址定位在了约翰内斯堡。对于这个结果,你自然想要核实一下,因此你通过你的计算机要求该项服务对它的搜索结果进行一下核对。通过把其内部的推理翻译成语义网络的统一语言,该服务很快就对这个结果进行了核对。你计算机上的推理引擎也立刻证实,这个库克女士的确符合你的要求,而且如果你仍然怀疑的话,它还可以提供相关的网页。尽管语义网络潜在的强大功能还远远没有开发出来,但是,现在已经出现了的一些这方面的软件,它们的确可以利用这种网络统一语言的初级版本,按照前述的方式来交换核对信息。

  语义网络的另外一个重要特征是关于数字签名的。数字签名被加密成一串串数码,计算机和代理可以用这些数码来核实提供信息的人或部门是否可信。当一条付费给在线销售商的信息送到你的帐户程序时,你当然希望确定这不是隔壁黑客少年伪造的信息。在对信息来源进行核实以前,代理必须对它们从语义网络上读到的任何语句都保持怀疑态度(当然,我们希望人类也能更多的这样做)。

  尽管许多非语意的网络自动服务早已存在了,但是应用程序,如代理,却无法确定某一特定服务的具体位置。找到所需服务的位置的过程通常称为“服务发现”。只有当一种共同的语言把一种服务描述的使其他代理可以理解该服务所提供的功能并且也知道怎样利用它时,上述过程才能得以实现。服务和代理可以把这些描述储存在类似于黄页的目录里,以便使别人能了解它们的功能。

  一些低水平的“服务发现方案现在已经实现了。如微软公司的即插即用程序,利用它可以把不同种类的元件连接起来。再如太阳微系统公司的吉尼程序(Jini),它可以把各种服务连接起来。然而,这些方案都只是停留在结构和语法的层次上,而且它们都非常依赖于一系列预先确定了标准化功能描述。而进行标准化功能描述有很大的局限性,因为我们不可能预见所有未来的需要。

  恰当设计的语义网络可以从整体上协助人类知识的演进

  与此相比,语义网络就更为灵活了。主体是在语义网络上进行讨论所必须的“词汇,消费者和生产商的代理可以通过交换主体来进行沟通。当代理们发现新的主体后,它们甚至可以自发形成新的推理能力。此外,有了语义之后,更加便于我们利用那些只是部分上符合要求的服务。

  在语义网络的一个典型过程中,通常会用到一种称为“值链”的东西。信息沿着值链从一个代理传递到另一个代理,每个代理都给它增加一个值,最终就会形成终端用户所要求的产品。值得指出的是,当按照要求自动创立复杂的值链时,代理不仅会利用语义网络,而且还会采用一些人工智能技术。当然,也正是由于语义网络所提供的基础和框架,才使得这些人工智能技术更为可行。

  把所有这些特点放在一起,就出现了本文开头部分的情景——皮特和露西利用他们那具有强大功能的代理,去选择诊所。他俩的代理通过服务广告找到其他的服务和代理,然后把任务分散后委派给它们。例如,它们可能通过一个信托服务,来得到一份供应商列表,然后确定它们中的哪一个符合所要求的治疗过程并且在保险理赔的范围之内。而这个供应商列表则可能是由其他搜索服务提供的。这些活动的过程构成了一条链,分布在网络上的大量信息沿着这条链不断地减少,直到最后,剩下的信息都是符合皮特和露西的时间要求及其他要求的。

  下一步,语义网络将冲出虚拟的世界,进入到我们现实世界中。由于URIs可以指向包括物理实体在内的任何东西,这就意味着我们可以用RDF语言来描述诸如手机和电视之类的装置。这类装置可以把它们的功能(即它们可以做什么,它们怎样控制这类软件代理)以广告的形式发放出来。这比起那些低水平的方案,如即插即用软件,要灵活得多了。这种语义学的方法为我们打开了一个激动人心的全新世界。

  例如,在今天,要实现家庭自动化,就需要对各种电器进行仔细的配置,以便使它们可以一起工作。而通过对这些器件的功能进行语义描述,就可以使我们在最少的人员介入情况下解决上述问题。一个小例子便是当皮特接电话时,它的音响的声音降低了。他完全可以不必为每一个电器编制具体的程序,而一劳永逸地使他家所有具备音量控制功能的电器都拥有这种功能。如电视机、DVD播放器,甚至是他仅仅拿回来一个晚上的手提电脑上的媒体播放器。

  研发描述设备功能(如屏幕的尺寸)以及用户参数的标准是这个方案中最为关键的一步,但这已经实现了。这一标准是建立在RDF基础上的,称为复合功能/优先层面(Composite Capability/Preference ProfileCC/PP))。首先,它将让手机和其他的非标准的网络客户程序描述它们自己的特性,以便网页内容能够很快与之相适应。然后,当我们引入各种处理主体和逻辑的语言之后,设备可以自动查找并且调用各种服务和其他设备来处理新加入的信息和功能。例如,不难想象,你的网络可以使你的微波炉去访问冷冻食品生产商的网站,从而得到最佳的烹调参数。

  细致而准确的搜索

  语义网络并不仅仅限于我们前面所讨论的个人应用,它还有助于整个人类知识的进化。小群体独立行动时的高效率和广泛的社会合作之间存在着矛盾,而人们的努力常常会受制于这种矛盾。小群体可以快速而高效率的创新,但是,这也会导致一些不被大多数人所了解的亚文化概念的出现。因此,在一个大的群体里协调行动,就会非常缓慢,而且还必须要进行大量的交流和沟通。我们现实世界里的各种不同群体之间之所以能够互相了解,是由于个人的想法会随着时间的推移而不断得到更为广泛的了解。当整个社会需要一种通用的语言时,最为核心的一个过程就是把各种亚文化彼此关联起来。实际上,两个独立的群体通常会形成一些非常相似的概念,因此,通过描述它们之间的关系,我们就可以获益匪浅。比如一本芬兰语-英语字典,或者是度量衡转换表等等。尽管相同的概念是用不同的名词来表示的,然而我们依然可以利用不同名词之间的关系进行合作和沟通。

  语义网络把每一个概念用一个简单的URI来标识,这就使得每个人都可以非常省力的表达他们自己所发明的新概念。语义网络中统一的逻辑语言还将会把这些概念逐步的链接到整个网络中。这样的结构将使得软件代理们能够对人类的知识和工作方式进行智能分析,从而为我们生活、工作和学习提供一系列新的工具。

[Scientist American2001年第4]