似乎有一些关键信息从你的问题中缺失。您发布的代码段正确加载。只有当我添加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