System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于规则推理技术的动态解析方法技术_技高网

一种基于规则推理技术的动态解析方法技术

技术编号:40005501 阅读:10 留言:0更新日期:2024-01-09 04:56
本发明专利技术涉及一种基于规则推理技术的动态解析方法,属于人工智能领域。本发明专利技术在drools规则引擎机制下,加入了解析器、映射器和接收器,实现了调用接口时输入可变长参数事实数据,解析器对输入的事实数据进行动态解析,传入映射器映射到事实对应的执行方法,执行后的结果通过接收器进行结果输出,完成规则推理的整个匹配过程。参数中可选择性指定规则匹配范围,可有效缩短规则匹配时间,实现动态解析匹配。

【技术实现步骤摘要】

本专利技术属于人工智能领域,具体涉及一种基于规则推理技术的动态解析方法


技术介绍

1、规则推理引擎也叫产生式系统,是由基于规则的专家系统发展而来。基于规则的专家系统是人工智能领域中专家系统的一个分支,它模拟人类的推理方式,使用试探性的方法进行推理,并使用人类能理解的术语解释和证明它的推理结论。基于规则的专家系统,使用的知识包括事实和规则。事实是用来表示已知的数据或信息,规则即产生式规则,用来表示系统推理的有关知识。

2、drools是基于正向推理的规则引擎。正向推理是数据驱动的,facts(事实)被传递到工作空间中,在那里有一个或多个规则与这些事实匹配,并由agenda(议程)安排执行,从一个事实开始,传递事实,最后得出结论。但存在资源加载匹配时间长且不够灵活的问题。


技术实现思路

1、(一)要解决的技术问题

2、本专利技术要解决的技术问题是如何提供一种基于规则推理技术的动态解析方法,以解决资源加载匹配时间长且不够灵活的问题。

3、(二)技术方案

4、为了解决上述技术问题,本专利技术提出一种基于规则推理技术的动态解析方法,该方法包括如下步骤:

5、s11、利用map数组将定义的实体类与接口中输入的json可变长参数放入map数组中形成映射,解析器对map数组中的每个entry进行遍历,遍历过程中对接收到的json可变长参数对象进行解析,查找并加载指定的类并转换成object对象,传入到映射器中;

6、s12、映射器中需要输入的参数包括指定的类名称、要执行的类方法、参数个数以及要触发的具体object对象;映射器会查找并加载指定的类和对应的类方法,再利用反射机制将参数传入并调用执行对应的类方法,并返回得到的结果存入result数组,此过程即为规则触发;

7、s13、接收器对result数组内容和result数组长度进行判断,若result数组不为空且result数组长度等于映射器中的参数个数,则将result数组逐一输出;否则输出匹配失败提示字样。

8、如权利要求1所述的基于规则推理技术的动态解析方法,其特征在于,json可变长参数中输入对应的规则分类名称,后台会存入可变长数组map中,通过解析器遍历该数组map,利用mybatisplus中的lambdaquerywrapper.eq方法查找到与输入参数中的规则分类名称一致的匹配项,获取到该规则分类对应的编码id,添加到对象数组中,供drools引擎获取。

9、一种基于规则推理技术的动态解析方法,该方法包括如下步骤:

10、s21、在规则执行接口中输入json可变长参数,包括:要进行匹配推理的事实数据和规则匹配范围;

11、s22、利用map数组将定义的实体类与规则执行接口中输入的json可变长参数放入形成映射,对map数组中的每个entry进行遍历,对接收到的json可变长参数对象进行解析,查找并加载指定的类并转换成object对象,传入到映射器中;

12、s23、映射器中需要输入的参数包括:指定的类、要执行的类方法、参数个数以及要触发的具体object对象;映射器会查找并加载指定的类和对应的类方法,再利用反射机制将参数传入并调用执行对应的类方法,并返回得到的结果存入result数组,此过程即为规则触发;

13、s24、接收器对result数组内容和result数组长度进行判断,若result数组不为空且result数组长度等于映射器中的参数个数,则将result数组逐一输出;否则输出匹配失败提示字样。

14、(三)有益效果

15、本专利技术提出一种基于规则推理技术的动态解析方法,本专利技术与现有技术相比的优点在于:

16、本专利技术实现了对可变长参数的动态解析,并可指定规则匹配范围,可灵活输入事实数据;统一输出模式,无需每种结果单独写一个输出类;当规则达到一定规模时,可有效减少规则匹配时间。

本文档来自技高网...

【技术保护点】

1.一种基于规则推理技术的动态解析方法,其特征在于,该方法包括如下步骤:

2.如权利要求1所述的基于规则推理技术的动态解析方法,其特征在于,json可变长参数中输入对应的规则分类名称,后台会存入可变长数组map中,通过解析器遍历该数组map,利用mybatisPlus中的LambdaQueryWrapper.eq方法查找到与输入参数中的规则分类名称一致的匹配项,获取到该规则分类对应的编码id,添加到对象数组中,供drools引擎获取。

3.如权利要求2所述的基于规则推理技术的动态解析方法,其特征在于,drools引擎中的kiebase使用该对象数组。

4.如权利要求2所述的基于规则推理技术的动态解析方法,其特征在于,该json可变长参数为可选参数,如不指定范围则默认加载全部规则库文件。

5.如权利要求1-4任一项所述的基于规则推理技术的动态解析方法,其特征在于,drools引擎对外提供规则执行接口,调用者可输入json格式的事实数据,不限参数个数,同时可指定规则匹配范围,即规则分类;通过解析器对可变长参数进行动态解析,将json转换成java类,进行规则触发,再利用映射器将每个参数映射到其对应的执行方法,得到的推理结果传给接收器进行前端界面显示或后台显示。

6.一种基于规则推理技术的动态解析方法,其特征在于,该方法包括如下步骤:

7.如权利要求6所述的基于规则推理技术的动态解析方法,其特征在于,规则匹配范围是可选参数,若不指定则默认加载整个规则库文件。

8.如权利要求6所述的基于规则推理技术的动态解析方法,其特征在于,在规则执行接口中输入对应的规则分类名称,后台会存入可变长数组中,通过解析器遍历该数组,利用mybatisPlus中的LambdaQueryWrapper.eq方法查找到匹配项,获取到该规则分类对应的编码,添加到对象数组中,供drools引擎获取。

9.如权利要求8所述的基于规则推理技术的动态解析方法,其特征在于,drools引擎中的kiebase使用该对象数组。

10.如权利要求6-9任一项所述的基于规则推理技术的动态解析方法,其特征在于,drools引擎对外提供规则执行接口,调用者可输入json格式的事实数据,不限参数个数,同时可指定规则匹配范围,即规则分类;通过解析器对可变长参数进行动态解析,将json转换成java类,进行规则触发,再利用映射器将每个参数映射到其对应的执行方法,得到的推理结果传给接收器进行前端界面显示或后台显示。

...

【技术特征摘要】

1.一种基于规则推理技术的动态解析方法,其特征在于,该方法包括如下步骤:

2.如权利要求1所述的基于规则推理技术的动态解析方法,其特征在于,json可变长参数中输入对应的规则分类名称,后台会存入可变长数组map中,通过解析器遍历该数组map,利用mybatisplus中的lambdaquerywrapper.eq方法查找到与输入参数中的规则分类名称一致的匹配项,获取到该规则分类对应的编码id,添加到对象数组中,供drools引擎获取。

3.如权利要求2所述的基于规则推理技术的动态解析方法,其特征在于,drools引擎中的kiebase使用该对象数组。

4.如权利要求2所述的基于规则推理技术的动态解析方法,其特征在于,该json可变长参数为可选参数,如不指定范围则默认加载全部规则库文件。

5.如权利要求1-4任一项所述的基于规则推理技术的动态解析方法,其特征在于,drools引擎对外提供规则执行接口,调用者可输入json格式的事实数据,不限参数个数,同时可指定规则匹配范围,即规则分类;通过解析器对可变长参数进行动态解析,将json转换成java类,进行规则触发,再利用映射器将每个参数映射到其对应的执行方法,得到的推理结果传给接收器进行...

【专利技术属性】
技术研发人员:陈玉伟刘洪宇
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1