规则引擎起源于基于规则的专家系统,而基于规则的专家系统又是专家系统的其中一个分支。专家系统属于人工智能的范畴,它模仿人类的推理方式,使用试探性的方法进行推理,并使用人类能理解的术语解释和证明它的推理结论
规则引擎一般由3部分组成:规则库(Knowledge base)+Working Memory(Fact base)+推理机(规则引擎)。
规则引擎的工作:模式匹配、冲突消解、执行引擎。
模式匹配算法:将事实与规则进行匹配的算法。常见的模式匹配算法有RETE,LFA,TREAI,LEAPS。Drools采用的匹配算法就是RETE,该算法被认为是目前世界上最先进的模式匹配算法。
补充:规则引擎(rule engine)是有很多种的。依据规则的执行方式来划分。商业上采用的大部分规则引擎都是 forward chaining(汉语咋解释不知道)类型的。forward chaining类型有分为2种:(1)production/inference rules(汉语咋解释不知道)它是通过IFconditionTHEN action这种条件判断的形式来驱动规则引擎的。(2)reaction/Event Condition Action rules,这种规则引擎是通过事件机制来驱动规则引擎的。这是我从维基百科上了解的。有兴趣的可以去看http://en.wikipedia.org/wiki/Business_rules_engine。
Rate算法:
相关概念:
(1)事实(Fact):对象之间及对象属性之间的关系
(2)规则(rule):是由条件和结论构成的推理语句,一般表示为if...Then。一个规则的if部分称为LHS,then部分称为RHS。
(3)模式(module):就是指IF语句的条件。这里IF条件可能是有几个更小的条件组成的大条件。模式就是指的不能在继续分割下去的最小的原子条件。