`

Jess 7.0p1——Java平台规则引擎(一)

阅读更多

原始地址:http://javawei.blog.163.com/

 

1. 入门

1.1. 需求

 

Jess 是一个用 java 语言编写的程序库。因此要使用 Jess 你需要 Java 虚拟机( JVM )。你可以从 Sun Microsystems 上免费得到一个非常适合用于 Windows Linux Solaris 上的 JVM Jess 7 是兼容所有版本的 Java ,从开始的 JDK 1.4 到现在的最新版本 JDK1.5 。版本更老的编号为 4.x Jess 兼容 JDK 1.0 5.x 版本兼容的是 JDK1.1 Jess 6 工作在 JDK1.2 及以上版本。

在使用 Jess 前请先确认 JVM 是否正确安装并能正常工作。

使用 JessDE 集成开发环境,你需要 Eclipse SDK 3.1 版或更新版本,这个可以从 http://www.eclipse.org 获得。安装 JessDE 前请确认 Eclipse 是已经安装并能正常工作。

Jess 类库为另一种语言担任译员,这种语言我在本文档中称为 Jess 语言。 Jess 语言是一种高度专业化的 Lisp 形式语言。

我会认为读者你是将使用这两种或其中一种语言的一个程序员。并且所有的读者都至少有起码 Java 基础。另外你必须有一个 Java 运行系统和知道如何以一个简单的方法使用这个系统。你应该知道如何用它来:

·                      运行一个 Java 应用程序

·                      处理如 CLASSPATH 变量的配置问题

·                      编译 Java 源文件集(可选)

如果你没有对 Java 的环境有基本的熟悉,那么我建议你购买了关于 java 的基础的书籍。对与各种平台的 Java 软件以及丰富的教程和文档可以免费从 http://java.sun.com 上获得。

对于那些将要使用 jess 语言编写程序的读者,我假定你们已经熟悉了一般程序编写的原理。我会说明整个 Jess 语言,所以熟悉 Lisp 是不需要(虽然熟悉是有些用的)。此外,在可能范围内,我将努力说明基于规则系统的最重要的概念,因为它们适用于 Jess 。再次,我将假定读者对这些概念有了一定的熟悉程度和了解更多。如果不熟悉基于规则系统,你也许应当考虑购买一本关于这一主题的书籍。

许多读者都希望提高 Jess 的能力,无论是通过向 Jess 语言加入的命令(用 JAVA 语言写)或以 Java 应用的方式嵌入 Jess 库。另外一些人会想用 Jess 语言的 Java 集成能力来从 Jess 语言程序调用 Java 函数。在本文档专门针对这类读者的一些章节中,我将承担适度 Java 编程的知识。我不会教 Java 语言任何方面的知识,有兴趣的读者可到您当地的书店参阅相关书籍。

这个文档包含了一个目录 , 在很多书上这些主题也都被列举出来。

1.2 .准备

 

1.2.1 .安装包的组成

 

Jess 提供一个可用于所有支持平台的单独的 .zip 压缩包。这个单独的文件压缩包包含在 Windows UNIX ,或 Macintosh 系统上使用 Jess 的所有你需要(除了 JVM 你必须自己安装)的资源。当 Jess 是解压后,你应该有一个命名为 jess71a2 / 的目录。在这个目录路径有下列文件和子目录:

README

快速开始指导 .

LICENSE

关于 Jess 使用的您的权利信息 .

bin

一个包含 Windows 批处理文件 (jess.bat) 和一个 UNIX 脚本( Jess )的目录,你可以使用它们启动 Jess 命令提示符 .

lib

该目录含有作为一个 Java 档案文件的 Jess 本身。注意,这不是一个 点击 存档文件,你不可以通过双击它运行 Jess 。这是要注意的。在这个目录的 jsr94.jar 包中又包含了符合 JSR - 94 javax.rules )的 API

docs/

这是一个文档,以 “index.html” 为首页的 Jess 手册。 .

examples/jess

一个包含使用 Jess 语言编写的小程序的目录 .

examples/xml

一个包含使用 JessML, Jess's XML 规则语言编写的小程序的目录 .

eclipse

JessDE, Jess 集成开发环境 , 提供支持 Eclipse 3.0 的插件集。看这里的 安装说明

src (Optional)

如果这个目录存在,它包含全部的 Jess 规则引擎和开发环境的源代码,包括一个构建它的 Ant 脚本。

1.2.2 . 命令行界面

 

Jess 有一个交互的命令行界面。分布包括两个你能运行 Jess 命令提示符的脚本:其中一个用于 Windows ,另一个用于 UNIX 。它们两个都在 bin/ directory 目录下。运行适合你系统的那一个,然后你应该看到以下的界面:

C:\Jess71a2> bin\jess.bat

 

Jess, the Rule Engine for the Java Platform

Copyright (C) 2006 Sandia Corporation

Jess Version Jess71a2 9/5/2006

 

Jess>

 

这就是 Jess 的命令。尝试计算一个前缀数学表达式 " + 2 2 " 。不要忘记那些括号!

Jess> (+ 2 2)

4

Jess 计算了此函数,并打印结果。在这份文档的下一章,我们会发现 Jess 规则语言本身的语法。

通过 Jess 命令行执行 Jess 代码编写的文件,可以使用批处理命令:

 

Jess> (batch "examples/jess/sticks.clp")

Who moves first (Computer: c Human: h)?

在前面的例子应注意到,在 Jess> 提示符后键入命令, Jess 将在下一行响应命令。我将在整个这本文档中遵循本约定。

直接从操作系统提示符执行这样的 Jess 程序,你可以把程序的名字作为 Jess 脚本的一个参数,这样就可以启动:

C:\Jess71a2> bin\jess.bat examples\jess\sticks.clp

 

Jess, the Rule Engine for the Java Platform

Copyright (C) 2006 Sandia Corporation

Jess Version Jess71a2 8/28/2006

 

Who moves first (Computer: c Human: h)?

jess.console 类是一个简单的 jess 命令行界面的图形版。你在窗口的底部输入一个命令,结果就会出现在滚动窗口之上。试着从 Jess71a2 路径下键入下面命令:

C:\Jess71a2> java -classpath lib\jess.jar jess.Console

1.2.3 .Java 程序设计语言与Jess

 

要在你的 Java 程序中把 Jess 做为库使用,文件 jess.jar (在 lib 目录下)必须是以一个标准的扩展名安装在类路径之下,或者对你的开发工具配置后能够识别它。做好这些工作的细节是随系统和环境而定的,但在设置一个类路径时通常涉及修改环境变量,并且安装一个标准的扩展名,简单来说就是复制 jess.jar 到你的 $(JAVA_HOME)/jre/lib/ext 路径下。可查阅 Java 文档或介绍 Java 的文本以了解更多的细节。

1.2.4 .Jess 例子程序

 

有一些简单的例子程序(在 examples/jess examples/xml 目录下),您可以用这些程序测试你的 Jess 是否已经安装正确。这些程序包括 fullmab.clp zebra.clp wordgame.clp fullmab.clp 是关于猴子与香蕉问题的经典版本。要从命令行运行它,只需要输入:

C:\Jess71a2> bin\jess examples\jess\fullmab.clp

和要运行的问题,就会在屏幕上输出结果。任何 Jess 代码的文件都可以以这种方式运行。像使用批处理函数一样在命令行给一个 Jess 文件名就可以运行了。因此,一般你只需要保证文件是以:

Jess> (reset)

(run)

结束或根本没有规则将运行。 zebra.clp wordgame.clp 程序是两个典型的例子,它们是用来展示 Jess 如何处理复杂情况的程序。这些例子都产生大量的局部模式匹配,因此它们运行非常慢而且使用了大量的内存。另外的例子包括 sticks.clp (互动游戏)和 frame.clp (一个使用 jess java 集成能力建立图形界面的演示)。

XML 的例子在单独的子目录下,每个子目录中都包含有运行例子说明的自述文件。

 

2.Jess 开发环境

Jess 7 包括一个基于 Eclipse 的开发环境。这个开发环境有一个编辑器,一个调试器和一个 Rete 网络视图。在将来发布的版本中将包含更多组件(规则浏览器和其它工具)。

2.1. 安装JessDE

Jess 开发环境( JessDE )是作为一个插件集支持流行的开源的集成开发环境 Eclipse ;该插件支持 Eclipse 3.1 及其更新版本。应该注意的是 JessDE 仅仅工作在完全的 " Eclipse SDK " 上——较小的 " 二进制运行平台 " 是不能运行的。

安装 JessDE ,首先要退出 Eclipse ,然后从 Jess71a2/eclipse 解压缩所有文件到顶层的 Eclipse 的安装路径。确认在你的 eclipse 安装目录有一个名为 " plugins/gov.sandia.jess_7.0.0 " 的目录存在,然后重新启动 Eclipse

注意!如果你只是从以前的版本的 JessDE 更新,你必须在 Eclipse 的命令行使用 "-clean " 命令开关,强制更新缓存中有关 JessDE 插件的信息。如果你不这样做,很多的 JessDE 的选项可能被禁用,安装后你只需要这样做一次。

 

2.1.1 . 验证你的安装

 

在“ Help ”菜单下选择“ about Eclipse SDK ”。在 " about Eclipse SDK " 主窗口有一个有 Jess 标志的按钮。单击“ Plug-in Details ”,如果 JessDE 已安装妥当,你将发现三个或四个 Jess 相关插件在列表上——在我的 Eclipse 中,它们出现在底部。

然后使用“ New Project ”向导建立一个 Java 工程。在新的工程中创建一个新文件并命名为“ hello.clp ”。这个文件会在一个 Jess 的编辑器中打开,这个编辑器有一个带红色“ J ”字的银色小球的图标。输入一些 Jess 代码,如下:

  (printout t "Hello, World" crlf)

你应该看到合适的语法被高亮显示。如果看到,祝贺你!工作一切正常!阅读更多 JessDE 其他功能的信息。

2.1.2 . 更多的细节

 

JessDE 编辑器在你的 Jess 文件中能够标示出语法错误和警告。你很可能希望这些标记能出现在 Eclipse 的“ Problems ”视图中,尽管在默认情况下它们可能没有显示出来。安装完成 JessDE 后,重新启动 Eclipse ,在 Problems 的视图,在标题栏点击“ Filters ”的图标,然后选择标着 " Jess Problem " (如果没有被选中的话)多选项。你的 Problems 视图应该马上就会显示 Jess 错误和警告。

要使用 Rete 网络视图,你需要安装 Eclipse 图形编辑框架( GEF )。你可以从 Eclipse 工程项目页面得到 GEF ,或通过 Eclipse 的内置式更新管理器安装它。然后打开这一视图,在“ Jess Debugger ”组之下 Eclipse 的“ Show view ”对话框找到它。那么在 Jess 编辑窗口中当光标停在某一内部规则时, Rete 网络视图将会为这项规则显示出编译的网络。

2.2. 使用JessDE

 

2.2.1 .Jess 语言编辑器

 

分享到:
评论

相关推荐

    jess7.0专家系统外壳

    4. **规则引擎**:jess7.0拥有强大的规则引擎,能够处理复杂的规则逻辑,包括条件测试、动作执行等。 5. **灵活的接口**:提供API供开发者集成到其他Java应用程序中,方便构建嵌入式专家系统。 6. **可扩展性**:...

    专家系统开发jess7.0

    基于java的专家系统开发工具,Jess简介:Jess是一个用Java编写的专家系统开发平台,由美国Sandia国家实验室分布式系统计算组成员ErnestJ.FriedmanHill在1995年开发出来,以...

    基于Java的规则引擎--java规则引擎

    - **JESS**:JESS(Java Expert System Shell)是一个基于Lisp的规则引擎,虽然不如前两者流行,但在某些场景下仍被广泛使用。 4. **Java规则引擎API(JSR94)** JSR94是Java平台的标准接口,为规则引擎提供了...

    Jess71p1.zip

    Jess是一款强大的、基于Java的规则引擎,专门用于实现复杂的数据处理和决策逻辑。它在信息技术领域,尤其是人工智能(AI)和专家系统中广泛应用。这个压缩包中的主要内容很可能是Jess的安装程序或者库文件,使得用户...

    JAVA规则引擎原理

    Java 规则引擎原理主要涉及将商业决策逻辑与应用程序代码分离,使得业务规则可以在运行时动态管理和修改,以适应不断变化的企业环境。...Java规则引擎如Drools、JESS等提供了实现这一目标的框架和工具。

    基于Java的规则引擎

    JSR94(Java Rule Engine API)是Java平台的标准,定义了一个统一的接口来与不同的规则引擎交互。它为应用程序提供了一种独立于具体实现的方式来使用规则引擎,促进了不同规则引擎之间的互操作性。 综上所述,Java...

    Java规则引擎相关论文_Java规则引擎_

    Java规则引擎是一种强大的工具,它允许程序在运行时执行基于业务规则的决策。这些规则可以是复杂的逻辑,涉及多个条件和操作,而规则引擎则负责管理和执行这些规则,使得业务逻辑与应用程序的主体代码分离,提高了...

    Java规则引擎工作原理及其应用.docx

    Java规则引擎是一种强大的工具,它允许程序在运行时根据预定义的规则进行决策。规则引擎的核心概念是将业务逻辑从应用程序代码中分离出来,使得业务规则可以独立于系统进行管理和维护。这种分离使得规则的修改和扩展...

    jess.jar JESS java规则

    jess.jar jess.jar jess.jarjess.jar jess.jar jess.jar jess.jar jess.jar jess.jar

    jess运用,语法介绍,环境配置

    Jess 7.0p1 版本对 Java 平台的支持广泛,兼容从 JDK 1.4 到最新的 JDK1.5 版本。 **环境配置** 1. **Java 虚拟机 (JVM)**:使用 Jess 需要先确保已安装 Java 虚拟机,可以从 Sun Microsystems(现 Oracle)的官方...

    Java规则引擎技术研究.pdf

    本文将对Java规则引擎技术进行详细的介绍,包括规则引擎的定义、分类、实现方式和应用场景等方面的内容,并对Sun Java CAPS规则解决方案、JBOSS Drools和Jess等三个主要的Java规则引擎进行了比较和分析。 规则引擎...

    Jess_in_Action - java 专家系统 jess

    Jess(Java Expert System Shell)是一款基于CLIPS(C语言编写的一个用于开发专家系统的工具包)开发的专家系统外壳(Shell),它允许用户在Java语言环境下构建专家系统。专家系统是一种特殊的计算机程序,它应用...

    基于Java的Jess功能函数扩展方法.pdf

    Jess是“Java Expert System shell”的缩写,它是基于Java平台的规则引擎,专门用于开发专家系统。Jess本身是CLIPS(C语言版本的专家系统开发工具)的超集,并且以增强型Rete算法作为基础,支持正向推理和反向推理。...

    JESS+JAVA详细配置手册

    - **JESS**(Java Expert System Shell)是一款强大的基于Java平台的规则引擎,它以CLIPS的设计理念为基础,不仅继承了CLIPS的优势,还融入了许多独特的特性: - 支持正向推理与逆向推理。 - 能够在运行环境中直接...

    论文《基于Java规则引擎的汽车发动机故障诊断专家系统研究与开发》

    本文中使用的推理引擎是Jess,这是一个用Java编写的高性能推理引擎,支持正向和反向链式推理。 - **用户界面**:提供友好的交互界面,用户可以通过该界面输入故障信息并获取诊断结果。 #### 实现细节 - **规则引擎...

    java专家系统jess资源包

    Java专家系统Jess资源包是一个专为Java平台设计的规则引擎,用于构建和执行基于规则的推理系统。Jess(Java Expert System Shell)是一个强大的工具,它允许开发者创建和管理复杂的推理系统,这些系统能够通过一系列...

    Jess7.1基于java的传统专家系统开发工具包

    2. **Java集成**: Jess7.1完全用Java编写,这意味着它可以在任何支持Java的平台上运行,具备跨平台兼容性。开发者可以利用Java的强大库和生态系统与Jess无缝集成,创建复杂的系统。 3. **规则引擎**: Jess的核心...

    规则引擎的介绍

    #### 规则引擎的关键算法——RETE算法 RETE算法是规则引擎领域最著名的算法之一,其高效性在于能够通过构建匹配网络,避免重复计算,大幅提高规则匹配的速度。RETE算法将规则的条件部分转换为网络结构,利用网络的...

Global site tag (gtag.js) - Google Analytics