我在使用规则引擎 Jess 时遇到了严重问题。我面临的问题是条件元素累积。我正在尝试编写一个规则,该规则根据某些标准从我的工作记忆中给我一个单词列表,但它向我显示了列表的所有阶段-首先是一个空列表,然后是一个包含一个元素的列表,然后继续-它通过一次又一次地触发相同的规则来做到这一点。但我知道并确信当这条规则触发时工作记忆不会改变。
而且奇怪的是,我几小时前写了同样的规则,结果它只给出了一个包含多个元素的列表。
你对我做错了什么有什么建议吗?
请帮忙!这是代码:
(defrule show-me
(declare (salience -11)
(no-loop TRUE))
?my-list <- (accumulate (bind ?list (new java.util.ArrayList)) ;initializer
(?list add ?sWord) ; action
?list ;result
(ourObject (sourceWord ?sWord) ; CE
{complementType == COMPLEMENTO-OGGETTO-PARTITIVO}))
=>
(printout t "complementType" (?my-list toString) crlf))
这就是我得到的结果:
complementType[ un , po , di , acqua , tua ]
complementType[ un , po , acqua , tua ]
complementType[ un , acqua , tua ]
complementType[ acqua , tua ]
complementType[ acqua ]
complementType[]
我只需要这个:
complementType[ un , po , di , acqua , tua ]
ps 很抱歉代码出现,但它不允许我按原样粘贴它。