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
參見
[編輯]參考文件
[編輯]