Professional Documents
Culture Documents
Jess 程式開發
一、安裝 Jess
(1) 下載 Jess
Jess 網址:http://herzberg.ca.sandia.gov/jess/
第1頁
Jess 程式開發 撰寫者:陳志華
第2頁
Jess 程式開發 撰寫者:陳志華
(6) 測試環境
(i) 開啟”命令提示字元”
(ii) 切換到 jess 資料庫,輸入 cd\jess
(iii) Java jess.Main examples/jess/hello.clp
(iv) 成功顯示 Hello, world! 字樣
第3頁
Jess 程式開發 撰寫者:陳志華
(2) 執行 eclipse,開啟「File\New\Project」
第4頁
Jess 程式開發 撰寫者:陳志華
第5頁
Jess 程式開發 撰寫者:陳志華
第6頁
Jess 程式開發 撰寫者:陳志華
三、Jess 基本語法
(1) Symbols
z A Jess symbol 可以包含 letters, numbers,以及下列標點符號: $, *, ., =, =,
/, >, <, _, ?, and #
z A Jess symbol 開頭不能是數字
z ($, ?, and =)這幾個標點符號不能使用在 symbol 開頭
z Valid symbols:
first-name
Name1
name#1
name$1
_abc
(3) Numbers
z 3
z 4.
z 2.323
(4) Strings
z “Hello !”
z “\”Nonsense, \” he said firmly.”
(5) Comments
z ;;this is a comment
(6) List
z (+ 3 2)
z (a b c)
z (“Hello, World!”)
z ()
z (1 2 3)
z (deftemplate foo (slot bar))
第7頁
Jess 程式開發 撰寫者:陳志華
(8) Variables
z 不需要事先宣告
z are untyped, 意味這個變數可以裝任何資料型態
z 範例:
(bind ?x “Hello World!”)
(bind ?x 2007)
承續上面 (bind ?x (+ ?x 3)),則?x 為 2010
(11) foreach
z (foreach <variable> <list> <expression>+)
z 範例:
(bind ?newlist (create$ eggs bread milk))
(foreach ?e ?newlist (printout t ?e crlf)),分行依序印出?newlist 內容
(12) while
z (while <Boolean expression> do <expression>+)
z 範例(計算 1~10 之總合):
(bind ?i 1)
(bind ?sum 0)
(while (<= ?i 10) do (bind ?sum (+ ?sum ?i)) (bind ?i (+ ?i 1))),
則?sum 為 55
第8頁
Jess 程式開發 撰寫者:陳志華
(13) if/then/else
z (if <Boolean expression> then <expression>+ [else <expression>+])
z 範例:
(bind ?newlist (create$ eggs bread milk))
(if (member$ eggs ?newlist) then
(printout t “I need to buy eggs” crlf)
else
(printout t “No eggs, thanks”)),則最後印出 I need to buy eggs
第9頁
Jess 程式開發 撰寫者:陳志華
四、Jess 事實與規則語法
(1) Jess 程式是由”規則”(rules)和”事實”(facts)所組成的,而“事實”是被”規則”執
行使用的
(2) 事實相關語法
z 存放資料到事實串列
(assert (man))
(assert (man-is jack))
z 查看事實串列內容
(facts)
z 清除記憶體所有內容
(clear)
(3) 規則相關語法
z 定義規則
範例
(defrule rule0 ;定義 rule
(man-is jack)
=>
(printout t “jack” crlf))
z 查看規則
(rules)
z 執行
(run)
z 清除記憶體所有內容
(clear)
第 10 頁