主要本体表示语言的比较研究,本文主要内容关键词为:本体论文,语言论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
【分类号】G250.76 G354.4
本体(Ontology)作为一种共享的、对概念的形式化(规范化)描述,其内部概念在专业领域中至关重要。本体确定了对象的类,并将这些类组织成为一种上下位类等级体系(Subclass-hierarchy)。每个类都有若干属性,类之间的关系及元素间的关系也是组成本体的一部分。本体技术在知识表示、自然语言处理、信息检索、数据库、知识管理、多代理系统等领域中将会起到重要作用。本体还是语义网基础结构的主要组成部分。这些应用前景的实现依赖于本体表示语言的表示功能。
本体的表示语言(Ontology Specification Language),又称本体的构建语言或者是标记(标示)语言。作为表示本体的语言工具,应该具有如下的基本功能:
(1)为本体的构建提供建模元语(Modeling Primitives)。
(2)为本体从自然语言表达形式转化为机器可读的逻辑表达形式提供工具。
(3)为本体在不同系统间的导入和输出提供标准的机读格式。
本体可以用自然语言描述,也可以用框架(Framework)、语义网络或逻辑语言描述和表示。截至2003年11月,笔者综合考察了德克萨斯大学计算机系基于知识系统研究小组总结的正在进行中的知识库系统与奉体研究项目门户网站(Some Ongoing KBS/Ontology Projects and Groups),加州大学伯克力分校Stuart Russell的人工智能门户(AI on the Web)以及John Bateman的本体门户网站(Ontology Portal),共查找到28种本体表示语言。
笔者从若干方面比较了其中13种本体表示语言的各种重要特征。本文所采用的评价标准和框架是西班牙马德里大学理工分校的Asunción Gómez-Pérez和Oscar Corcho制定的[1]。
首先说明下列表1~表8中符号所代表的意义:“+”代表该语言具有此特征项。“-”代表该语言不具有此特征项。“+/-”代表该语言虽然暂时不具备这一特征项,但是可以在现有条件下通过调整设法使该种语言具备此特征项,或者该语言在未来新发布版本中将会具备这一特征项。“?”代表某特征项在该语言现有的技术文件中没有相关描述。“ND”-Not Restricted,代表某特征项在该语言中可以自己定义,这说明该语言不一定具备此特征项。
1 本体表示语言描述功能的比较
表1列出了本体表示语言应该具备的最主要元素。表中的特征项“过程参量(Procedure)”与“函数(Function)”并无本质区别,只是称谓不同。具有“过程参量”的语言通常都是高级编程语言。
表1 领域知识主要元素的定义
┌─────┬───┬────┬────┬───┬────┬────┬───┬─────┐
│ │ │N-ary
││ │││Produ-│Formal│
│\特征项 │Con- │rela-
│Func-
│Prose-│Insta- │Axioms │ction │seman-│
│ \ │cepts │tions
│tions
│dures │nces│公理│Rules │tics │
│语言\│概念 │多元│函数│过程 │ 实例 ││产生式│形式 │
│ │ │关系││ │││ 规则 │语义 │
├─────┼───┼────┼────┼───┼────┼────┼───┼─────┤
│Ontolingua│
+ │ + │+
│
+ │
+│ + │ -│
+ │
├─────┼───┼────┼────┼───┼────┼────┼───┼─────┤
│ OKBC│
+ │+/- │ +/-
│
+ │
+│ +/-
│ -│
+ │
├─────┼───┼────┼────┼───┼────┼────┼───┼─────┤
│ OCML│
+ │
+│+
│
+ │
+│ + │ +│
+ │
├─────┼───┼────┼────┼───┼────┼────┼───┼─────┤
│ Loom│
+ │
+│+
│
+ │
+│ + │ +│
+ │
├─────┼───┼────┼────┼───┼────┼────┼───┼─────┤
│ Flogic │
+ │ +/-│ +/-
│
- │
+│ + │ -│
+ │
├─────┼───┼────┼────┼───┼────┼────┼───┼─────┤
│XOL
│
+ │ - │ - │
- │
+│ - │ -│
+ │
├─────┼───┼────┼────┼───┼────┼────┼───┼─────┤
│SHOE │
+ │
+│ - │
- │
+│ - │ -│
- │
├─────┼───┼────┼────┼───┼────┼────┼───┼─────┤
│ RDF(S)│
+ │
+│ - │
- │
+│ - │ -│
- │
├─────┼───┼────┼────┼───┼────┴────┼───┼─────┤
│OIL
│
+ │
+│ + │
- │ ND
ND │ HD │
- │
├─────┼───┼────┼────┼───┼────┬────┼───┼─────┤
│CycL │
+ │
+│ + │
- │
+│ + │ +│
+ │
├─────┼───┼────┼────┼───┼────┼────┼───┼─────┤
│OWL
│
+ │
+│ + │
- │
+│ + │ +│
+ │
├─────┼───┼────┼────┼───┼────┼────┼───┼─────┤
│Topic Maps│
+ │
+│ + │
- │+
│ - │ -│
- │
├─────┼───┼────┼────┼───┼────┼────┼───┼─────┤
│DAML+OIL │
+ │
+│ + │
- │+
│ + │ +│+ │
└─────┴───┴────┴────┴───┴────┴────┴───┴─────┘
概念、多元关系(N—ary relations)和实例在几乎以下列出的所有语言中都得到了定义。OKBC和FLogic是基于框架的语言(Frame-based Languages)(注:又叫作框架式语言,是框架式系统以及专家系统的开发工具。它的特点是将专家系统的领域知识与推理机分开。知识库部分可由使用者输入不同的领域知识,这样就可以开发出各种领域的专家系统。框架式知识表示方式也是语义网采用的表达方式。),这两种语言中的“关系(Relations)”可以利用框架(Frames)来表示,但却不是语言中所提供的专门元素(Special Elements)。在OKBC语言中,没有为所有OKBC指令的执行提供演绎推理和存储的保证,公理(Axioms)仅在应用软件平台(API)的答问式(Tell&Ask)部分才得到支持。
由表1可以看出,OCML[2]和OKBC[3]的各项指标均为“+”,它们均具有“过程(Procedure)”和“产生式规则(Production rules)”,所以同时也可以作为高级编程语言使用。这两种语言均是基于Lisp(注:Lisp:20世纪70年代末,人工智能领域开发的推理编程语言。)的语言,因而对于普通的使用者来说不易掌握。具有严格语法的编程语言都具备形式语义(Formal Semantics),它的存在可以保证语言指令不产生歧义。CycL[4]、OWL[5]和DAML+OIL[6]语言除了“Procedure”以外,其它各项指标齐备,均是领域知识定义完备的本体表示语言。尽管Ontolingua[7]缺乏产生式规则,但也是对领域知识定义较为完备的语言。早期的本体表示语言(除了XOL[8]之外)如SHOE[9]、RDF(S)[10]和OIL[11]都缺乏形式语义。
1.1 概念(Concepts)
表2中关于概念的特征项有四个:元类(Metaclasses)、分区(Partitions:是概念中最为详细的与其它概念不相交的成分)、属性(Attributes)和属性分面(Facets)。每种语言都具有“实例属性”、“域内范围(即概念的范畴)”和“属性类型限制”。只有OCML和Loom[12]具备“过程知识(Procedural Knowledge)”。这一属性分面是通过特定关键词定义的,譬如OCML中的“:prove-by”或者“;lisp-fun”,以及Loom中的“:is-primitive”或“:implies”。Flogic[13]的最小基数限制为系统设置的缺省值“1”,且不能更改,最大基数限制为正整数“1”或“N”。
表2 概念的定义
从表2中可以看出,Loom的每项指标均为“+”。它是对“概念”定义得最为完备的语言。OWL和CycL对概念定义的完备程度仅次于Loom。Ontolingua、OKBC和OCML在概念定义方面不及OWL。
1.2 分类体系(Taxonomies)
表3中,关于分类体系的特征项有4项:下位类、详尽的下位类分区、不相交的元素和非下位类。下位类是分类体系中最基本的元素,每种语言都具备此特征项。
表3 分类体系的定义
┌─────┬───────┬──────┬───────┬────────┐
│\特征项 │ │ Exhaustive│ ││
│ \ │ Subclass of │
subclass │ Disjoint││
│语言\│ 子类 ││Decompositions│Not subclass of │
│ │ │详尽的下位 │不相交的元素 │ 非下位类 │
│ │ │ 类分区│ ││
├─────┼───────┼──────┼───────┼────────┤
│Ontolingua│
+ │
+│+ │
+/- │
├─────┼───────┼──────┼───────┼────────┤
│OKBC │
+ │-
│ -│-
│
├─────┼───────┼──────┼───────┼────────┤
│OCML │
+ │ +/-
│+/-
│ - │
├─────┼───────┼──────┼───────┼────────┤
│Loom │
+ │ + │
+ │
+/- │
├─────┼───────┼──────┼───────┼────────┤
│Flogic│
+ │ +/-
│+/-
│
-│
├─────┼───────┼──────┼───────┼────────┤
│XOL
│
+ │
-│ -
│
-│
├─────┼───────┼──────┼───────┼────────┤
│SHOE │
+ │
-│
- │
-│
├─────┼───────┼──────┼───────┼────────┤
│ RDF(S)│
+ │
-│
- │
-│
├─────┼───────┼──────┼───────┼────────┤
│OIL
│
+ │-
│ +/- │
-│
├─────┼───────┼──────┼───────┼────────┤
│CycL │
+ │ +/-│+/-
│ND │
├─────┼───────┼──────┼───────┼────────┤
│OWL
│
+ │ +/-│ +/- │
-│
├─────┼───────┼──────┼───────┼────────┤
│Topic maps│
+ │
-│
- │
-│
├─────┼───────┼──────┼───────┼────────┤
│DAML+OIL │+ │
+│ +│+
│
└─────┴───────┴──────┴───────┴────────┘
OIL具有特征项“非下位类”的定义,因此也能够自己定义“不相交的元素”。FLogic虽然不具备除“下位类”以外的特征项,但是用自己的公理部分可以自定义出后三个特征项。DAML+OIL的各项指标均为“+”,是分类体系定义得最为完整的语言。Ontolingua和Loom次之。
1.3 关系和函数(Relations and Functions)
“关系”是本体的必备元素。任何知识表示语言都具有此元素,当然定义的程度各不相同。而函数则不是任何语言都具有的。表4中对关系与函数的定义分为7项,分别是:关系函数、一元关系、二元关系、多元关系、真实性限制和运算关系定义。
表4 关系与函数的定义
┌──────┬──────┬─────┬──────┬───────┬──────┬──────┬──────┐
│\特征项│Functionas │Exhaustive│Slots: │N-ary │Type│Integnty││
│ \│Relations
│ │binary rels.│rels./funcs
│constraints │constraints │Operational │
│语言\ │关系函数│概念:一 │ 属性: │多元关系 │类型限制│真实性 │defs.运算
│
│││ ││ │││关系定义│
│││元关系│元关系 │与函数││ 限制 ││
├──────┼──────┼─────┼──────┼───────┼──────┼──────┼──────┤
│Ontolingua │ + │ +
│
+│ +
│ + │ + │ - │
├──────┼──────┼─────┼──────┼───────┼──────┼──────┼──────┤
│ OKDC │
+│ -
│
+│ +/- │ + │ + │ - │
├──────┼──────┼─────┼──────┼───────┼──────┼──────┼──────┤
│ OCML │
-│+/-
│
+│+ │ + │+
│ + │
├──────┼──────┼─────┼──────┼───────┼──────┼──────┼──────┤
│Loom│
+│
+ │
+│+ │ + │ + │
+│
├──────┼──────┼─────┼──────┼───────┼──────┼──────┼──────┤
│
Flogic
│
+│ +/- │
-│ +/- │ + │+
│
+│
├──────┼──────┼─────┼──────┼───────┼──────┼──────┼──────┤
│ XOL
│
-│
- │
+│
+/-│ + │-
│
-│
├──────┼──────┼─────┼──────┼───────┼──────┼──────┼──────┤
│ SHOE
│
-│
- │
+│ +
│ + │-
│
-│
├──────┼──────┼─────┼──────┼───────┼──────┼──────┼──────┤
│RDF(S)│
-│
- │
+│ +
│ + │-
│
-│
├──────┼──────┼─────┼──────┼───────┼──────┼──────┼──────┤
│OIL │
+│
- │
+│ +/- │ + │ - │
-│
├──────┼──────┼─────┼──────┼───────┼──────┼──────┼──────┤
│CycL│
+│ +/- │
+│+ │ + │-
│ +/-│
├──────┼──────┼─────┼──────┼───────┼──────┼──────┼──────┤
│OWT │
+│ +/- │
+│+ │ + │-
│
+/- │
├──────┼──────┼─────┼──────┼───────┼──────┼──────┼──────┤
│Topic Maps │
+│ -│
+│- │ + │-
│ - │
├──────┼──────┼─────┼──────┼───────┼──────┼──────┼──────┤
│DAML+OIL│+
│ +│+
│
+/-│ + │-
│ - │
└──────┴──────┴─────┴──────┴───────┴──────┴──────┴──────┘
绝大多数语言都把概念表示为一元关系,属性表示为二元关系,FLogic将概念和属性均表示为三元关系(Ternary)。
函数在不同的语言中表现出了极大的语义差异。在基于知识交互格式(KIF-Knowledge Interchange Format)的Ontolingua中,函数是一种特殊的关系:N元关系中第N个元素与前边的N-1个元素绝不相同。在Loom中,函数被看做是一种可以计算的关系,只要给定必要的参数,就可以利用函数计算出结果来。在OCML中,函数被看做是建模元素,它所起的作用与“关系”完全不同。在FLogic中,函数是被定义于概念中的方法。它们的值可以通过演绎规则计算出来。
关系和函数的类型限制是每种语言都具备的。“真实性限制”用于约束或控制系统或者代理在执行该语言指令时的空间状态和执行日志。可用于编程的传统知识表示语言都具有。这一特征项在新的知识表示语言中已被废止。“运算关系定义”只在OCML、Loom和FLogic中得到了正式定义。
Ontolingua本身不具备“运算关系定义”,但是它的“关系”定义中具有“过程附件”,该附件可以被“答问式”界面激活,进行简单的运算并显示结果。Loom各项指标均为“+”,是对于关系和函数的定义最完整的语言。Ontolingua和OCML次之。
1.4 实例(Instances)
所有的语言都具有“实例”的定义。表5中对于实例定义的特征项有三个:概念的实例、关系的实例和声明。
表5 实例的定义
┌──────┬────────┬──────┬───────┐
│\特征项│Instances of││ │
│ \│concepts│Facts
│ │
│
语言 \ │概念的实例 │ 关系的实例│ Claims声明 │
├──────┼────────┼──────┼───────┤
│ Ontolingua│ + │
+│- │
├──────┼────────┼──────┼───────┤
│OKBC│ + │
+│- │
├──────┼────────┼──────┼───────┤
│OCML│ + │
+│- │
├──────┼────────┼──────┼───────┤
│Loom│ + │
+│- │
├──────┼────────┼──────┼───────┤
│Flogic │ + │
+│- │
├──────┼────────┼──────┼───────┤
│XOL │ + │
+│- │
├──────┼────────┼──────┼───────┤
│SHOE│ + │
+│+ │
├──────┼────────┼──────┼───────┤
│RDF(S)│ + │
+│+ │
├──────┼────────┼──────┼───────┤
│OIL │ + │ND │ND│
├──────┼────────┼──────┼───────┤
│CycL│ + │
+│+ │
├──────┼────────┼──────┼───────┤
│OWL │ + │
+│+ │
├──────┼────────┼──────┼───────┤
│ Topic Maps│ + │
?
│- │
├──────┼────────┼──────┼───────┤
│ DAML+OIL │ + │
+│+/-
│
└──────┴────────┴──────┴───────┘
全部特征项为“+”的语言有SHOE、RDF(S)、CycL和OWL,这几种语言对实例的定义最为完备。
1.5 公理(Axioms)
公理是衡量一种语言表示能力的最好标准。一种语言对公理的定义越丰富,它的表现力就越强。在表6中,公理有3种:一阶逻辑表达式、二阶逻辑表示式和自命名的公理。
表6 公理的定义
┌─────┬────────┬─────────┬─────────┐
│\特征项 │ lad-order logic│ 2nd-order logic │Named Axioms │
│ \ ││ │ │
│语言\│ 一阶逻辑表达式│ 二阶逻辑表达式 │自命名的公理 │
├─────┼────────┼─────────┼─────────┤
│Ontolingua│+
│
+ │ +│
├─────┼────────┼─────────┼─────────┤
│OKBC │+/- │+/-
│ +│
├─────┼────────┼─────────┼─────────┤
│OCML │ + │
- │ +│
├─────┼────────┼─────────┼─────────┤
│Loom │ + │
- │
- │
├─────┼────────┼─────────┼─────────┤
│
Flogic │ + │
- │
- │
├─────┼────────┼─────────┼─────────┤
│XOL
│ - │
- │
- │
├─────┼────────┼─────────┼─────────┤
│SHOE │+/- │
- │
- │
├─────┼────────┼─────────┼─────────┤
│ RDF(5)│+/- │
- │
- │
├─────┼────────┼─────────┼─────────┤
│OIL
│ND │
- │
- │
├─────┼────────┼─────────┼─────────┤
│CycL │ + │
+ │
+ │
├─────┼────────┼─────────┼─────────┤
│OWL
│ + │+/-
│
+ │
├─────┼────────┼─────────┼─────────┤
│Topic Maps│ - │ -│+/-
│
├─────┼────────┼─────────┼─────────┤
│ DAML+OIL│
+/- │ -
│- │
└─────┴────────┴─────────┴─────────┘
由表6中可以看出,XOL的各个特征项指标均为“-”,该语言不具备对公理的具体定义。Ontolingua和CycL对公理的定义最为完备,OWL次之。
1.6 产生式规则(Production rules)
产生式规则通常包含两个方面:前提条件和逻辑结果。前提条件中的“条件与”和“条件或”相当于逻辑学中的“合取-逻辑与”和“析取-逻辑或”。逻辑结果包含:真实值、过程的执行和知识库的更新三个方面。
产生式规则是高级编程语言的必备规则。Loom作为一种高级编程语言和知识表示语言具备该规则,而且在表7的五项指标中四项为“+”,是对产生式规则定义得最为完备的语言,CycL次之。
表7 产生式规则的定义
┌───────┬────────────────┬─────────────────────┐
│\特征项 │Premises前提│Consequent逻辑结果│
│ \ ├───────┬────────┼──────┬───────┬──────┤
│\│Conjunctive
│ Disjunctive
│Truth values│ Execution of│ Updating │
│ 语言 \ │逻辑与(And) │ 逻辑或(Or) │ 真实值│ procedures │ the KB│
│ │ │││ 过程的执行 │知识库的更新│
├───────┼───────┼────────┼──────┼───────┼──────┤
│ Ontolingua │ -│ - │
-│- │
-│
├───────┼───────┼────────┼──────┼───────┼──────┤
│ OKBC│- │ - │
-│- │
-│
├───────┼───────┼────────┼──────┼───────┼──────┤
│ OCML│+ │ + │
-│ +/- │
+│
├───────┼───────┼────────┼──────┼───────┼──────┤
│Loom │+ │ + │
-│
+ │
+│
├───────┼───────┼────────┼──────┼───────┼──────┤
│ Flogic │- │ - │
-│
- │
-│
├───────┼───────┼────────┼──────┼───────┼──────┤
│ XOL │- │ - │
-│
- │
-│
├───────┼───────┼────────┼──────┼───────┼──────┤
│ SHOE│- │ - │
-│
- │
-│
├───────┼───────┼────────┼──────┼───────┼──────┤
│RDF(S) │- │ - │
-│
- │
-│
├───────┼───────┼────────┼──────┼───────┼──────┤
│OIL
│ND│ND │ND │ND│ND │
├───────┼───────┼────────┼──────┼───────┼──────┤
│CvcL │+ │ + │+
│ND│ ? │
├───────┼───────┼────────┼──────┼───────┼──────┤
│OWL
│+ │ + │
+│
- │ - │
├───────┼───────┼────────┼──────┼───────┼──────┤
│ Topic Maps │
- │ - │
-│
- │ - │
├───────┼───────┼────────┼──────┼───────┼──────┤
│ DAML+OIL│+ │ + │+
│
- │ - │
└───────┴───────┴────────┴──────┴───────┴──────┘
在OIL中,产生式规则是一种“弱格式”的通用内含公理。FLogic、XOL、SHOE、RDF(S)和Topic Maps[14]都没有产生式规则的相关定义。
2 本体表示语言推理功能的比较
一种知识表示语言或编程语言的推理机制通常由八个方面构成,包括:推理引擎、自动分类、异常处理、推理能力、继承性、过程的执行、限制性检验和推论链。
由表8可以看出,具有完备的推理引擎的是FLogic、OIL和CycL。具有自动分类定义的语言有Loom、CycL、OIL和DAML+OIL,只有FLogic具有异常处理功能。对于继承性和推理的功能定义较为完备的语言有Ontolingua、OKBC、OCML、Loom、FLogie和CycL。“过程的执行”和“限制性检验”多为编程语言所具备。具有推论链定义的语言是OCML、Loom、FLogic、CycL和DAML+OIL。
表8 各种语言的推理机制
┌──────┬────┬──┬─┬───────┬────┬──┬───┬─────┐
│\概念的│推理引擎││ │ 推理│继承性 ││ │推论链│
│ \ 特征项││自 │异│ ││过 │限│ │
│\ ├─┬──┤│ ├───┬───┼─┬──┤│ ├───┬─┤
│ \│ ││动 │常│单│非│简│多 │程 │制│ │ │
│ 语言
\ │正│完 │分 │处│调│单│单│重 │的 │性│前│后│
││常│备 │类 │理│性│调│继│继 │执 │检│向│向│
││ │││ │ │性│承│承 │行 │验│式│式│
├──────┼─┼──┼──┼─┼───┼───┼─┼──┼──┼───┼───┼─┤
│ Ontolingua│- │ - │ - │- │+ │ +/- │+ │ + │+
│+ │- │- │
├──────┼─┼──┼──┼─┼───┼───┼─┼──┼──┼───┼───┼─┤
│OKBC│- │ - │ - │- │+ │+ │+ │ + │+
│+ │- │- │
├──────┼─┼──┼──┼─┼───┼───┼─┼──┼──┼───┼───┼─┤
│OCML│+ │ - │ - │- │+ │+/-
│+ │ + │+
│+ │+ │+ │
├──────┼─┼──┼──┼─┼───┼───┼─┼──┼──┼───┼───┼─┤
│Loom│+ │ - │ + │- │+ │ +│ +│ + │+
│+ │+ │+ │
├──────┼─┼──┼──┼─┼───┼───┼─┼──┼──┼───┼───┼─┤
│Flogic │+ │ + │ - │+ │+ │ +
│+ │ + │-
│- │+ │+ │
├──────┼─┼──┼──┼─┼───┼───┼─┼──┼──┼───┼───┼─┤
│XOL │- │ - │ - │- │ND│ND│ND│ ND │-
│- │- │- │
├──────┼─┼──┼──┼─┼───┼───┼─┼──┼──┼───┼───┼─┤
│SHOE│- │ - │ - │- │+ │ -
│+ │+
│-
│ -│ND│ND│
├──────┼─┼──┼──┼─┼───┼───┼─┼──┼──┼───┼───┼─┤
│ RDF(S) │- │ - │ - │- │ND│ ND │+ │+
│-
│- │ -│- │
├──────┼─┼──┼──┼─┼───┼───┼─┼──┼──┼───┼───┼─┤
│OIL │+ │ + │ + │- │+ │ -
│+ │+
│-
│ -│ -│- │
├──────┼─┼──┼──┼─┼───┼───┼─┼──┼──┼───┼───┼─┤
│CysL│+ │ + │ + │?│ +│ +/- │+ │+
│ ND│ ND │+ │+ │
├──────┼─┼──┼──┼─┼───┼───┼─┼──┼──┼───┼───┼─┤
│OWL │- │ - │ - │- │ +│ND│+ │+
│-
│ -│- │- │
├──────┼─┼──┼──┼─┼───┼───┼─┼──┼──┼───┼───┼─┤
│ Topic Maps│- │ - │ - │- │ND│
- │+ │-
│-
│ -│- │- │
├──────┼─┼──┼──┼─┼───┼───┼─┼──┼──┼───┼───┼─┤
│DAML+OIL│+ │ + │ + │- │ +
│
- │+ │+
│-
│ -│+ │+ │
└──────┴─┴──┴──┴─┴───┴───┴─┴──┴──┴───┴───┴─┘
所以,对推理功能定义完备的语言是Loom和Flogic,CycL次之。
3 结语
考察上文所述的13种本体表示语言在领域知识、概念、分类体系、关系和函数、实例、公理、产生式规则和推理功能这8个方面的定义,纵观这13种语言在每个方面各项指标的情况,可以得出以下结论:
(1)Loom是定义最完备、功能最齐全的本体表示语言,同时也是高级编程语言。它的欠缺在于对二阶谓词逻辑的表达和自命名公理的定义,以及实例的声明。新版本的Power-Loom在以上几个方面进行了改进。Loom还是一种基于DL的框架式语言,对一般的用户而言不易掌握。
(2)CycL也是一种较好的本体表示语言。它的缺点在于本身不是Web上的推荐标准,难以作为所有网络资源的标引规范使用。但是CvcL的学习与应用都较为便捷,普通用户可以通过学习较快掌握该语言的语法结构,而且CycL的背后有超大容量的CYC知识库,前台有良好的应用界面和推理引擎的支持,这使CycL具有优越的应用背景。OpenCye项目的目的就是要将CycL逐渐推广,为用户所接受。
(3)Ontolingua和OWL也是较好的本体表示语言。Ontolingua是一种KIF语言,本身依托着斯坦福大学KSL的Ontolingua服务器,具有较好的用户操作界面,但是它在推理功能上有欠缺。OWL语言由于本身是W3C的推荐标准,又具有与多种本体语言的兼容性和交互性,其底层语法符合XML标准格式,所以在对网络资源的标引和本体构建方面具有广阔的应用前景。目前,OWL的第三个子语言OWL Full的规范说明并未完成,现有的编辑工具也无法完全展示OWL这一新标准的所有优越性。所以OWL在应用前景方面的优越性仍然让人拭目以待。
(4)XOL作为一种较早开发的用于不同格式本体交互的语言,和其它语言相比,并不适用于本体的表示。
标签:公理系统论文;