《本体推理机及应用》由会员分享,可在线阅读,更多相关《本体推理机及应用(5页珍藏版)》请在金锄头文库上搜索。
1、2010 年 第 19 卷 第 9 期 计 算 机 系 统 应 用 Applied Technique 应用技术 163 本体推理机及应用 潘 超 古 辉 (浙江工业大学 计算机科学与技术学院 浙江 杭州 310023) 摘 要:摘 要: 随着语义 web 的迅速发展,基于本体的应用越来越多,本体推理机的应用也越来越为重要。本体推理机可用于推理和查询语义,是实现语义 Web 的关键技术之一。介绍了本体推理机及其分类、结构以及相关技术,介绍了几种典型的本体推理机;分析了本体推理机的应用及其发展的趋势。 关键词:关键词: 本体; 推理; 本体推理机 Ontology Reasoner and It
2、s Application PAN Chao, GU Hui (School of Computer Science and Technology, University of Technology, Hangzhou 310023, China) Abstract: With the rapid development of Sematic Web, application of ontology spring up and ontology reasoner application are widely used. Ontology reasoner is used to reason a
3、nd query semanteme, and is one key technology in implementing Sematic Web. This paper introduces the techniques, classification, and structure of Ontology reasoner, and then introduces several Ontology reasoners. Lastly, this paper summarizes the application and the future work to be done on this to
4、pic. Keywords: ontology; reasoner; ontology reasoner 1 引言 本体推理机是实现语义 Web 的关键技术之一。 目前一些本体推理系统已经用于推理和查询语义 Web (Sematic Web)1,其中比较典型的有 W3C 对本体进行测试的本体推理机2,DIG 基于描述逻辑实现的本体推理机3,一些集成在语义网开发平台(如 HP 实验室的 Jena4、德国 Karlsruhe 大学的 KAON25)和本体管理系统(如 IBM 的 SNOBASE系统)中的推理引擎。 各种本体推理系统所使用的推理算法和最优化技术存在差异。本文对当前一些主流本体推理机及
5、其结构分类进行研究,分析了典型的推理技术及常用推理机,然后给出本体推理机的应用。 。 2 本体推理机及其分类 推理是指依据一定的规则从已有的事实推出结论的过程。基于知识的推理则强调知识的选择和运用, 收稿时间:2009-12-28;收到修改稿时间:2010-01-28 完成问题求解。推理机(Inference Engine)常见于专家系统,它是对知识进行解释的程序,根据知识的语义,按一定策略找到的知识进行解释执行。 本体6(Ontology)是共享概念模型的的形式化规范说明。这个定义包含了四层含义:概念模型、明确、形式化和共享。概念模型是指通过抽象出客观世界中的一些现象的相关概念而得到的模型,
6、概念模型所表现得含义独立于具体的环境状态;明确指所使用的概念及使用这些概念的约束都有明确的定义;形式化指本体是能被计算机处理;共享指本体中体现的是共同认可的知识,反映的是相关领域中公认的概念集。即本体是对应用领域概念化的解释说明,为某领域提供了一个共享通用的理解,从而无论是人还是应用系统之间都能够有效地进行语义上的理解和通讯。一个非常简单的例子就是分类的层次结构,指明了类和它们之间的包含关系。 计 算 机 系 统 应 用 2010 年 第 19 卷 第 9 期 164 应用技术 Applied Technique 本体推理机主要是针对本体进行推理,目前针对本体的推理,越来越多地集中在了几种标准
7、的本体语言上,如 OWL7、DAML8、RDFS/RDF9等。 2.1 本体推理技术本体推理技术 目前而言,实现本体推理的主要方法有以下四种: 1) 基于传统描述逻辑10的推理方法。典型代表有 Pellet11、Racer12和 FaCT+13,它们都是基于传统 Tableaux 算法设计并实现的本体推理机,同时也引入了许多 Tableaux 算法的优化技术,从而使得它们的推理效率很高。 2) 基于规则的方法。本体推理作为一类应用,可以映射到规则推理引擎上进行推理。目前己经存在了许多现成的实现 OWL 到规则的转化工具。 目前基于规则方法实现的本体推理机系统典型代表有 Jess14和Jena。
8、 3) 利 用 逻 辑 编 程 方 法 。 基 于 演 绎 数 据 库(Deductive database)技术实现,典型的系统项目有F-OWL15, 德国卡尔斯鲁厄大学的 KAON2 也是一个采用这种技术方法实现的典型例子。 4) 基于一阶谓词证明器的方法。由于 OWL 声明语句能够很方便地转化为 FOL,因此也就可以很方便地利用传统的一阶谓词证明器实现对 OWL 的推理, 例如 Hoolet16本体推理机就是利用了 Vampire 一阶谓词证明器来实现本体推理。 2.2 本体推理机分类及其基本应用本体推理机分类及其基本应用 本体推理机系统的有各种分类方法。通常,按照本体推理机是否针对某些
9、具体本体描述语言,将本体推理机划分为专用和通用两大类: 1)专用本体推理机。 如 Racer 、 FaCT+、 Pellet等就专用本体推理机,它们支持的主要本体语言有RDFS,OWL 等,专用本体推理机效率较高,使用方便; 只是它将推理能力限定在几种具体的本体语言上,较难进行扩展。 2) 通用本体推理机。 典型的有 Jess, 它是开放的,用户只需要提供不同领域的推理规则,Jess 就可以对不同领域进行推理。通用本体推理机效率低,也不能提供针对各种具体领域的优化能力,使得这种推理机的效率很难被优化。 推理机都应实现以下的两个基本推理功能: 1) 检查本体的一致性。 保证本体一致性就是保证本体
10、中已获得的类和个体逻辑上的一致性,检验实例是否与类、属性和个体的所有公理约束相冲突。 2) 得到隐含的知识。 本体创建一般遵循在尽量简化本体的同时使得本体尽量包含足够多的信息。因为如果要在一个本体中声明出所有的语义关系,那么构建本体将是一件非常复杂而又繁琐的任务,也会导致本体过于庞大而难以处理;若本体设计简单,在实际应用中又需要本体中蕴含的语义信息,这时就需要本体推理机来获取本体中隐含的信息。 3 典型本体推理机 3.1 本体推理机的一般结构本体推理机的一般结构 一般地,本体推理机的系统结构由本体解析器、查询解析器、推理引擎、结果输出模块和 API 五大模块组成。其系统结构图见图 117。 图
11、 1 本体推理机的系统结构图 本体解析器:负责读取和解析本体文件,它决定了推理机能够支持的本体文件格式。解析性能的好坏决定了推理机是否支持对大本体文件的解析。 查询解析器:负责解析用户的查询命令。 推理引擎:是本体推理机的核心部件,负责接受解析后的本体文件和查询命令,并执行推理流程,推理引擎决定本体推理机的推理能力。目前大部分推理引擎是基于描述逻辑的。 结果输出模块:对推理引擎所推导出来的结果进行包装,满足用户的需求。它决定了本体推理机能够支持的文件输出格式。 API 模块:主要面向开发用户,一般有三部分,OWL-API、DIG(DL Implementation Group)接口以及编程语言
12、开发接口。OWL-API 为用户操作 OWL本体文件提供了一种标准接口。DIG 接口为描述逻辑推理机系统向外提供服务提供了一组标准的接口,作用类似于数据库中的 ODBC,它允许前端(如本体编2010 年 第 19 卷 第 9 期 计 算 机 系 统 应 用 Applied Technique 应用技术 165 辑器 Protege)挂接到后台不同的推理引擎上。另外本体推理机提供的常见编程语言接口主要有 Lisp 和Java 两种,大部分本体推理机是采用这两种编程语言实现的。 3.2 典型本体推理机系统典型本体推理机系统 Jena 是由 HP Labs(http:/www.hpl.hp.Com)
13、开发的 Java 开发,是一种产生式规则的前向推理系统,针对本体的推理。Jena 框架包含一个本体子系统(Ontology Subsystem),它提供的 API 支持基于OWL,DAML+OIL 和 RDFS 的本体数据; Jena 提供了ARQ查询引擎, 它实现SPARQL查询语言和RDQL,从而支持对模型的查询。 Jena的主要特点是它开源的。 Pellet 是由美国马里兰大学 College Park 分校MinSwap 实验室开发的一个本体推理机。 是一个基于Java 的开放源码系统,以描述逻辑作为理论基础,采用 Tableaux 算法。Pellet 是一个较完善的 OWL-DL推理
14、机,广泛支持个体推理,包括名义(nominal 枚举类)推理和合取查询,用户自定义数据类型和本体的调试支持。 Pellet 主要应用在本体开发、 发现和构建 Web Service 等方面。Pellet 效率较高,但是缺乏对本体规则语言 SWRL 的支持并且支持的本体查询语言不够全面;一般只是进行 A-Box 推理查询的时候考虑使用Pellet,而查询如果牵涉到 T-Box 推理则推荐使用Racer。 Racer 最初由德国的汉堡大学开发的基于描述逻辑系统的知识表达系统,采用 Tableaux 算法,它的核心系统是 SHIQ(描述逻辑的一种,它主要包含交、并、存在、任意、数量约束等构造算子)。
15、Racer 也可以对基于 RDFSOIL+DAML 和 OWL 知识库进行处理。 它提供支持多个 TBox(术语公理)和 ABox(断言事实)的推理功能。 给定一个 TBox 后,Racer 可以完成各种查询服务。 Racer 具有较强的本体一致性检查功能,在 TBox 方面推理能力较强,能够对大本体文件提供良好的支持,而且具有图形用户界面,并有详细的开发文档和示例代码,但是 Racer 不支持对枚举类和用户自定义数据类型的推理。 Jess 是一个经过扩充的 CLIPS(C Language Integrated Production System)版本, 由美国实验室分布式系统计算机组用 Java 实现的基于产生式的前向推理引擎。Jess 是性能良好的开放式推理机,采用经典的 Rete 算法, 支持正向和逆向推理, 在提供这个领域的相关规则和事实信息的前提下,原则上可以处理各种领域的推理服务。由于 Jess 是通用推理引擎,使得这种推理机制的效率很难优化。 KANO2 是管理 OWL-DL,AWRL,和 F-Logic 本体的基础设施,它由信息技术研究中心(FZI)的 IPE、卡尔斯鲁厄大学的 AIFB 和曼切斯特大学的 IMG 共同努力开发的。KANO2 是 KANO(也即 KANO1)的新一代产品,与 KANO1 最主要的不同在于支