qlexpress是啥?
这个是阿里内部的一个开源的java规则引擎。开源的链接地址如下:http://code.taobao.org/p/QLExpress/wiki/index/
主要的原理是啥?
按照之前阅读的文档以及代码,主要是定义规则、解析规则、执行规则几个步骤,编译的过程类似java class文件的编译过程,首先进行词法分解、词法分析、语法分析、规则执行等步骤。
能有啥用?
如果有些业务场景,可能领域比较专一,业务人员希望能够动态的调整规则,这个时候,一个基于自然语言的规则引擎就能起到很好的作用。例如之前用户展示图片的挑战是这个用户必须是“三星级的卖家”,这个时候业务想改成“四星级卖家”,如果有规则引擎,仅仅需要在console上面维护一下即可不用修改代码,搞那一套复杂的发布流程。
简单的例子?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package rule;
import com.ql.util.express.ExpressRunner;
public class Test {
public static void main(String[] args) throws Exception{
String express = "10 * 10 + 1 + 2 * 3 + 5 * 2" ;
ExpressRunner runner = new ExpressRunner( false , true );
Object r = runner.execute(express, null , null , true , true );
System.out.println( "表达式计算:" + express + " = " + r);
}
} |
主要的核心操作?
大体画了一个组件图
Rule:代表自然语言的定义,可能是一段文本
Parse:解析器,把自然语言转换为可以执行的命令,中间涉及到编译的步骤,词法、语法的分析,以及解析之后的缓存操作;
Node:代表节点,例如“如果”这个文字,需要定义“if”这样的指令,代表规则中的节点;
Operator:具体的操作,例如“用户是三星级卖家”这个Node,有对应的类和方法执行数据,给出结果,这个就是一个操作;
ObjectConext:数据的上下文,规则以及规则的解析都是无状态的,需要外部传入数据才能得到结果;
RuleExecute:规则执行的入口,组装“自然语言的规则”以及“上下文数据”,获得执行之后的结果;
主要的类图介绍?
我的代码如下:
https://github.com/iamzhongyong/qlexpress
相关推荐
探索推荐引擎内部的秘密-推荐引擎初探
Google Scholar中文版搜索引擎初探.pdf
一种基于Linux平台的搜索引擎初探.pdf
MATLAB符号计算引擎MuPAD的使用初探.pdf
工作流引擎在信息系统中的应用初探 作者: 严正宇, 汪力 作者单位: 严正宇(江苏常州工程职业技术学院计算机系,江苏常州,213164), 汪力(江苏省金坛市人民 检察院,江苏金坛,213000) 刊名: 硅谷 英文刊名: SILICON...
近岸不规则波传播模拟中谱分割方法初探,陶美红,,本文根据近岸水流水域中波浪折射绕射传播模型,采用JONSWAP谱( =3.3)与 ,m=2的 方向分布函数,探讨频率分割数、方向分割数与计算
USB2.0规范初探.pdfUSB2.0规范初探.pdfUSB2.0规范初探.pdfUSB2.0规范初探.pdf
电商平台的法律责任分析——《电子商务法》“通知-删除”规则的应用初探
电商平台的法律责任分析——《电子商务法》“通知-删除”规则的应用初探.pdf
ASP.NET ViewState 初探
初探uCOS-II 适合初学者,通俗易懂
天干地支在择时中的应用初探20211017.pdf
初探Android初探Android
初探类图.ppt初探类图.ppt初探类图.ppt
网络公关初探资料.pdf
Android fragment懒加载初探
企业信息化初探。。。。。
基于计算机软件开发的JAVA编程应用初探.pdf
COM初学者体会技术初探