昨天看完《Drools5规则引擎开发教程.pdf》,里面对单个rule文件的每一个要素进行了讲解,下面是总结。
1. 测试类API
- KnowledgeBuilder:作用就是用来在业务代码当中收集已经编写好的规则, 然后对这些规则文件进行编译, 最终产生一批编译好的规则包(KnowledgePackage)给其它的应用程序使用。
KnowledgeBuilder kbuilder=KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("test.drl", Test.class),ResourceType.DRL); Collection<KnowledgePackage> kpackage=kbuilder.getKnowledgePackages();//产生规则包的集合
- KnowledgeBase:是Drools 提供的用来收集应用当中知识(knowledge)定义的知识库对
象,在一个KnowledgeBase 当中可以包含普通的规则(rule)、规则流(rule flow)、函数定义
(function)、用户自定义对象(type model)等。KnowledgeBase 本身不包含任何业务数据对
象(fact 对象,后面有相应章节着重介绍fact 对象),业务对象都是插入到由KnowledgeBase
产生的两种类型的session 对象当中(StatefulKnowledgeSession 和StatelessKnowledgeSession,后面会有对应的章节对这两种类型的对象进行介绍),通过session 对象可以触发规则执行或开始一个规则流执行。//无配置 KnowledgeBase kbase=KnowledgeBaseFactory.newKnowledgeBase();//有配置 KnowledgeBaseConfiguration kbConf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); kbConf.setProperty( "org.drools.sequential", "true"); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(kbConf);
- StatefulKnowledgeSession:StatefulKnowledgeSession 对象是一种最常用的与规则引擎进行交互的方式,它可以与规则引擎建立一个持续的交互通道,在推理计算的过程当中可能会多次触发同一数据集。在用户的代码当中,最后使用完StatefulKnowledgeSession 对象之后,一定要调用其dispose()方法以释放相关内存资源。
StatefulKnowledgeSession statefulKSession=kbase.newStatefulKnowledgeSession(); statefulKSession.setGlobal("globalTest", new Object());//设置一个global对象 statefulKSession.insert(new Object());//插入一个fact对象 statefulKSession.fireAllRules(); statefulKSession.dispose();
- StatelessKnowledgeSession:事实上,StatelessKnowledgeSession 对StatefulKnowledgeSession 做了包装,使得在使用StatelessKnowledgeSession 对象时不需要再调用dispose()方法释放内存资源了。
- Fact对象:Fact 是指在Drools 规则应用当中,将一个普通的JavaBean 插入到规则的WorkingMemory当中后的对象。
2. 规则
2.1 规则文件的结构
//规则文件的结构 package package-name imports globals functions queries rules
2.2 规则语言
//一个规则的结构 rule "name" attributes when LHS then RHS end
相关推荐
- **DRL 文件**:DRL 文件是 Drools 规则的主要载体,它使用一种类似 SQL 的语法规则来编写业务逻辑。 - **规则**:规则由一个或多个条件("when" 部分)和一个动作("then" 部分)组成。当条件满足时,动作将被执行...
在"SLICO.zip_DRL_SLICO_SLICO 分割_超像素分割"这个压缩包中,包含了一个名为"SLICO.exe"的可执行文件。这表明这是一个已经编译好的SLICO超像素分割程序,用户只需双击运行,无需编程环境,就可以对输入的图像进行...
X9DRL3_808.zip是一个包含超微X9DRL-3F主板最新BIOS版本的压缩文件。文件名中的"808"很可能表示这个BIOS固件的版本号,通常数字越大,代表修复了更多的bug或增加了新的功能。这个压缩文件可能包括了BIOS的升级程序、...
3. 内存中的规则:除了生成.drl文件,drools还支持在内存中创建规则。这可以通过构建RuleDescr对象并使用KnowledgeBuilder.add()方法添加到规则库中。 四、工作记忆与事实 在drools中,规则的执行依赖于工作记忆...
在本文中,我们将深入探讨超微X9DRL IF BIOS的相关知识点,以及如何通过X9DRL8.712文件进行更新。 1. **超微X9DRL IF BIOS**: 超微X9DRL IF BIOS是针对特定型号的服务器主板——X11SL-F设计的。BIOS(基本输入...
这个名为"DRL论坛关于TC的合集"的资源包,汇集了DRL论坛中众多高手的经验与智慧,涵盖了从基础操作、界面美化到功能插件及配置文件设置等全方位的知识点。 1. **入门篇** - **基本操作**:学习如何使用Total...
3D-DRL_DeliveryDuel.zip,深度强化学习应用于现代三维视频游戏环境,称为交付决斗。,3D建模使用专门的软件来创建物理对象的数字模型。它是3D计算机图形的一个方面,用于视频游戏,3D打印和VR,以及其他应用程序。
3. **操作说明**:提供详尽的操作步骤,帮助用户熟悉X10DRL-i的各项功能。 4. **故障排除与维护**:列举了常见问题及解决方案,指导用户自行排查和解决问题。 5. **安全注意事项**:强调了使用过程中的安全规范,...
Drill_PTH_Through.DRL
Drill_NPTH_Through.DRL
"超微x10drl-i说明书MNL-1566.pdf" 该用户手册是Super Micro Computer, Inc.发布的官方文档,用于介绍超微x10drl-i产品的使用和操作。以下是该文档中涉及的重要知识点: 1. 版权声明:该文档的所有权归Super Micro...
3. **配置文件**:定义测试策略、目标系统信息和其他设置的文件。 4. **数据集**:用于训练DRL模型的历史渗透测试数据。 5. **脚本和工具**:辅助脚本,如自动化测试执行、结果分析和报告生成。 6. **文档**:项目...
1. **Drill_PTH_Through.DRL** 和 **Drill_PTH_Through_Via.DRL**:这两个文件是钻孔文件,用于指示在PCB上哪里需要钻孔以便安装通孔插件元件(PTH,Pin Through Hole)和过孔(Via)。它们包含了孔的位置和大小信息...
根据提供的文件信息,以下是关于超微主板X9DRL-iF说明书的知识点整理: 1. 超微主板X9DRL-iF是一款专门为服务器设计的主板。由于它被描述为服务器常用主板,我们可以推断它可能具备以下特点: - 高可靠性:服务器...
1. **DRL文件**:drl001.drl 和 drl001.lst 这两个文件通常代表钻孔数据文件和钻孔列表文件,它们包含PCB制造过程中的钻孔位置和大小信息,用于在电路板上定位元器件的安装孔和通孔。 2. **L1.pho 和 L2.pho**:...
3. DRL文件:DRL(Drill File)又称Excellon文件,用于描述PCB上的钻孔位置和类型,包括通孔、盲孔和埋孔。Genesis脚本能够生成精确的DRL文件,提供每个孔的位置坐标、孔径大小、孔类型等信息,这对于PCB制造过程中...
标题中的"DRL.rar_视觉追踪"表明这是一个关于深度强化学习(Deep Reinforcement Learning, DRL)在视觉追踪领域的应用项目。视觉追踪是计算机视觉中的一个关键任务,它涉及自动跟踪视频序列中特定目标的位置和状态,...
尽管此应用程序可以将任何格式正确的Excel电子表格转换为Drools DRL文件,但它主要用于为Kuali OLE(开放图书馆环境)应用程序生成Drools规则文件。 要求 Java 1.7 Gradle2.6 构建/设置 安装所需的软件 克隆此存储...