Jess程序设计语言
外观
開發者 | 桑迪亚国家实验室 |
---|---|
当前版本 | 7.1p2(2008年11月5日 | )
平台 | Java |
许可协议 | 专有软件 / 公有领域 |
网站 | www.jessrules.com |
Jess是Java平台上的规则引擎,它是CLIPS程序设计语言的超集,由桑迪亚国家实验室的Ernest Friedman-Hill开发。它的第一个版本写于1995年晚期。
Jess提供适合自动化专家系统的逻辑编程,它常被称作“专家系统外壳”。近年来,智能代理系统也在相似的能力上发展起来。
与一个程序中有一个只运行一次的循环的指令式編程语言不同,Jess使用的宣告式编程通过一个名为“模式匹配”的过程连续的对一个事实的集合运用一系列规则。规则可以修改事实集合,或者运行任何Java代码。
Jess可以被用来构建使用规则定义形式的知识来推倒结论和推论的Java Servlet、EJB、Applet和应用程序。因为不同的规则匹配不同的输入,所以有了一些有效的通用匹配算法。Jess规则引擎使用Rete算法。
许可证
[编辑]Jess不是开源软件,而CLIPS是。
代码实例
[编辑]代码实例:
(deftemplate male "" (declare (ordered TRUE)))
(deftemplate female "" (declare (ordered TRUE)))
(deftemplate parent "" (declare (ordered TRUE)))
(deftemplate father "" (declare (ordered TRUE)))
(deftemplate mother "" (declare (ordered TRUE)))
(deffacts initialFacts
(male bill)
(female jane)
(female sally)
(parent bill sally)
(parent jane sally)
)
(defrule father
(parent ?x ?y)
(male ?x)
=>
(printout t crlf ?x " is the father of " ?y crlf)
)
(defrule mother
(parent ?x ?y)
(female ?x)
=>
(printout t crlf ?x " is the mother of " ?y crlf)
)
(reset)
(facts)
(run)
(printout t crlf)
书籍
[编辑]- (英文)Jess in Action: Java Rule-based Systems (页面存档备份,存于互联网档案馆) Ernest Friedman-Hill著 ISBN 1930110898
参见
[编辑]参考文件
[编辑]