`
hxrs
  • 浏览: 26307 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Drools 规则引擎-学习笔记(一)

阅读更多

Knowledge representation :人工智能领域的有关知识是如何表达与操作的。


Expert System : 专家系统也被称作 Knowledge-based System, 然而早期的专家系统是把逻辑硬编码的。
Drools是一个Rule Engine, 它使用rule-based的方法实现专家系统, 可以更正确的归类为Production Rule System-产生式规则系统.


Production Rule System 是一种Rule Engine, 也是一种Expert System.
一个Production Rule System是Turing complete(图灵完全)的。The brain of a Production Rule System 是一个推理引擎(Inference Engine)。 推理引擎是用来匹配facts and data与Production Rules的, 这个过程可以叫做模式匹配(Pattern Matching). 用于推理引擎的模式匹配算法包括: Linear, Rete, Treat, Leaps.

 


Drools 实现并继承了Rete算法,Leaps过去也实现过但现在已经retired了,由于其变的unmaintained了。Drools的Rete实现称作ReteOO, 表示: the Rete algorithm for object oriented systems.

Rules 存储在Production Memory中,而对应的facts存储在Working Memory中。由于系统中可能包含很多规则与事实, 可能匹配的时候出现多个规则匹配成功,这样会出现执行冲突(Be in conflict). 这里就出现了Agenda 了, 这个用来保证冲突规则的执行顺序的, 当然要通过一些冲突解决策略(Conflict Resolution strategy)。

Rule engine

对于一个Rule System来说, 有两种执行方法:Forward Chaining 和 Backward Chaining。同时运用两种方法的可以称作混合规则系统(Hybrid Rule Systems).

 

Forward chaining 是“data-driven”的,简单地讲,就是以fact开始的,事实传播然后以一个conclusion结束。Drools就是一个forward chaining engine.

Forward chaining

Backward Chaining是一个“goal-driven”的,简单地讲,就是一个以conclusion开始的, 然后引擎去尝试去satisfy这个结论。如果不能满足的话, 就又去查询其他能被satisfy的conclusions.Drools计划在未来的版本中提供对Backward Chaining的支持。


 

规则引擎的Advantages:
Declarative Programming: tell the Rule engines What to do , not  How todo.
Logic and Data Separation(逻辑与数据分离):data is in your domain objects, and the logic is in the rules. 这个从根本上break了数据与逻辑的面向对象耦合。

 

Drools的规则引擎使用步骤:
用KnowledgeBuilder的实例去编译规则.drl文件;
然后获得一个KnowledgeBase 实例,把上步骤中builder实例获取的KnowledgePackage添加到 KnowledgeBase实例中;
建立一个Knowledge session,接着insert facts,  再fireAllRules.

  • 大小: 48.4 KB
  • 大小: 48.1 KB
  • 大小: 156.8 KB
分享到:
评论

相关推荐

    Drools安装配置学习笔记.doc

    Drools是一款强大的规则引擎,它允许开发者使用自然语言规则来编写业务逻辑,极大地提高了代码的可读性和可维护性。以下是对Drools安装配置的详细步骤和使用方法的介绍。 1. **下载Drools组件** - 首先,你需要...

    Drools学习笔记

    Drools 是一个基于Java的规则引擎,它允许开发者用自然语言编写业务规则,并在运行时高效地执行这些规则。Drools 提供了一个强大的框架,使得业务逻辑与应用程序的其他部分保持松耦合,从而便于维护和扩展。 1. **...

    drools学习笔记

    drools 是一个强大的规则引擎,主要用于业务逻辑的规则管理和执行。在本文中,我们将深入探讨 drools 的规则语言,这是 drools 的核心组成部分,尤其对于初学者来说是理解和掌握 drools 的关键。 首先,我们来看...

    drools5 读书笔记

    Drools是一款强大的规则引擎,它基于Java语言,用于在企业级应用中实现复杂的业务逻辑。这个读书笔记主要涵盖了Drools 5版本的相关内容,结合源码分析和工具使用,旨在帮助读者深入理解其工作原理和实际应用。 一、...

    工作流引擎笔记

    2. **规则集成**:Jbpm与Drools规则引擎紧密集成,允许在流程中嵌入决策逻辑。 3. **事件驱动**:支持事件触发的流程行为,比如基于时间或特定事件的流程跳转。 4. **持久化**:使用Hibernate进行数据持久化,保证...

    JBPM3学习笔记

    6. **规则引擎**:集成Drools规则引擎,使得流程可以根据预定义的业务规则动态调整。 **四、JBPM3的API和工具** 1. **API**:JBPM3提供了丰富的Java API,如ProcessEngine、RepositoryService等,供开发者进行流程...

    JBossjBPM.rar_工作流引擎

    5. 规则与决策:介绍如何利用Drools规则引擎集成业务逻辑和决策点。 6. 自定义扩展:讨论如何根据特定需求对jBPM进行扩展,如自定义任务监听器、事件处理器等。 7. 故障排查:分享在使用过程中可能遇到的问题及解决...

    Activiti学习笔记三:管理流程定义

    Activiti是一款开源的工作流引擎,它基于模型驱动的架构(MDA),用于在企业级应用中实现业务流程自动化。在“Activiti学习笔记三:管理流程定义”中,我们将深入探讨如何使用Activiti来管理和操作流程定义。 首先...

    jbpm学习资料,jbpm教程

    10. **规则引擎**:jbpm集成了Drools规则引擎,使得流程可以根据预定义的业务规则动态变化,增强了流程的灵活性和智能化。 通过jBPM-jPDL学习笔记,你可以系统地学习如何使用jPDL设计和实施业务流程,掌握jbpm的...

    JBPM研究笔记

    - JBPM集成了Drools规则引擎,允许在流程中嵌入决策逻辑,使流程更具动态性和灵活性。 - 规则可以基于特定条件触发,影响流程的走向或任务的处理方式。 6. **事件处理**: - JBPM支持事件监听,例如,当流程实例...

    JBPM相关学习资料

    4. **规则集成**:与Drools规则引擎集成,允许在流程中嵌入决策逻辑。 5. **监控和报表**:提供强大的监控工具,帮助分析流程性能,生成流程相关的统计报表。 ### 三、JBPM常见异常及解决方案 在使用JBPM过程中,...

    Java面试:Java面试,Java基础,JVM,JUC(高并发),Java8新特性,集合,NIO,计算机基础,计算机网络,操作系统,数据结构,计算机组成原理,数据库,MySql,Oracle,Redis,设计模式,Python,工作流(Activiti),规则引擎(Drools),Spring,SpringCloud,Dubbo,Maven,Mybatis,JWT,Netty,Nginx,Shiro,Zookeeper,消息位置(MQ),微服务,Git,Docker,Utils, Linux,Shell

    当学习完一个知识点以后,自己做笔记,同时事后要总结,如果自己能把一个知识清晰表达出来的时候,自己也是有很大的收获和成长的; 赠人玫瑰手留余香。 目录 学习知识相关 Java 计算机基础(重要) 需要完善 需要...

Global site tag (gtag.js) - Google Analytics