我尝试使用CLIPS创建家谱程序。
我对CLIPS很陌生,并且在我创建的 defrule 之一的某些操作中遇到了困难。
我试图执行的操作是为彼此兄弟姐妹的孩子创造事实。因此,对于每对孩子,我希望该计划能够生成 2个新的兄弟姐妹事实。但该计划似乎产生了4 - 它也将每个孩子列为自己的兄弟 ......
我尝试使用Google搜索解决方案,但如果(?cn ==?sn),我无法弄清楚如何让计算机无法启动。
有人可以帮忙吗?
(deftemplate siblings
(slot subject-name)
(slot sibling-name)
)
(defrule set-siblings
(child
(child-name ?cn)
(parent-name ?p))
(child
(child-name ?sn)
(parent-name ?p))
=>
(assert (siblings
(subject-name ?cn)
(sibling-name ?sn))
)