私は Jess ルール エンジンを使用しており、結論としていくつかのスロット値を変更するいくつかのルールがあります。これは 2 つの異なる方法で達成されます。 (slotvalue)) 問題は、2 つのルールが同じスロット値を変更する場合です。これには Jess salience を使用しますが、タイプ 1 => ファクトの変更に対してのみ正常に機能します。関数でルールを作ると毎回ルールが実行されるのですが、どうすれば解決できますか?
コードは次のとおりです。
1)その人が学生の場合=>(modify ?fact( fredo 2))
2)その日が水曜日の場合=>(modify ?fact ( fredo (discount (fact-slot-value ?fact fredo) 50))) 3)if time >5 =>(modify ?fact( fredo 5))
人が学生で、曜日が水曜日で、時間が 5 より大きい場合、すべてのルールが実行され、このルールが最後に実行されるため、fredo スロットの値は 5 になります。この場合、優先度の問題を解決するにはどうすればよいですか (たとえば、2 番目のルールのみを起動するなど)。出来ますか; お返事をありがとうございます。