论文部分内容阅读
在快速变化的商业世界中,企业经常要改变自己的应用系统中某部分的规则来适应市场的变化,保持企业的竞争力。比如银行需要根据国家政策调整存贷款利率;零售企业需要调整自己的商品的折扣率。这些在系统运行过程中产生的变化需求既增加了企业应用软件的复杂度,也增加了软件架构师设计系统的难度,系统开发的周期也相应变长。另一方面,传统的程序设计方法不能有效解决很多人工智能领域的推理问题,所谓的推理问题就是给出一些初始条件,推导在某些规则下的结论,比如经典的农夫过河问题。这些问题的根源是缺少一种规则管理、执行的工具。
本文提出使用规则引擎来解决上述问题。文中首先阐述了什么是规则引擎系统,分析了它的优缺点并探讨了它的应用场景;随后详细介绍了论文中提出并实现的规则引擎系统的各个组成部分:规则语言定义,规则引擎实现,以及基于规则引擎的集成开发环境。
在规则语言定义部分:定义了规则语言中的类型系统、标识符、变量、关键字、注释、内置函数等基本元素。根据产生式的特点定义了规则的结构。所有这些元素合在一起,组成了规则引擎系统支持的规则语言。最后,介绍了此规则语言的识别过程。
规则引擎实现部分:把规则引擎分为三大模块:工作空间、规则库、推理引擎,然后分别加以实现。其中推理引擎采用了简化的Rete算法作为核心算法完成大规模对象/模式匹配。然后基于推理引擎采用的精简Rete算法,实现了工作空间和规则库。工作空间用来存储维护事实对象,也是驱动推理引擎工作的数据源。规则库部分,首先完成了规则的转换、编译,然后实现了Rete网络存储和维护的功能。
在基于规则引擎的集成开发环境部分,主要是为规则语言提供了一个Eclipse插件形式的智能编辑器。该智能编辑器的功能包括语法高亮、内容辅助、错误标注、代码折叠;并且大纲视图中能列出所有的规则,方便浏览。
文中实现的三大部分内容,从规则语言设计到规则开发环境再到规则的动态执行构成了一个完善的规则引擎系统。使用此规则引擎系统可以在很大程度上把规则和应用系统解耦合,降低系统的复杂度;规则语言声明式的风格使得规则易于编写、维护、理解。规则引擎采用的模式对象匹配算法也保证了规则引擎系统不会成为整个应用系统的瓶颈。