APP下载

发明初审智能审查规则引擎技术研究

2014-11-16陈安玥

中国新技术新产品 2014年12期
关键词:专利审查引擎逻辑

吕 亮 陈安玥

(国家知识产权局专利局,北京 100088)

一、发明初审现状

随着我国创新能力和创新水平的提高,未来五年我国申请量仍继续保持快速增长态势。以2011年发明专利申请量52.6万计算,年增长率34%,预计到2015年发明专利申请将达到169.6万余件。

同时在《全国专利事业发展战略2011-2020年》中明确提出了2015年达到“专利审批能力进一步提升,不断提高审查效率,改进审查质量,发明专利申请的平均实审结案周期缩短到22个月左右”的目标。

这就意味着不仅需要对现有审查模式做进一步改变,还需要通过改进和优化智能化审查手段来代替只靠增加专利审查人员的模式来适应我国发明专利申请的迅猛增长、支撑国家知识产权战略目标的达成。

通过新的技术手段,采用新的智能化的审查模式来提升审查效率、降低审查对人力资源的需求,进而缩短审查周期、提升审查质量,使我国发明专利授权质量和审查综合能力达到世界主要知识产权局的先进水平。

审查模式发生变化,由原来的电子文件审查转变为基于数据信息的审查,有原来的人工审查转变为主要依赖机器智能审查。这为技术实现提出了一个挑战。而专利申请和审查业务的复杂性,规则条款的繁多性,流程转移的多样性,又增加了业务实现的难度。

为此,为实现专利审查的智能化处理,需要首先实现专利审查规则的梳理和细化工作,而在专利局现有发明初审、PCT初审、法律手续等核心业务系统中,共涉及业务规则3300多条,在智能化处理中,需要对每条规则单独实现具体功能。针对这种非常复杂的需求,笔者与相关技术人员一起,对这些规则做了抽象归类,形成了规则引擎模型,通过这个规则引擎能够为实现专利信息的审查带来极大便利。

二、建立智能审查规则引擎的作用

规则引擎是专业的业务解析工具,可以满足业务规则复杂,业务与技术分离,可视化开发,便于维护,便于扩展等需求。

(1)业务规则的实现和解析运行

相对于纸件审查,电子审批是一次重要的业务变革,使审查业务人员从繁琐的手工劳动中解放出来。而智能审查是进一步的业务模式转变,把人工审查转变为机器智能审查、人工辅审结合的方式,由原来的主观审查,转变为机器的自动化客观审查。这不但能进一步解放人力资源,更能消除人员业务水平的差异带来的审查误差,实现审查业务的标准化、智能化,同时提高审查效率,降低审查成本。

规则引擎是一个业务逻辑的解析器。规则引擎需要结合规则编辑器、规则包来完成业务逻辑的解析。简单的说,我们通过业务分析提取业务规则,用于自动化审查点依据,通过规则编辑器可以实现用业务语言来编写程序,实现业务规则,并通过编译生成技术语言描述的规则包,规则包交由规则引擎执行,完成业务功能。最终实现业务审查点自动化,并将业务与技术的分离,业务人员可以直接参与开发和维护。

规则引擎是实现机器自动化的非常合适的手段。由于专利审查实际上是根据相关条款、条文对专利申请内容的审核。而这些条款、条文可以方便的抽象成业务规则,我们只需把这些业务规则按照逻辑关系,组合编写成机器程序,就可以实现机器智能审查。而规则引擎正是解决这一问题的专业工具,规则引擎用来进行专门的业务定制、业务解析、业务处理,满足高性能、稳定性、易维护性的需求。

(2)业务实现与技术实现分离

要实现审查的智能化,必然要面对业务中存在的大量审查规则,在专利局现有三大信息化应用中共涉及业务规则3300多条,这些规则大部分是些基本的逻辑判断,及其简单组合,与业务紧密相关,相对独立且存在随业务逻辑的变化而出现调整的情况。以传统编码实现的方式,无法实现需求变更的快速响应。往往一个小小的业务变更,要涉及到诸多代码的修改。而且由于修改了代码,整个系统都需要重新编译,系统要重新加载,导致系统重启,影响用户体验。即便是集群部署的情况下,由于每个服务都要升级一遍,操作复杂,容易造成遗漏,增加系统出现漏洞的风险。

而采用独立的规则引擎,可以实现业务无关性的设计,实现程序复用和性能的改善。规则引擎可以管理智能审查中与业务紧密相关的部分。一方面采用可视化的配置化编程的方法和动态加载技术,极大的降低程序员开发业务逻辑的工作量,并且可以随时更改业务规则,而不会影响程序代码,降低了维护成本,实现客户需求的快速响应。另一方面,由于业务层与底层实现技术分离,可以做到不用技术人员参与,只要业务人员经过短时间的培训即可实现业务编码,做到业务与技术分离,增加易维护性。

(3)促进业务人员、技术人员、管理分析人员协同工作

规则引擎可以让开发人员、业务人员和管理分析人员协同工作,提升开发效率;业务人员可以用业务语言直接描述自己的业务逻辑,开发人员根据业务描述可以方便的转化成程序代码;甚至业务人员可以直接在规则编辑器上用业务语言来实现功能,省去开发人员的参与。管理人员可以实时监控业务执行情况,分析发现问题,形成业务报表,优化业务流程。如图1所示。

规则引擎通过语言改进、图表等多种丰富的展现形式来减少业务部门、管理部门、设计部门、开发部门、测试部门、技术支持部门等相关人员的沟通成本,同时改进业务规则变更的流程,彻底加快业务变化的响应时间,提高敏捷性。

(4)基于配置开发,便于横向扩展

为了使智能化审查能够适应新的业务需求,需要尽可能分离业务需求以及技术实现。因此采用配置方式进行实现,而不采用程序编码方式,是有效解决业务逻辑变更和业务范围扩大的实现方式。

在自动生成代码的基础上,需要将代码自动进行编译,并且实现动态的加载,所生成的代码无需进行修改,直接应用到系统中。这样就彻底的实现了全配置、无编码的实现。

未来实现其他子系统的智能化,针对业务规则部分,可以不做太大的改动,只需加入新的业务规则包,即可实现规则审查的功能,能够方便的实现系统扩充。

三、智能审查规则引擎的技术实现

(1)引擎调用审查规则包的技术原理

新开发的程序通过规则引擎调用审查规则包,每个规则包中包含接口、规则逻辑和数据对象。如图2 所示。

(2)规则引擎的架构

规则引擎是用于外部程序来调用规则包的一批java类库,将一个规则引擎嵌入到应用程序中的方法与添加任何其他Java类的方法一样。在java的项目中,需要调用规则引擎来执行规则包,只需实现一个类(RuleEngine)就可以了。通过RuleEngine类就可以实现调用某个规则包,以及传递需要处理的业务数据。

每个规则包配置完成后,会生成一个继承RuleContext的类,并且将这个类自动编译发布到java的class path的路径中。外部程序通过RuleEngine接口,根据需要调用规则包的名称,加载对应的RuleContext类并且执行其excuteRule()方法。

(3)Web方式调用规则包原理

Jsp+规则引擎+规则包是一种MVC的架构模式,其中jsp中体现了View,规则引擎体现了Control,规则包体现了Model的结构。

Jsp层包括html部分和页面逻辑部分。为了保证系统的完全runtime,页面逻辑集成到jsp的头部,用于jsp字段和规则引擎的交互。Html部分采用jsp标签来处理jsp字段显示到html。

规则引擎只处理jsp字段和规则包的交互,规则引擎将jsp中字段传递给规则包,等规则包执行处理完数据后,再将处理后的规则包传递给jsp层。

规则包中设置了数据库对象、数据对象和业务逻辑,业务逻辑实现对数据对象和数据对象的处理。如图3所示。

在专利审查规则配置器中,可以添加一个web方式调用审查规则包的测试页面,这个测试页面采用jsp程序,其中根据规则包的接口数据结构,自动生成文本输入框。同时根据数据结构的类型,自动生成解析request中提交的数据,并且传递到规则引擎中,并且执行对应规则包,最后取出返回结果,在显示到页面中。以上过程完整的再现了java程序如何通过规则引擎调用规则包的实现方式。用户可以通过自动生成的jsp代码查看具体的实现。

四、规则引擎功能

规则引擎具备开发支持和运行支持两大功能,同时支持版本控制、修改发布、动态加载、测试跟踪、远程管理等功能。

(1)规则配置器

规则配置器是一款基于规则引擎和产生式编程技术的全配置软件开发平台。

规则配置器首先是一个业务规则管理系统,提供可视化的规则配置器,业务人员或者开发人员可以使用配置界面直接编写业务规则,并生成可以执行的规则包。在配置界面还可以对数据库、传输参数等进行管理维护,还可以查看流程图、源代码、执行测试的等功能。

同时,规则配置器又提供配置界面,自动生成了前端用户操作界面的代码。这样就实现了信息化系统功能的全配置开发,无需采用编码方式。

另外,规则配置器还是一个SOA平台,通过SOAP、Socket、Http等多种方式为外部的其他系统提供服务。

(2)规则包版本控制

专利审查规则的修改需要进行版本控制,新建的规则包的版本缺省情况下是1.00,其中整数部分的版本为规则的大版本,小数部分为规则小版本。每次修改并保存新版本时,都会自动添加0.01,依次递增。

专利审查规则包每审核一次,都会进行规则包大版本的递增,用于区分规则的审核情况。规则的小版本,在具体的规则编辑过程中,可以选择递增,用于区分对规则包的修改情况。

当规则包开发完成之后,上传到数据库服务器中,分为两种类型,一种是开发类规则包,另外一种是管理类规则包。管理类规则包才能进行规则的审核等操作,以及进行大版本的递增。 开发类规则包只能进行小版本的变动。

(3)规则修订痕迹跟踪

规则修改时,需要跟踪规则包的修改情况,目前只记录规则和决策表的修改情况。

当用户在开发过程中,可以对规则包设置修订点。当设置了修订点之后,规则包会记录一个当前所有规则的编辑状态。以后进行规则的修改时,可以查看到规则的变化情况,并且可以同时看到当前规则和修订点规则的对比情况。

用户还可以选择某个版本的规则进行比较,比较时可以看到每个规则的修改情况。

(4)规则执行轨迹记录

规则执行完毕之后,需要记录规则的执行轨迹。当前记录所有满足条件的规则的执行情况,并且记录规则进入时的数据值以及执行完之后的数据值。

目前在规则编辑器中,当使用了规则包的测试功能之后,会记录当前规则包执行的执行规则,用户可以打开进行查看。

规则执行时,首先会对整个规则包记录一个执行轨迹根。然后执行规则集时,会在此根下面新建一个执行轨迹。当执行规则时,会在父的执行轨迹下面再新建一个执行规则。新建时,记录了规则的名称,以及进行相关的变量,以及执行前值和执行后值的情况。

规则包进行执行时,会将执行完毕之后的轨迹对象存储到数据库中。在进行查看时,就可以看到规则包的执行树状结构。

(5)规则执行日志

规则包中可以设置日志输出,日志分为错误、警告、提示、调试等多种信息。可以通过注册日志记录服务,来实现日志的多种方式导出。

日志输出时可以包括以下信息:规则包名、执行时间、日志类型、日志信息、输入参数、输出参数等。

通过对日志的输出,可以有效的了解和记录所有规则包的执行情况。

(6)业务规则管理

业务规则管理是针对规则管理人员而设置的模块应用,主要用于管理上传到数据库中的规则包。对存在于数据库中的规则包进行查询,以及对其中的各个版本进行在线的查看和修改。可以为规则包分配用户权限,设置哪些人可以有查看、修改、开发、审批、执行、发布权限。可以对规则包的某个版本进行申请审核、审核、测试、执行和发布利益等操作。在具体的规则执行中,可以执行规则的源数据结构以及结果数据结构,可以查看规则的原始数据和最终结果数据。

结语

规则引擎技术为专利审查多变、复杂的业务逻辑提供了一种解决思路和方案。规则引擎既能够管理应用层的业务逻辑,也可以对应用展示层的页面流程、规则进行定制。这是给专利审查这类大型信息系统的智能化提供了一种选择。而Java规则引擎在不断进行完善和发展中,也必将为专利审查智能化水平的不断提升带来更大助益。

通过对专利审查规则引擎技术的研究和初步测试,笔者认为将规则引擎应用于专利审查智能化在技术上是可行的,笔者对规则引擎的研究成果,对于配合专利审查模式转变、提高专利审查智能化水平方面,其实际应用效果将在向实际系统转化后得到进一步的论证。

[1]黄皞.业务规则管理系统ILOG JRules规则引擎分析[D].解放军信息工程大学,2006.

[2]曹永亮.基于Java规则引擎的动态数据清洗研究与设计[D].武汉理工大学,2008.

[3]刘际.规则引擎在业务逻辑层中应用的研究[D].大连海事大学,2007.

[4]薛军.基于J2EE的BPM系统设计与开发[D].电子科技大学,2007.

[5]李超.业务规则管理系统的研究与实现[D].北京邮电大学,2011.

猜你喜欢

专利审查引擎逻辑
刑事印证证明准确达成的逻辑反思
逻辑
创新的逻辑
专利审查协作模式创新与路径优化:审查效率与审查质量导向下的制度演变
提升专利审查质量 支撑知识产权建设
对《专利审查指南2010》第二部分第4章第2.2节所述的“有限的试验”的一点理解
无形的引擎
基于Cocos2d引擎的PuzzleGame开发
从一个案例出发浅析答复创造性专利审查意见时的修改超范围
One Engine Left只剩下一个引擎