本体论(ontology)是哲学概念,它是研究存在的本质的哲学问题。但近几十年里,这个词被应用到计算机界,并在人工智能、计算机语言以及数据库理论中扮演着越来越重要的作用。
然而,到目前为止,对于本体论,还没有统一的定义和固定的应用领域。斯坦福大学的Gruber给出的定义得到了许多同行的认可,即本体论是对概念化的精确描述(Gruber,1995),本体论用于描述事物的本质。
在实现上,本体论是概念化的详细说明,一个ontology往往就是一个正式的词汇表,其核心作用就在于定义某一领域或领域内的专业词汇以及他们之间的关系。这一系列的基本概念如同构成一座大厦的基石,为交流各方提供了一个统一的认识。在这一系列概念的支持下,知识的搜索、积累和共享的效率将大大提高,真正意义上的知识重用和共享也成为可能。就此意义而言,Web语言XML(Extensible Markup Language,可扩展标识语言)就是本体理论的一项典型应用;.xml文档就是一个标签化的词汇表。
本体论可以分为四种类型:领域、通用、应用和表示。领域本体包含着特定类型领域(如电子、机械、医药、教学)等的相关知识,或者是某个学科、某门课程中的相关知识;通用本体则覆盖了若干个领域,通常也称为核心本体;应用本体包含特定领域建模所需的全部知识;表示本体不只局限于某个特定的领域,还提供了用于描述事物的实体,如"框架本体",其中定义了框架、槽的概念。
可见,本体论的建立具有一定的层次性,在教学领域而言,如果说某门课程中的概念、术语及其关系看成是特定的应用本体,那么所有课程中的共同的概念和特征则具有一定的通用性。
Ontology 这个哲学范畴,被人工智能界赋予了新的定义,从而被引入信息科学中。然而信息科学界对 Ontology 的理解也是逐步发展才走向成熟的。1991 年 Neches 等人最早给出 Ontology 在信息科学中的定义:"给出构成相关领域词汇的基本术语和关系,以及利用这些术语和关系构成的规定这些词汇外延规则的定义。"后来在信息系统、知识系统等领域,随着越来越多的人研究 Ontology,产生了不同的定义。1993 年 Gruber 定义 Ontology 为"概念模型的明确的规范说明"。1997 年 Borst 进一步完善为"共享概念模型的形式化规范说明"。Studer 等人对上述两个定义进行了深入研究,认为 Ontology 是共享概念模型的明确的形式化规范说明,这也是目前对 Ontology 概念的统一看法。
Studer 等人的 Ontology 定义包含四层含义:概念模型(Conceptualization)、明确(Explicit)、形式化(Formal)和共享(Share)。"概念模型"是指通过抽象出客观世界中一些现象(Phenomenon)的相关概念而得到的模型,其表示的含义独立于具体的环境状态;"明确"是指所使用的概念及使用这些概念的约束都有明确的定义;"形式化"是指 Ontology 是计算机可读的,也就是计算机可处理的;"共享"是指 Ontology 中体现的是共同认可的知识,反映的是相关领域中公认的概念集,它所针对的是团体而非个体。Ontology 的目标是捕获相关领域的知识,提供对该领域知识的共同理解,确定该领域内共同认可的词汇,并从不同层次的形式化模式上给出这些词汇(术语)和词汇之间相互关系的明确定义。
尽管定义有很多不同的方式,但是从内涵上来看,不同研究者对于 Ontology 的认识是统一的,都把它当作是领域(领域的范围可以是特定应用中,也可以是更广的范围)内部不同主体(人、机器、软件系统等)之间进行交流(对话、互操作、共享等)的一种语义基础,即由 Ontology 提供一种共识。而且 Ontology 提供的这种共识更主要的是为机器服务,机器并不能像人类一样理解自然语言中表达的语义,目前的计算机也只能把文本看成字符串进行处理。因此,在计算机领域讨论 Ontology,就要讨论如何表达共识,也就是概念的形式化问题。
Semantic Web 中的 Ontology?
Ontology 研究热点的出现还与 Semantic Web 的提出和发展直接相关。
Semantic Web 是 Tim Berners-Lee提出的又一个概念。Tim Berners-Lee 认为,当前的 Web 是供人阅读和理解的,它作为一个越来越大的文件媒体,并不利于实现数据和信息的自动化处理。新一代的 Semantic Web 将不仅仅为人类而且能为计算机(信息代理)带来语义内容,使计算机(或信息代理)能够"理解"Web 内容,进而实现信息处理的自动化。他认为 Semantic Web 不是与当前 Web 隔离的另一个 Web,而是对当前 Web 的扩充,在 Semantic Web 中,信息的语义经过完好的定义,能够更好地促进计算机和人之间的相互合作。?
为了实现 Semantic Web 的功能,需要提供一种计算机能够理解的、结构化的语义描述机制,以及一系列的推理规则以实现自动化推理。Semantic Web 的挑战在于提供一种语言,
它能够表述数据和在数据中进行推理的规则,而且需要这种语言能够将目前存在于知识表述系统之中的规则能够被应用到 Web 上。
在 Tim Berners-Lee 的 Semantic Web 框架中,有几个关键的组成元素。它们分别是 XML,RDF(S) 和 Ontology。
XML 允许用户定义自己的文件类型,允许用户定义任意复杂的信息结构,但是 XML 只具有语法性,它不能说明所定义的结构的语义。XML 之所以在 Semantic Web 中处于重要的地位与 XML 是一种载体语言、XML 命名机制等有很大的关系。
在 Tim Berners-Lee 看来,语义的描述是通过 RDF 进行的。RDF 的两个特性对此有着特殊的贡献:
(1)RDF 是一种由资源、属性、属性值组成的三元结构。这种三元结构形似句子中的主语、谓语、宾语之间的关系。一个描述资源的 RDF 语句,就如同"某件事具有什么样的属性"这样的句子一样有效。它能够表明一种对事物存在状态的断言,可以表述大多数情况下计算机需要处理的知识。
(2)RDF 的另一个重要特点就是组成 RDF 的资源、属性、属性值这三个元素都必须是被 URI(统一资源标识)所标识的。由于 RDF 利用 URI 来对信息进行编码,它意味着被 RDF 所引用的任何资源、属性和属性值都是经过预先定义的、不具二意性的概念。?
由于 RDF 能够表示陈述句,并且主语、谓语和宾语的三个组成元素都是通过 URI 所标识的,所以它具有语义表述的特性。但 Semantic Web 的要求还远不止于此,Semantic Web 还需要加入逻辑功能:Semantic Web 需要能够利用规则进行推理、选择行动路线和回答相关问题。Ontology 是 Semantic Web 实现逻辑推理的基础。?
Semantic Web 研究者也认为,Ontology 是一个形式化定义语词关系的规范化文件。对于 Semantic Web 而言,最典型的 Ontology 具有一个分类体系和一系列的推理原则。其中,分类体系定义对象的类别和类目之间的关系。实体之间的类/子类关系对于 Web 应用具有重要的价值。在 Ontology 中,还可以为某个类添加属性来定义更多的类目关系。这些类目关系提供了的推理的基础。
为了 Semantic Web 研究者为了实现对 Ontology 的描述,在 RDF 的基础之上,发展了 RDFS。RDFS 借助几个预先义的语词(如 rdfs:Resource, rdfs:Class, rdf:Property, rdfs:subClassOf, rdfs:subPropertyOf, rdfs:domain, rdfs:range)能够对概念之间的关系进行有限的描述。为了更方便全面地实现 Ontology 的描述,W3C 在 RDFS 的基础之上,借助了 DAML 和 OIL 的相关研究,正在积极推进 OWL(Web Ontology Language)的应用。自 2004 年 2 月 10 日,OWL 已经成为了一个 W3C 推荐的标准。
Gene Ontology
为了查找某个研究领域的相关信息,生物学家往往要花费大量的时间,更糟糕的是,不同的生物学数据库可能会使用不同的术语,好比是一些方言一样,这让信息查找更加麻烦,尤其是使得机器查找无章可循。Gene Ontology (GO) 就是为了解决这种问题而发起的一个项目。
Gene Ontology 中最基本的概念是 term 。GO 里面的每一个 entry 都有一个唯一的数字标记,形如 GO:nnnnnnn,还有一个 term 名,比如 "cell", "fibroblast growth factor receptor binding",或者 "signal transduction"。每个 term 都属于一个 ontology,总共有三个ontology,它们分别是 molecular function, cellular component 和 biological process。
一个基因 product 可能会出现在不止一个 cellular component 里面,也可能会在很多 biological process 里面起作用,并且在其中发挥不同的 molecular function。比如,基因 product "cytochrome c" 用 molecular function term 描述是 "oxidoreductase activity",而用 biological process term 描述就是 "oxidative phosphorylation" 和 "induction of cell death",最后,它的 celluar component term 是 "mitochondrial matrix" 和 "mitochondrial inner membrane"。
Gene Ontology 中的 term 有两种相互关系,它们分别是 is_a 关系和 part_of 关系。is_a 关系是一种简单的包含关系,比如 A is_a B 表示 A 是 B 的一个子集。比如 nuclear chromosome is_a chromosome。part_of 关系要稍微复杂一点,C part_of_D 意味着如果 C 出现,那么它就肯定是 D 的一部分,但 C 不一定总会出现。比如 nucleus part_of cell,核肯定是细胞的一部分,但有的细胞没有核。
Gene Ontology 的结构是一个有向无环图,有点类似于分类树,不同点在于 Gene Ontology 的结构中一个 term 可以有不止一个 parent。比如 biological process term "hexose biosynthesis" 有两个 parents,它们分别是 "hexose metabolism" 和 "monosaccharide biosynthesis",这是因为生物合成是代谢的一种,而己糖又是单糖的一种。
Gene Ontology 使用 Oxford Dictionary of Molecular Biology (1997) 中的定义,在分选时还要参考 SWISS-PROT, PIR, NCBI CGAP, EC…中的注释。建立起来的标准不是唯一的标准(这是 GOC 所一直强调的),自然也不规定每个研究者必须遵循这套控制字集系统。所采用的动态结构 (dynamic structure) 使用 DAGs(Directed Acyclic Graphs) 方式的 network,将每一个 ontology 串连起来,形成树状结构(hierarchical tree),也就是由前面所说的"is a"和"part of"两种关系。
由于 GO 是一种整合性的分类系统,其下的 3 类主 ontology 我们前面说是独立的,但是无论是 GOC 原初的设计还是我们的使用中其实都还是存在一定的流程关系。一个基因/蛋白质或者一个 ontology 在注解的过程中,首先是考虑涉及在构成细胞内的组分和元件 (cellular component),其次就是此组分/元件在分子水平上所行使的功能 (molecular function),最后能够呈现出该分子功能所直接参与的生物过程 (biological process)。由于这是一种存在反馈机制的注释过程,并且整个系统是动态开放实时更新的,因此在某种程度上说它具有纠错的能力。
TAMBIS 计划是目前唯一实现了在概念和联系层次上集成信息源的系统。但是还有其他一些相关计划正在研究之中。
比如 BioKleisli (宾夕法尼亚大学计算机系),采用 Mediator(调节器)技术实现了若干数据源的集成,其后的 K2/Kleisli 系统还利用数据仓库实现了 OLAP(联机分析处理)。
DiscoveryLink (IBM 研究院),基于 Wrapper/ Mediator(包装器/调节器)实现了信息源集成,提出了查询的分解和基于代价的优化策略。
TAMBIS (曼彻斯特大学计算机系)基于 Wrapper/ Mediator 实现了信息源集成,借助 BioKleisli 中的 CPL 语言作为查询语言并给出了查询优化的方法。通过 TaO(TAMBIS Ontology)本体定义为用户浏览和查询处理提供领域知识。
TINet (GSK 公司和 IBM 研究院),基于多数据库中间件 OPM(Object-Protocol Model,对象协议模型)定义数据源的对象视图,其 CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)服务器使各数据源 Wrapper(包装器) 更易于扩充。
但是他们都存在一定的缺陷。BioKleisli 系统查询能力相对较弱,而且并未给出查询优化策略;TAMBIS 系统和 DiscoveryLink 系统集成的数据源数量相对还很少,后者在查询处理中并未运用领域知识,因而查询分解也未从语义角度考虑;TINet 系统中的查询处理能力不强。
联系客服