[发明专利]一种规则引擎实现方法及装置在审
申请号: | 201810074331.8 | 申请日: | 2018-01-25 |
公开(公告)号: | CN108399066A | 公开(公告)日: | 2018-08-14 |
发明(设计)人: | 燕猛 | 申请(专利权)人: | 链家网(北京)科技有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹;李相雨 |
地址: | 100085 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 规则语法 自然语言 计算机语言 定义规则 规则引擎 语法 计算机基础知识 规则结果 接口规范 开发效率 业务逻辑 用户修改 预先定义 传入的 映射 开发 | ||
本发明提供一种规则引擎实现方法及装置,所述方法包括:S1,根据Java ScriptEngine的接口规范,使用自然语言定义规则语法,并将所述规则语法映射到相应的计算机语言;S2,根据用户修改后的所述规则语法,以及用户传入的参数,运行所述规则语法对应的计算机语言,获取规则结果。本发明通过使用自然语言定义规则语法,用户不需要有很好的计算机基础知识,也能读懂。此外,对于不同的业务逻辑,只需要在预先定义的规则语法的基础上进行修改,不需要重新开发,大大提高了开发效率。
技术领域
本发明属于计算机引擎应用领域,更具体地,涉及一种规则引擎实现方法及装置。
背景技术
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
目前,应用系统中的有些业务逻辑会发生变动,规则引擎使得业务逻辑的调整和更改变得简单,如drools等框架提供规则引擎的功能。
现有的规则引擎系统比较复杂,需要有良好的计算机基础知识,学习成本高。此外,对于不同的业务逻辑需要开发不同的规则引擎,导致大量代码重复,开发需要耗费大量时间。
发明内容
为克服上述规则引擎复杂,且开发耗时的问题或者至少部分地解决上述问题,本发明提供了一种规则引擎实现方法及装置。
根据本发明的第一方面,提供一种规则引擎实现方法,包括:
S1,根据Java ScriptEngine的接口规范,使用自然语言定义规则语法,并将所述规则语法映射到相应的计算机语言;
S2,根据用户修改后的所述规则语法,以及用户传入的参数,运行所述规则语法对应的计算机语言,获取规则结果。
具体地,所述步骤S1中将所述规则语法映射为计算机程序语言的步骤具体包括:
将所述规则语法中的条件判断词语映射到相应的条件判断符;
将所述规则语法中的运算词语映射到相应的运算符;
将所述规则语法中的操作词语映射到相应的操作符;
将所述规则语法中的方法语句映射到相应的操作对象。
具体地,所述步骤S2具体包括:
将所述参数与修改后的所述规则语法进行匹配;
若修改后的所述规则语法中存在所述参数,则将所述参数传入修改后的所述规则语法对应的计算机语言,并运行修改后的所述规则语法对应的计算机语言,获取规则结果。
具体地,将所述规则语法中的条件判断词语映射到相应的条件判断符的步骤具体包括:
将所述规则语法中的“如果”映射为“if”;
将所述规则语法中的“否则”映射为“else”;
将所述规则语法中的“当”映射为“while”。
具体地,将所述规则语法中的运算词语映射到相应的运算符的步骤具体包括:
将所述规则语法中的“大于”映射为“>”;
将所述规则语法中的“小于”映射为“<”;
将所述规则语法中的“等于”映射为“=”。
具体地,将所述规则语法中的操作词语映射到相应的操作符的步骤具体包括:
将所述规则语法中的“打印”映射为“println”。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于链家网(北京)科技有限公司,未经链家网(北京)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810074331.8/2.html,转载请声明来源钻瓜专利网。