在Drools中,是否可以在DRL文件定義後以某種方式組合規則。例如,如果我有這樣的兩條規則:在Drools Expert中組合規則邏輯
rule A
// definition
end
rule B
// definition
end
是否有可能有另一個規則實現如下邏輯:A或B?
在Drools中,是否可以在DRL文件定義後以某種方式組合規則。例如,如果我有這樣的兩條規則:在Drools Expert中組合規則邏輯
rule A
// definition
end
rule B
// definition
end
是否有可能有另一個規則實現如下邏輯:A或B?
兩個規則A和B 是邏輯等價於A或B(不是異或)。
您不能引用另一個規則,但可以在同一個LHS條件下定義查詢並調用兩個(或更多)查詢。
但是,您的邏輯的整體模式可能會採取一種完全不同的方法,因爲不同規則的匹配通過插入作爲派生事實而被形成,稱爲真值維護。
rule A when ... then
insertLogical(new Fired("A"));
end
rule B when ... then
insertLogical(new Fired("B"));
end
rule AorB when
Fired(rule == "A" || rule == "B") // other patterns for other combinations, e.g. &&
then
...
end
對於精確的建議,更多細節是必需的。
你也可以看看激活組,它將觸發一個規則並取消其他規則。
這適合我的情況。我試圖模擬一個系統的狀態。因此,我將能夠捕捉並根據規則通知Drools系統的狀態,然後再進行推理。 –