【发布时间】:2017-09-05 17:39:35
【问题描述】:
我在理解 RETE 算法 Beta 节点 JoinNode 和 notNode 时遇到问题?
文档说:
有两个双输入节点,JoinNode 和 NotNode,两者都是 BetaNode 的类型。 BetaNodes 用于比较 2 个对象,它们的 领域,彼此。对象可以是相同的或不同的类型。 按照惯例,我们将两个输入称为左输入和右输入。左边 BetaNode 的输入通常是对象列表;在 Drools 这是 一个元组。正确的输入是单个对象。 两个节点可用于 实施“存在”检查。 BetaNodes 也有内存。左侧输入 被称为 Beta Memory 并记住所有传入的元组。正确的 input 被称为 Alpha Memory,它会记住所有传入的对象。
我明白了,Alpha 节点:drl 规则的各种文字条件,但上面的 BetaNodes 文档让我有点困惑。
说下面是上图的drl条件:
$person : Person( favouriteCheese == $cheddar )
查询:1) 与上述文档中解释的完全一样,两输入 Beta 节点的左右输入是什么? 我相信它指的是我认为元组是事实的事实和规则?
2) notNode 基本上是 drl 条件匹配文字条件与 not?
2017 年 9 月 6 日更新问题:
3)我相信上图代表joinNode,如果将上面的工作流程更改为适合notNode,将如何表示notNode?strong>
【问题讨论】:
标签: drools rule-engine rete