一种规则处理方法及设备的制造方法_2

文档序号:9810256阅读:来源:国知局
SR(A) >MSR (B)时,B&&A的运算次数优于A&&B的运算次数,使用B&&A可以获得更优的运算性能。而对于或运算节点,MSR(A) > MSR(B)时,A| |B的运算次数优于B | A的运算次数,使用A| |B可以获得更优的运算性能。因此,该方案通过匹配成功率,调整规则语法树的方法,提升了规则引擎的运算性能。
[0047]为达到以上技术目的,本发明还提出了一种规则处理设备,如图4所示,包括:
[0048]获取模块410,用于获取与待处理规则对应的规则语法树;
[0049]确定模块420,用于将规则运算上下文中的原始数据代入所述规则语法树中的各规则节点中,确定与各所述规则节点对应的匹配成功率;
[0050]对比模块430,用于将所述规则语法树中各逻辑运算关系的左右规则节点的匹配成功率进行对比;
[0051]调整模块440,用于根据所述逻辑运算关系的类型以及匹配成功率对比结果互相调整所述逻辑运算关系的左右规则节点的位置。
[0052]在具体的应用场景中,所述确定模块,具体包括:
[0053]代入子模块,用于将所述原始数据分别代入对应的规则节点中;
[0054]确定子模块,用于确定所述规则节点在代入与其对应的原始数据后的匹配成功次数,以及所述规则节点所代入的原始数据的总数;
[0055]计算子模块,用于将所述匹配成功次数与所述总数的比值作为与所述规则节点的匹配成功率。
[0056]在具体的应用场景中,所述对比模块,具体用于:
[0057]若所述逻辑运算关系为与运算,且所述规则关系的左规则节点的匹配成功率大于右规则节点的匹配成功率,将所述左规则节点与所述右规则节点相对于所述规则关系互相交换位置;
[0058]若所述逻辑运算关系为与运算,且所述规则关系的左规则节点的匹配成功率小于右规则节点的匹配成功率,保持当前所述左规则节点与所述右规则节点相对于所述规则关系的位置;
[0059]若所述逻辑运算关系为或运算,且所述规则关系的左规则节点的匹配成功率大于右规则节点的匹配成功率,保持当前所述左规则节点与所述右规则节点相对于所述规则关系的位置;
[0060]若所述逻辑运算关系为或运算,且所述规则关系的左规则节点的匹配成功率小于右规则节点的匹配成功率,将所述左规则节点与所述右规则节点相对于所述规则关系互相交换位置。
[0061]在具体的应用场景中,还包括:
[0062]检测模块,用于判断所述规则语法树中各所述逻辑运算关系的左右规则节点是否都已对比或互相调整完毕;
[0063]若是,所述检测模块输出所述规则语法树;
[0064]若否,所述检测模块指示所述调整模块继续根据逻辑运算关系的类型以及匹配成功率对比结果互相调整所述逻辑运算关系的左右规则节点的位置。
[0065]通过应用本发明的技术方案,确定与待处理规则对应的规则语法树中各规则节点对应的匹配成功率后,将规则语法树中各逻辑运算关系的左右规则节点的匹配成功率进行对比,最终根据逻辑运算关系的类型以及匹配成功率对比结果互相调整逻辑运算关系的左右规则节点的位置,从而达到了最佳匹配路径,减少了后续过程中规则节点的匹配次数,使得规则弓I擎运算效果得到了优化。
[0066]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-R0M,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景所述的方法。
[0067]本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0068]本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0069]上述本发明序号仅仅为了描述,不代表实施场景的优劣。
[0070]以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
【主权项】
1.一种规则处理方法,其特征在于,包括: 获取与待处理规则对应的规则语法树; 将规则运算上下文中的原始数据代入所述规则语法树中的各规则节点中,确定与各所述规则节点对应的匹配成功率; 将所述规则语法树中各逻辑运算关系的左右规则节点的匹配成功率进行对比; 根据所述逻辑运算关系的类型以及匹配成功率对比结果互相调整所述逻辑运算关系的左右规则节点的位置。2.如权利要求1所述的方法,其特征在于,将规则运算上下文中的原始数据代入所述规则语法树中的各规则节点中,确定与各所述规则节点对应的匹配成功率,具体为: 将所述原始数据分别代入对应的规则节点中; 确定所述规则节点在代入与其对应的原始数据后的匹配成功次数,以及所述规则节点所代入的原始数据的总数; 将所述匹配成功次数与所述总数的比值作为与所述规则节点的匹配成功率。3.如权利要求1所述的方法,其特征在于,根据所述逻辑运算关系的类型以及匹配成功率对比结果互相调整所述逻辑运算关系的左右规则节点的位置,具体为: 若所述逻辑运算关系为与运算,且所述规则关系的左规则节点的匹配成功率大于右规则节点的匹配成功率,将所述左规则节点与所述右规则节点相对于所述规则关系互相交换位置; 若所述逻辑运算关系为与运算,且所述规则关系的左规则节点的匹配成功率小于右规则节点的匹配成功率,保持当前所述左规则节点与所述右规则节点相对于所述规则关系的位置; 若所述逻辑运算关系为或运算,且所述规则关系的左规则节点的匹配成功率大于右规则节点的匹配成功率,保持当前所述左规则节点与所述右规则节点相对于所述规则关系的位置; 若所述逻辑运算关系为或运算,且所述规则关系的左规则节点的匹配成功率小于右规则节点的匹配成功率,将所述左规则节点与所述右规则节点相对于所述规则关系互相交换位置。4.如权利要求1-3任一项所述的方法,其特征在于,在根据所述逻辑运算关系的类型以及匹配成功率对比结果互相调整所述逻辑运算关系的左右规则节点的位置之后,还包括: 判断所述规则语法树中各所述逻辑运算关系的左右规则节点是否都已对比或互相调整完毕; 若是,输出所述规则语法树; 若否,继续根据逻辑运算关系的类型以及匹配成功率对比结果互相调整所述逻辑运算关系的左右规则节点的位置。5.一种规则处理设备,其特征在于,包括: 获取模块,用于获取与待处理规则对应的规则语法树; 确定模块,用于将规则运算上下文中的原始数据代入所述规则语法树中的各规则节点中,确定与各所述规则节点对应的匹配成功率; 对比模块,用于将所述规则语法树中各逻辑运算关系的左右规则节点的匹配成功率进行对比; 调整模块,用于根据所述逻辑运算关系的类型以及匹配成功率对比结果互相调整所述逻辑运算关系的左右规则节点的位置。6.如权利要求5所述的设备,其特征在于,所述确定模块,具体包括: 代入子模块,用于将所述原始数据分别代入对应的规则节点中; 确定子模块,用于确定所述规则节点在代入与其对应的原始数据后的匹配成功次数,以及所述规则节点所代入的原始数据的总数; 计算子模块,用于将所述匹配成功次数与所述总数的比值作为与所述规则节点的匹配成功率。7.如权利要求5所述的设备,其特征在于,所述对比模块,具体用于: 若所述逻辑运算关系为与运算,且所述规则关系的左规则节点的匹配成功率大于右规则节点的匹配成功率,将所述左规则节点与所述右规则节点相对于所述规则关系互相交换位置; 若所述逻辑运算关系为与运算,且所述规则关系的左规则节点的匹配成功率小于右规则节点的匹配成功率,保持当前所述左规则节点与所述右规则节点相对于所述规则关系的位置; 若所述逻辑运算关系为或运算,且所述规则关系的左规则节点的匹配成功率大于右规则节点的匹配成功率,保持当前所述左规则节点与所述右规则节点相对于所述规则关系的位置; 若所述逻辑运算关系为或运算,且所述规则关系的左规则节点的匹配成功率小于右规则节点的匹配成功率,将所述左规则节点与所述右规则节点相对于所述规则关系互相交换位置。8.如权利要求5-7任一项所述的设备,其特征在于,还包括: 检测模块,用于判断所述规则语法树中各所述逻辑运算关系的左右规则节点是否都已对比或互相调整完毕; 若是,所述检测模块输出所述规则语法树; 若否,所述检测模块指示所述调整模块继续根据逻辑运算关系的类型以及匹配成功率对比结果互相调整所述逻辑运算关系的左右规则节点的位置。
【专利摘要】本发明公开了一种规则处理方法,确定与待处理规则对应的规则语法树中各规则节点对应的匹配成功率后,将规则语法树中各逻辑运算关系的左右规则节点的匹配成功率进行对比,最终根据逻辑运算关系的类型以及匹配成功率对比结果互相调整逻辑运算关系的左右规则节点的位置,从而达到了最佳匹配路径,减少了后续过程中规则节点的匹配次数,使得规则引擎运算效果得到了优化。
【IPC分类】G06F9/44
【公开号】CN105573726
【申请号】CN201410532772
【发明人】陈显铭
【申请人】阿里巴巴集团控股有限公司
【公开日】2016年5月11日
【申请日】2014年10月10日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1