学习日志二

来源:互联网 发布:linux traceroute没有 编辑:程序博客网 时间:2024/05/18 07:33

Drools规则初步

@2016/11/3


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

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

规则处理的对象,Fact 对象

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

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


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

package package-nameimportsglobalsfunctionsqueriesrules

其中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
原创粉丝点击