私はCLIPSに非常に困惑しています。 .clpファイルにdeftemplateとルールを定義しました。CLIPS deftemplateの間違ったスロットタイプ
I()(取得-CH TRUEをアサート)と(実行)、それはCH名とスコアのために私を促し(deftemplate basic-ch "Basic characteristics template"
(slot ch-name
(type SYMBOL)
(default ?DERIVE)
)
(slot score
(type INTEGER)
(default 1)
(range 1 5)
)
)
(defrule make-ch
?get-ch <- (get-ch TRUE)
=>
(printout t "Enter ch name" crlf)
(bind ?name (read))
(printout t "Enter ch score" crlf)
(bind ?score (read))
(assert (basic-ch (ch-name ?name) (score ?score)))
(retract ?get-ch)
)
。しかし、スコアの文字列を入力すると、文字列スコアはルールによってアサートされます!例:
Enter ch name
hello
Enter ch score
hello
;(basic-ch (ch-name hello)(score hello)) get asserted?!
これはどのように可能ですか?私はスコアをINTEGERと定義し、範囲を指定しました。どうすればこれをやめることができますか?第11節から