1
(deftemplate illness
(slot sickness)
(multislot keywords))
(deffacts qestion-refrences
(illness (sickness stunted-Groth)(keywords stunted groth))
(illness (sickness pale-Yellow) (keywords pale yellow))
(illness (sickness reddish-Brown)(keywords reddish brown))
(illness (sickness stunted-Root)(keywords stunted root)))
(deffunction askquestion (?question)
(printout t ?question)
(bind ?answer (read))
(if (lexemep ?answer)
then (bind ?answer (lowcase ?answer)))
?answer)
(defrule determineSickness
(bind ?f (askquestion "whot Does the plant seem to have ? "))
(illness (keywords ?kw) (sickness ?sk))
(while (not (subsetp ?kw ?f))
(bind ?f (askquestion "whot Does the plant seem to have ? ")))
=>
(assert ?sk))
私がしようとしているのは、プラントに何が間違っているのかを尋ね、キーワードを使用して問題を特定し、問題をアサーションするだけです。しかし、私は次のエラーが発生し続けます。Clipsルールエンジンの "defruleの適切な構文を確認する"をデバッグする方法は?
Defining defrule: determineSickness
[PRNTUTIL2] Syntax Error: Check appropriate syntax for defrule.
ERROR:
(defrule MAIN::determineSickness
(bind ?f (
FALSE
CLIPS>
は助けのためにあなたをとても感謝しています。また[これ](http://stackoverflow.com/a/27363761/3738647)のおかげで。 – user373864q