用一个事实限定多个规则

时间:2013-11-06 21:02:08

标签: rule-engine

我正在尝试建立一个根据事务评估规则的系统。

例如;

亨利买了500美元,亨利在这次交易结束时可能有2条规则。

  1. 如果有人花200美元,奖励免费送货。
  2. 如果有人花500美元,奖励%10折扣。
  3. 如果我错了,请纠正我,Rete算法将每个规则定义为树的叶子,这意味着新事务将仅限定一个规则。如果是这种情况,可以解决上述情况。

    我的第二个问题是,我希望客户使用TaskUI从Web界面定义规则。例如,第一个屏幕让用户输入标准(花费> 500),第二个屏幕让我们选择奖励(折扣%10)。我知道事实(事务)可以在运行时插入知识库,但这也适用于规则吗?大多数规则引擎从文件等中读取规则。是否可以创建类似上述场景的规则并在运行时评估它们。

    非常感谢您的评论。

1 个答案:

答案 0 :(得分:0)

如果存在多个适用的规则,则在rete算法中,将选择并执行一个规则。只要有适用的规则,这将重复。除非一条规则使另一条规则的条件无效,否则将应用所有满足的规则。

是否可以动态地向规则引擎添加规则取决于您使用的规则引擎。一些支持这一点,一些不支持..