是否可以將事實插入作爲通配符的Drools工作內存(例如對查詢的約束)?Drools查詢「通配符」
例如,假設我有以下規則:
rule "meal_exceptions_1"
agenda-group "MEAL"
salience 100
when
Meal(id = "Breakfast")
Person(name == "Sally")
then
insert(new Food("Jelly"));
drools.setFocus("OTHERGRP");
end
rule "meal_breakfast"
agenda-group "MEAL"
when
Meal(id == "Breakfast")
then
insert(new Food("Cornflakes"));
drools.setFocus("OTHERGRP");
end
rule "meal_dinner"
agenda-group "MEAL"
when
Meal(id == "Dinner")
then
insert(new Food("Fish Fingers"));
drools.setFocus("OTHERGRP");
end
我要回答的問題是「什麼都可能被下令早餐可能食品」(也許我訂購的用品廚房)。
我可以很容易地插入一個事實new Meal("Breakfast")
將結果限制爲僅適用於早餐的結果。但是,我的申請並不知道哪些人可能會要求例外,甚至不知道整個人是誰。我想添加另一個事實沿Person("*")
的行,以便這將符合第一條規則,即使我不知道(或關心!),這是特別是薩利誰已經要求不同的食物。
期望的輸出是包含玉米片和果凍的工作記憶。是否有可能發佈這樣的查詢,而不具體瞭解潛在的例外情況?