忽略Defrule CLIPS中的类似事实

时间:2016-12-02 22:47:57

标签: clips

我尝试使用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))
)

0 个答案:

没有答案