学习日志二

Drools规则初步

@2016/11/3


关于规则,Drools提供的API可以分为三类:

  • 规则编译
  • 规则收集:KnowledgeBuilder、KnowledgeBase
  • 规则的执行:StatefulKnowledgeSession、StatelessKnowledgeSession

规则处理的对象,Fact 对象

一个 Fact 对象通常是一个具有 getter 和 setter 方法的 POJO 对象,,通过这些 getter 和 setter方法可以方便的实现对Fact 对象的读写操作。
所以我们可以简单的把 Fact 对象理解为规则与应用系统数据交互的桥梁或通道。

在实际项目中,Fact对象就是输入,所有的业务逻辑都将围绕Fact对象展开,并且限制于该对象。


规则的结构
一个标准的规则文件的结构如下代码

package package-name
imports
globals
functions
queries
rules

其中package仅表示逻辑上的关系,与java略有不同。
任何规则中使用到的对象的类都应该imports在规则中。


规则的语法


内容过多,先列个清单,细节后续慢慢补

  • 条件部分:
1. 变量:[绑定变量名:]Object([field 约束])
2. 约束连接:“&&”(and)、“||”(or)和“,”(and)
3. 比较操作符:>、 >=、 <、 <=、 = =、 !=、 contains、 not contains、memberof、not memberof、matches、not matches
  • 结果部分:

insert
insertLogical
update
retract
drools
kcontext
modify

  • 属性部分:

salience
no-loop
date-effective
date-expires
enabled
dialect
duration
lock-on-active
activation-group
agenda-group
auto-focus
ruleflow-group


学习日志二

@2016/11/3

流水账:
上午主要在学习Drools的语法。下午完成了自动填写Fact对象的脚本,实现了把一个字典的列表翻译为java对象的功能。期间犹豫于对象的属性是否需要包含非基本类型,所以耽误了不少时间。收获了一个教训,沟通很重要,有自己实在搞不清楚的问题,要及时向老大汇报。

实例学得:
规则有when和then俩部分,后面接的东西我分别叫他们condition和action。其中action部分可以if可以for,所以可以进行完整的逻辑处理,也就是说Drools规则引擎并没有限制规则文件的功能。condition部分还没有测试。

问题总计:

眼前问题:
- python如何调用java || python脚本可以调用eclips吗 || 如何在不使用eclips的情况下完成任务?
- 如何开发出一个具有可拓展性的引擎?

远展问题:
- 表格接口,数据库接口该怎么着手?
- 系统性能如何?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值