热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

对比分析:推理引擎Jess、Racer和Jena的性能与特点

本文对比分析了三种基于Java的推理引擎:Jess、Racer和Jena。Jess(JavaExpertShellSystem)源自CLIPS,后者是一种经典的基于规则的前向推理引擎。Racer则专注于本体和语义推理,支持OWL和SWRL等标准。Jena是一个强大的语义网框架,不仅支持RDF和SPARQL查询,还具备推理能力。通过性能测试和功能对比,本文探讨了它们在不同应用场景下的优劣。
Jess(Java Expert Shell System)是基于Java语言的CLIPS推理机。 CLIPS是基于产生式的前向推理引擎,它是一种非常基础性的东西,许多上层的推理任务,都要映射到这个推理引擎上来运行。     CLIPS(或Jess)原则上可以处理各种领域的推理任务,只要系统能够为CLIPS提供这个领域的特有领域规则(产生式形式给出)和事实信息 (Assertion 形式给出)。 本体推理作为一类应用,当然也可以映射到CLIPS推理机上进行推理,但必须为推理机提供本体领域的有关规则。例如,要用 CLIPS(Jess) 进行OWL的推理,就要以产生式规则的形式,向系统中输入OWL的每种语言成分的含义的有关规则。有了这些规则后,就可以用CLIPS对OWL形式给出的 本体进行推理了。同理,若对DAML形式给出的本体进行推理,就需要向CLIPS中提供DAML的每种语言成分的含义的有关规则。    Jess(CLIPS)的优点是:推理机是开放的,用户提供不同的规则系统,就可以进行不同领域的推理工作,用户可以对推理机的推理能力进行扩展。 但,作为前向推理系统,Jess用空间换时间,推理会产生大量的中间数据,空间效率很低;同时,由于Jess(CLIPS)是通用推理引擎,不可能提供针 对各种具体领域的优化能力,使得这种推理机制的效率很难优化。

   现在,针对本体的推理,越来越多地集中在了几种标准的本体语言上,如OWL、 DAML、RDFS/RDF等,这样,研究者给出效率更高的,针对这些具体应用的推理机。象RACER、FaCT、Pellet等就是这类具体有强烈针对 性的推理机。它们的优点是:效率很高,使用上也非常方便;缺点是:不是通用推理机,将推理能力限定在几种具体的本体语言上,而且用户很难对它进行扩展。    值得强调的是,RACER、FaCT、Pellet采用描述逻辑作为理论基础,算法采用Tableau 算法。这些系统都做了大量的优化工作。

   Jena是面向语义Web的应用开发包,包含的内容比较全面,推理机只是其中一部分。 Jena提供的推理机也和RACER、FaCT、Pellet等一样,是针对本体的推理机,但Jena本身并不是‘推理机设计专家’,它自身包含的推理机 基本上就是一种CLIPS配合本体领域产生式规则的前向推理系统。因此,它的运行效率不是很高。好在现在有DIG接口, DIG有点象数据库中的ODBC,允许前端挂接到后台不同的推理引擎上。这样,在Jean中,也可以使用RACER、FaCT、Pellet这样更‘专业 ’些的推理机。

   综上所述,可做如下区分:    1. Jena中的推理引擎和RACER都是针对具体本体语言的推理机,针对性强,效率高。    2. Jess是层面更低的,通用的CLIPS推理机。

   这就可以解释:为什么当用户使用owl表示本体时,Protege会用Jena或RACER等推理,而当用户使用class/slot表示本 体时,Protege仅能使用Jess。  其实,从能力上,Jess 也可以完成owl推理(需要输入相应的产生式规则库),只是效率低。


转载于:https://www.cnblogs.com/bnuvincent/archive/2010/08/23/1806765.html


推荐阅读
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 深入解析JMeter中的JSON提取器及其应用
    本文详细介绍了如何在JMeter中使用JSON提取器来获取和处理API响应中的数据。特别是在需要将一个接口返回的数据作为下一个接口的输入时,JSON提取器是一个非常有用的工具。 ... [详细]
  • 本文介绍如何通过SSH协议使用Xshell远程连接到Ubuntu系统。为了实现这一目标,需要确保Ubuntu系统已安装并配置好SSH服务器,并保证网络连通性。 ... [详细]
  • 本文探讨了在Java中实现系统托盘最小化的两种方法:使用SWT库和JDK6自带的功能。通过这两种方式,开发者可以创建跨平台的应用程序,使窗口能够最小化到系统托盘,并提供丰富的交互功能。 ... [详细]
  • 如何彻底清除顽固软件如360
    本文详细介绍了如何彻底卸载难以删除的软件,如360安全卫士。这类软件不仅难以卸载,还会在开机时启动多个应用,影响系统性能。我们将提供两种有效的方法来帮助您彻底清理这些顽固软件。 ... [详细]
author-avatar
mobiledu2502927877
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有