我很难理解为什么exists
关键字是必要的。
我有以下规则:
1)
rule "normal"
when
Bus( seats > 20 )
then
System.out.println("There is a 20+ bus);
end
2)
rule "with exists"
when
exists Bus( seats > 20 )
then
System.out.println("There is a 20+ bus existing...);
end
第一条规则的LHS与第二条规则有何不同?
谢谢!
答案 0 :(得分:3)
exists
的{{3}}说明以下内容
CE存在是一阶逻辑的存在量词和检查 因为工作记忆中存在某种东西。考虑到 "存在"作为意义"至少有一个......"。它不同于 只是拥有自己的模式,更像是说" for 每一个......"。如果您使用存在模式,则该规则将仅 无论工作中有多少数据,最多只能激活一次 与存在模式内部条件匹配的内存。以来 只有存在才重要,不会有任何约束力。
因此,对于您的示例,第一条规则是针对每个拥有超过20个座位的公交车而被解雇,但是第二条规则只会被触发一次,即使座位数超过20的公交车数量也是如此。