ルール エンジン Jess で深刻な問題が発生しています。私が直面している問題は、Conditional Element Accumulate にあります。いくつかの基準に従って、作業記憶から単語のリストを作成するルールを作成しようとしていますが、リストのすべてのフェーズが表示されます-最初に空のリスト、次に1つの要素を持つリストが続きます-これは、同じルールを何度も実行することによって行われます。しかし、このルールが実行されている間、ワーキング メモリが変化しないことはわかっています。
また、不思議なことに、私は数時間前に同じルールを書きましたが、その結果、複数の要素を持つリストが 1 つしか得られませんでした。
私が間違っていることについて何か提案はありますか?
助けてください!コードは次のとおりです。
(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 コードの表示で申し訳ありませんが、そのまま貼り付けることは許可されませんでした。