首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Drools RETE算法混淆

Drools RETE算法混淆
EN

Stack Overflow用户
提问于 2017-09-05 17:39:35
回答 1查看 752关注 0票数 1

我对RETE算法、Beta节点、、JoinNode、notNode的理解有问题吗?

文件上说:

有两个输入节点,JoinNode和NotNode,它们都是BetaNodes的类型.BetaNodes用于比较两个对象及其字段。对象可能是相同的或不同的类型。按照惯例,我们将两个输入称为左输入和右输入。BetaNode的左输入通常是一个对象列表;在Drools中,这是一个元组。正确的输入是一个单一的对象。两个节点可以用来实现“存在”检查。BetaNodes也有内存。左边的输入称为Beta内存,并记住所有传入的元组。正确的输入称为Alpha内存,并记住所有传入的对象。

我理解,Alpha Node: drl规则的各种文字条件,但是上面关于BetaNodes的文档让我有点困惑。

下面是上述图表的drl条件:

$person : Person( favouriteCheese == $cheddar )

查询:1)两个输入的Beta节点的左、右输入与上述文档中所解释的完全相同吗?,我认为它指的是事实和规则,我认为元组是事实?

2) notNode基本上是drl条件,匹配文字条件和not?

9月6日更新的问题:

3)我相信上面的图表表示joinNode,如果改变上面的工作流以适应notNode?,notNode将如何表示?

EN

回答 1

Stack Overflow用户

发布于 2017-09-05 18:00:50

与图表相对应的条件为

代码语言:javascript
复制
Cheese( $name: name == "Cheddar" )
Person( favouriteCheese == $name )

一旦有匹配,一个新的元组由匹配的奶酪和人组成,如果条件中有第三种模式,就可以作为一个新的元组来进行进一步的匹配。

非节点是断言某一事实不存在的节点.它只会发射一次。

你可能会在网上找到更好的"rete“描述。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46060563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档