- 浏览: 622302 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
oldrat:
引用Special cases aren't special ...
武汉大学开源技术俱乐部 技术交流 第1期 -
yzsunlight:
试了试 ,不行
Android Studio SDK Manager无法正常下载如何设置 -
qianjigui:
更全面的文档:http://www.5wpc.info/it/ ...
Ruby正则表达式操作参考 -
qianjigui:
Anddy 写道Anddy 写道tag是自动创建的吗? 能手动 ...
vim的跳转 -
Anddy:
Anddy 写道tag是自动创建的吗? 能手动创建吗? 在sh ...
vim的跳转
原始地址: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 语言编辑器
发表评论
-
Ruby 2.1 GC策略
2014-01-23 11:30 951对象管理主要涉及: Profiling support ... -
Google 持续集成介绍
2014-01-23 11:26 1563见附件PPT. 具体方案 构建描述 依赖分析 ... -
函数式编程 读后感
2013-12-30 15:24 1452一篇比较不错的文章: http://coolshel ... -
系统模块集成管理与版本控制学习
2013-12-27 12:01 1337论软件生命周期集成 http://www.infoq.com ... -
Ruby 动态特性鉴赏
2013-12-26 16:47 1335以下代码与代码学习来自<Ruby Best Prac ... -
Android应用插件化与动态部署 学习
2013-12-26 16:45 0通过REST将相关服务有语义的组合起来。 动态部署: ... -
用Markdown做文档的问题
2013-12-23 18:06 863一直有想一种语言能够解决文档编写问题。 一般文档编写 ... -
Android组件、通信与安全机制学习
2013-12-20 12:26 0现有问题: Android的组件间通信有哪些方法?其中的I ... -
Android root 原理学习
2013-12-15 23:51 2329学习资源: http://www.zhihu.com/qu ... -
global + Ruby
2012-11-16 13:07 1282http://simple-and-basic.com/200 ... -
Linux pthread线程同步相关的API学习
2012-11-12 18:43 1468原因 最近在深入理解Dalvik虚拟机的内部线程控制体系,其 ... -
MMTk代码学习(系统结构与流程)
2012-11-06 19:08 1651MMTk的整体结构和驱动模型主要由Plan, Collecto ... -
MMTk代码学习(RVM接口)
2012-11-06 14:52 1558前导 MMTk被RVM整个封装在后端,主要调用接口是 org ... -
MMTk代码学习(整体结构)
2012-11-05 17:03 2456必要的整体模块 对于一个完整的内存管理工具,主要涉及: ... -
嵌入式Java虚拟机 GC特性一览
2012-10-31 15:53 1297嵌入式Java虚拟机列表来源:http://en.wikipe ... -
Memory Analysis Tool OQL 用例汇总及语法学习
2012-10-28 16:36 2167典型用例 获取所有对象: SELECT * FROM $ ... -
Memory Analysis Tool 使用相关材料整理
2012-10-28 10:47 2009利用MAT分析问题 从转储(Dump)文件中调试并除错 ... -
手机设备操作系统架构图整理
2012-10-28 10:28 1539整体分析材料 Android,ChromeOS, WebO ... -
MMTk特性认识
2012-10-25 16:24 1765整体介绍 MMTk是一个内存管理的工具包 ,同时也是jik ... -
JavaScript V8 引擎相关资料
2012-10-25 14:54 1119V8 Javascript engine之所以快 针 ...
相关推荐
4. **规则引擎**:jess7.0拥有强大的规则引擎,能够处理复杂的规则逻辑,包括条件测试、动作执行等。 5. **灵活的接口**:提供API供开发者集成到其他Java应用程序中,方便构建嵌入式专家系统。 6. **可扩展性**:...
基于java的专家系统开发工具,Jess简介:Jess是一个用Java编写的专家系统开发平台,由美国Sandia国家实验室分布式系统计算组成员ErnestJ.FriedmanHill在1995年开发出来,以...
- **JESS**:JESS(Java Expert System Shell)是一个基于Lisp的规则引擎,虽然不如前两者流行,但在某些场景下仍被广泛使用。 4. **Java规则引擎API(JSR94)** JSR94是Java平台的标准接口,为规则引擎提供了...
Jess是一款强大的、基于Java的规则引擎,专门用于实现复杂的数据处理和决策逻辑。它在信息技术领域,尤其是人工智能(AI)和专家系统中广泛应用。这个压缩包中的主要内容很可能是Jess的安装程序或者库文件,使得用户...
Java 规则引擎原理主要涉及将商业决策逻辑与应用程序代码分离,使得业务规则可以在运行时动态管理和修改,以适应不断变化的企业环境。...Java规则引擎如Drools、JESS等提供了实现这一目标的框架和工具。
JSR94(Java Rule Engine API)是Java平台的标准,定义了一个统一的接口来与不同的规则引擎交互。它为应用程序提供了一种独立于具体实现的方式来使用规则引擎,促进了不同规则引擎之间的互操作性。 综上所述,Java...
Java规则引擎是一种强大的工具,它允许程序在运行时执行基于业务规则的决策。这些规则可以是复杂的逻辑,涉及多个条件和操作,而规则引擎则负责管理和执行这些规则,使得业务逻辑与应用程序的主体代码分离,提高了...
Java规则引擎是一种强大的工具,它允许程序在运行时根据预定义的规则进行决策。规则引擎的核心概念是将业务逻辑从应用程序代码中分离出来,使得业务规则可以独立于系统进行管理和维护。这种分离使得规则的修改和扩展...
jess.jar jess.jar jess.jarjess.jar jess.jar jess.jar jess.jar jess.jar jess.jar
Jess 7.0p1 版本对 Java 平台的支持广泛,兼容从 JDK 1.4 到最新的 JDK1.5 版本。 **环境配置** 1. **Java 虚拟机 (JVM)**:使用 Jess 需要先确保已安装 Java 虚拟机,可以从 Sun Microsystems(现 Oracle)的官方...
本文将对Java规则引擎技术进行详细的介绍,包括规则引擎的定义、分类、实现方式和应用场景等方面的内容,并对Sun Java CAPS规则解决方案、JBOSS Drools和Jess等三个主要的Java规则引擎进行了比较和分析。 规则引擎...
Jess(Java Expert System Shell)是一款基于CLIPS(C语言编写的一个用于开发专家系统的工具包)开发的专家系统外壳(Shell),它允许用户在Java语言环境下构建专家系统。专家系统是一种特殊的计算机程序,它应用...
Jess是“Java Expert System shell”的缩写,它是基于Java平台的规则引擎,专门用于开发专家系统。Jess本身是CLIPS(C语言版本的专家系统开发工具)的超集,并且以增强型Rete算法作为基础,支持正向推理和反向推理。...
- **JESS**(Java Expert System Shell)是一款强大的基于Java平台的规则引擎,它以CLIPS的设计理念为基础,不仅继承了CLIPS的优势,还融入了许多独特的特性: - 支持正向推理与逆向推理。 - 能够在运行环境中直接...
本文中使用的推理引擎是Jess,这是一个用Java编写的高性能推理引擎,支持正向和反向链式推理。 - **用户界面**:提供友好的交互界面,用户可以通过该界面输入故障信息并获取诊断结果。 #### 实现细节 - **规则引擎...
Java专家系统Jess资源包是一个专为Java平台设计的规则引擎,用于构建和执行基于规则的推理系统。Jess(Java Expert System Shell)是一个强大的工具,它允许开发者创建和管理复杂的推理系统,这些系统能够通过一系列...
2. **Java集成**: Jess7.1完全用Java编写,这意味着它可以在任何支持Java的平台上运行,具备跨平台兼容性。开发者可以利用Java的强大库和生态系统与Jess无缝集成,创建复杂的系统。 3. **规则引擎**: Jess的核心...
#### 规则引擎的关键算法——RETE算法 RETE算法是规则引擎领域最著名的算法之一,其高效性在于能够通过构建匹配网络,避免重复计算,大幅提高规则匹配的速度。RETE算法将规则的条件部分转换为网络结构,利用网络的...