`
iamzhongyong
  • 浏览: 805451 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

qlexpress规则引擎初探

    博客分类:
  • java
 
阅读更多

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,nullnulltrue,true);
        System.out.println("表达式计算:" + express + " = " + r);
 
    }
 
}

 

主要的核心操作?

大体画了一个组件图

Rule:代表自然语言的定义,可能是一段文本

Parse:解析器,把自然语言转换为可以执行的命令,中间涉及到编译的步骤,词法、语法的分析,以及解析之后的缓存操作;

Node:代表节点,例如“如果”这个文字,需要定义“if”这样的指令,代表规则中的节点;

Operator:具体的操作,例如“用户是三星级卖家”这个Node,有对应的类和方法执行数据,给出结果,这个就是一个操作;

ObjectConext:数据的上下文,规则以及规则的解析都是无状态的,需要外部传入数据才能得到结果;

RuleExecute:规则执行的入口,组装“自然语言的规则”以及“上下文数据”,获得执行之后的结果;

 

主要的类图介绍?

 

我的代码如下:

https://github.com/iamzhongyong/qlexpress

 

0
0
分享到:
评论
2 楼 express_wind 2018-08-05  
https://yq.aliyun.com/album/130 系统的专辑可以看看哦
1 楼 express_wind 2017-07-17  
hi,兄弟,有没有兴趣来阿里巴巴专门做这方面的研究,https://github.com/alibaba/qlExpress,有兴趣可以联系我 tianqiao@alibaba-inc.com

相关推荐

    探索推荐引擎内部的秘密-推荐引擎初探

    推荐引擎是现代互联网中一种关键的信息发现工具,尤其在Web 2.0时代,随着用户生成内容的爆炸性增长,传统搜索引擎已经无法满足用户寻找个性化信息的需求。推荐引擎通过运用特定的信息过滤技术,分析用户的行为和...

    一种基于Linux平台的搜索引擎初探.pdf

    《一种基于Linux平台的搜索引擎初探》这篇文章主要探讨了如何在Linux操作系统上构建搜索引擎,并解析了其实现机制和过程。搜索引擎在互联网时代扮演着至关重要的角色,它通过收集、分类和检索网络信息,帮助用户快速...

    Google Scholar中文版搜索引擎初探.pdf

    ### Google Scholar中文版搜索引擎初探 #### 一、Google Scholar中文版简介 2004年11月24日,全球领先的搜索引擎Google推出了一款专门为学术研究设计的搜索引擎——Google Scholar(简称GS)。该服务旨在帮助用户...

    4.规则流的初步尝试

    规则流的初步尝试”提示我们这可能是一个关于使用规则流技术进行软件开发或数据分析的初探。在IT行业中,规则流通常指的是基于规则的决策系统,这种系统利用一系列预先定义的规则来处理数据,作出决策或触发特定行动...

    传媒-“chatGPT+搜索引擎”模式初探

    【传媒-“chatGPT+搜索引擎”模式初探】 随着科技巨头微软的创新举措,"ChatGPT+搜索引擎"的新型搜索模式正在重塑互联网信息获取的方式。2023年2月8日,微软推出了new Bing,这标志着一个新时代的到来,谷歌、百度...

    工作流引擎在信息系统中的应用初探.pdf

    工作流引擎在信息系统中的应用初探 作者: 严正宇, 汪力 作者单位: 严正宇(江苏常州工程职业技术学院计算机系,江苏常州,213164), 汪力(江苏省金坛市人民 检察院,江苏金坛,213000) 刊名: 硅谷 英文刊名: SILICON...

    近岸不规则波传播模拟中谱分割方法初探

    总结来说,近岸不规则波传播模拟中谱分割方法初探,是基于对波能谱和方向谱的深入分析,并结合实际物理模型进行模拟研究。研究中涉及的JONSWAP谱、方向分布函数、波面方差等概念和计算方法,对于提高波浪传播模拟的...

    电商平台的法律责任分析——《电子商务法》“通知-删除”规则的应用初探.zip

    电商平台的法律责任分析——《电子商务法》“通知-删除”规则的应用初探

    COM技术初探.doc

    COM技术初探.doc

    网络公关初探资料.pdf

    网络公关初探资料.pdf

    企业信息化初探

    企业信息化初探。。。。。

    传媒-“chatGPT+搜索引擎”模式初探-230221.pdf

    本文探讨了传媒行业中“ChatGPT+搜索引擎”新模式的发展,以微软的新Bing搜索引擎为例,展示了人工智能技术如何改变搜索引擎的功能和用户体验。ChatGPT是一种基于Transformer架构的自然语言处理工具,能够通过大量的...

    关于物联网智能家居的初探

    关于物联网智能家居的初探. 关于物联网智能家居的初探

    传媒-“chatGPT+搜索引擎”模式初探-230221.zip

    微软率先开启“ChatGPT+搜索引擎”的模式,关注后续迭代及商业化 2023 年 2 月 8 日,微软宣布推出 new Bing,开启 ChatGPT+搜索模式,谷 歌、百度、Opera 等纷纷跟进。该模式相对于传统搜索,主要优势在于通过 整合...

    地产行业杂谈系列之十六:社区增值服务模式初探.pdf

    地产行业杂谈系列之十六:社区增值服务模式初探

    初探uCOS-II

    ### 初探uCOS-II:嵌入式操作系统的基础与应用 #### 一、uCOS-II简介 uCOS-II,全称MicroC/OS-II,是一款专门为嵌入式系统设计的操作系统内核。它由Jean J. Labrosse创建,并在开源社区中得到了广泛的认可和支持。...

    天干地支在择时中的应用初探20211017.pdf

    天干地支在择时中的应用初探 天干地支是中国古代的计时系统,用于记录和预测时间周期。天干地支系统由十个天干(甲乙丙丁戊己庚辛壬癸)和十二个地支(子丑寅卯辰巳午未申酉戌亥)组成。天干地支的阴阳属性奇数为阳...

    区块链与人工智能技术融合发展初探.pdf

    区块链与人工智能技术融合发展初探 本文研究了区块链和人工智能技术的融合发展,分析了两者技术特点,探究了如何将区块链和人工智能技术结合起来,为学界和业界提供了新的思路。 一、区块链技术概述 区块链技术是...

    An architectural introduction to Business Rules

    《商业规则架构初探》 商业规则是企业运营的核心,它们定义并控制着企业的运作方式。在构建成功的计算机系统时,理解业务实体(即企业需要关注的事物)和业务规则同样至关重要。商业规则方法作为业务分析的一个成熟...

Global site tag (gtag.js) - Google Analytics