似乎有一些關鍵信息從你的問題中缺失。您發佈的代碼段正確加載。只有當我添加FamilyTree deftemplate時,纔會出現您描述的錯誤。如果在規則中使用deftemplate事實,則必須使用需要指定插槽名稱的deftemplate事實的語法。
CLIPS> (clear)
CLIPS>
(defrule Family
(FamilyTree ?L-name ?F-name)
=>
(assert(FamilyTree ?L-name ?F-name(read))
(printout t ?L-name "is parent of" ?F-name crlf)))
CLIPS> (clear)
CLIPS> (deftemplate FamilyTree (slot last-name) (slot first-name))
CLIPS>
(defrule Family
(FamilyTree ?L-name ?F-name)
=>
(assert(FamilyTree ?L-name ?F-name(read))
(printout t ?L-name "is parent of" ?F-name crlf)))
[PRNTUTIL2] Syntax Error: Check appropriate syntax for deftemplate patterns.
ERROR:
(defrule MAIN::Family
(FamilyTree ?L-name
CLIPS>
您應該包含確切的錯誤。 – stevesliva
[PRNTUTIL2]語法錯誤:檢查deftemplate模式的適當語法。 – Rana
你是否遺漏了一個括號(assert(FamilyTree?L-name?F-name(read))? – Evans