搜档网
当前位置:搜档网 › 基于Web服务环境的规则引擎可视化建模研究

基于Web服务环境的规则引擎可视化建模研究

分类号TP311 密级公开

UDC 编号

硕士研究生学位论文

题目基于Web服务环境的规则引擎

可视化建模研究

Research of Rule Engines Visual

Modeling Based on Web Service

Environment

学院(所、中心)信息学院

专业名称计算机技术

研究生姓名学号

导师姓名职称

2012年04 月

扉页:

独创性声明

本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人或集体已经发表或撰写过的研究成果,对本文的研究做出贡献的集体和个人均已在论文中作了明确的说明并表示了谢意。

研究生签名:日期:

论文使用和授权说明

本人完全了解云南大学有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交学位论文和论文电子版;允许论文被查阅或借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。

(保密的论文在解密后应遵循此规定)

研究生签名:导师签名:日期:…………………………………………………………………

本人及导师同意将学位论文提交至清华大学“中国学术期刊(光盘版)电子杂志社”进行电子和网络出版,并编入CNKI系列数据库,传播本学位论文的全部或部分内容,同意按《中国优秀博硕士学位论文全文数据库出版章程》规定享受相关权益。

研究生签名:导师签名:日期:

摘要

在当前快速发展的社会中,传统的应用程序开发过程已经不能满足对外部环境改变的快速适应。随着国家法律法规的改变、企业的市场竞争策略或内部管理方式的改变、不同用户需求的改变,使得企业应用系统的需求必须根据这些改变而改变,而在传统的系统编码方式中,每发生一次改变可能都需要涉及整个系统的重新设计,因此无论是对系统的建立或是维护都非常复杂。这时就需要采用动态的需求修改方式,利用规则引擎驱动业务规则,将业务规则从信息系统中剥离出来,可以提高信息系统的快速适应与可重用性。

规则引擎是一种嵌入在应用程序中的组件,用于将业务逻辑从应用程序代码中分离,并使用预定义的语义模板编写规则,其目标是实现应用系统的快速可配置性。正是由于规则引擎具有将主体业务逻辑处理从代码中分离的特性,以及基于这个基本特性所带来的便于维护性、方便可扩展性、可靠安全性和突出的执行效率等,使得规则引擎技术成为当前计算机应用业界关注和推广的前沿研究技术领域,广泛应用于企业服务实现。但由于直接设计规则引擎的规则语言过程复杂且不直观,于是业界对规则引擎中业务规则的建模研究越来越朝着可视化的方向发展,即朝着语言标准化、定义图形化和生成自动化的方向发展。

本文在研究业务规则及规则引擎相关技术原理的基础上,对规则引擎在Web 服务环境下的可视化建模进行了研究,首先简要介绍了规则引擎及其相关技术,然后通过分析当前主流规则引擎的规则描述语言提出了URML统一规则建模语言,给出了URML的描述格式到规则引擎规则文件描述格式的映射规则,并通过示例展示了两者的转换,最后,本文借鉴当前主流的可视化建模系统的设计思想,提出了基于Web服务环境的规则引擎可视化建模方案,设计了可视化规则建模工具的总体框架以及主要模块,使用Java语言和GEF图形建模框架实现了基于URML建模语言的可视化规则建模工具,并通过一个案例展示了该可视化建模工具的基本功能。

关键词:规则引擎;Web服务环境;可视化建模;统一规则建模语言

Abstract

Now in the rapid development of society, the traditional application development process has been unable to satisfy with adapting to the rapidly changed environment. With the changes in state laws and regulations, changes in market and competitive strategy or internal management style, changes in demand of different users, all of these make the demand of application systems need to be changed with them. But in the traditional system encoding, for every change may involve the entire system to re-design, so make the establishment or maintenance of the systems are very complex. So we need to use dynamic demand changes technology, use the Rule Engine to drive business rules, and separate business rules from the information system. It will provide information systems for adapting quickly and reusability.

Rule Engine is a component embedded in the application. It uses to separate business logic from the application code, and uses the predefined semantic templates to write rules.Its goal is to achieve the fast configuration of application system. Because of the Rule Engine has the characteristic of the main business logic separated from the code, and the advantages of facilitated maintenance, easy scalability, reliable security, and outstanding execution efficiency. All of these make the Rule Engine technology receive attention from the computer applications industry and promote to be cutting-edge research, has been widely used in the realization of the corporate services. However, due to the direct design rules process of Rule Engine is complex and not intuitive, so the research of business rules modeling in Rule Engine toward the direction of visual development, language standardization, definition graphical and generate automated.

Based on the business rules and the Rule Engine technology, this paper is to study the visual modeling of Rule Engine in Web services environment. First, this paper introduces the Rule Engine and its related technologies, Second, this paper proposes the URML (uniform rules modeling language) on the basis of rules description language, and gives the mapping rules of description format of URML to the rule files descriptions of Rule Engine, and shows the conversion by an example.

Finally, this paper learns from the current mainstream ideas of the visual modeling systems, propose the proposal of visual modeling for Rule Engine in Web Service environment, designs the overall framework and the main module of the visual rules modeling tool. It uses the Java language and the GEF Graphical Modeling Framework to achieve the visual modeling tool based on URML, and uses a specific case to show the basic functions of the visual modeling tool.

Key Words: Rule Engines; Web Service Environment; Visual Modeling; URML

目录

摘要............................................................................................................................ I Abstract ......................................................................................................................... II 目录.............................................................................................................................. I V 主要缩写和符号表...................................................................................................... V I 第一章绪论 (1)

1.1 研究背景 (1)

1.2 研究目的和意义 (2)

1.3 国内外研究现状 (3)

1.4 研究内容 (4)

1.5 论文结构与安排 (4)

第二章相关理论和技术研究 (6)

2.1 规则概述 (6)

2.1.1 规则的基本概念 (6)

2.1.2 规则的描述形式 (7)

2.2 规则引擎概述 (8)

2.2.1 规则引擎的基本架构 (8)

2.2.2 规则引擎的推理方式 (10)

2.2.3 规则引擎的匹配算法 (13)

2.3 Web服务相关技术 (17)

2.3.1 Web服务基本概念 (18)

2.3.2 Web服务体系结构 (18)

2.3.3 Web服务关键技术 (19)

2.4 本章小结 (21)

第三章基于XML的统一规则建模语言 (22)

3.1 Java规则引擎 (22)

3.1.1 常用Java规则引擎 (22)

3.1.2 规则描述语言 (24)

3.2 统一规则建模语言(URML) (26)

3.2.1 统一规则建模语言简介 (26)

3.2.2 统一规则建模语言详细设计 (26)

3.3 示例展示 (29)

3.4 本章小结 (30)

第四章基于Web服务环境的规则引擎可视化建模 (31)

4.1 基于Web服务环境的规则引擎可视化建模方案 (31)

4.1.1 问题的提出 (31)

4.1.2 解决方案 (32)

4.1.3 处理流程 (33)

4.2 可视化规则编辑模块设计 (34)

4.2.1 GEF技术框架 (34)

4.2.2 可视化规则编辑工具设计 (35)

4.2.3 对象序列化 (38)

4.3 Web服务转接模块设计 (39)

4.4 规则转换模块设计 (40)

4.5 应用案例 (43)

4.6 本章小结 (48)

第五章总结与展望 (49)

5.1 论文总结 (49)

5.2 展望 (49)

参考文献 (51)

致谢 (54)

参与项目情况与主要研究 (55)

主要缩写和符号表

主要缩写和符号表

URML SOA LHS RHS SOAP WSDL UDDI DRL XML JessML IRL GEF JAXB MVC Axis United Rules Modeling Language

Service Oriented Architecture

Left Hand Side

Right Hand Side

Simple Object Access Protocol

Web Services Description Language Universal Description Discovery and Integration Drools Rule Language

Extensible Markup Language

Jess’s XML Rule Language

ILog Rule Language

Graphical Editor Framework

Java Architecture for XML Binding

Model-View-Control

Apache Extensible Interaction System

第一章绪论

1.1 研究背景

规则引擎(Rules Engine)是指用于管理和自动实现业务规则的人工智能软件系统,其主要实现的功能是用于将业务逻辑规则从应用程序的代码中分离出来,使用预定义的语义模块编写规则,并联系规则和执行这些规则[1]。规则引擎中的规则主要是指企业制定的商业决策等。使用规则引擎技术来驱动部署在企业应用系统服务器上的Web服务,可以使处在瞬息万变的商业环境中的企业能够灵活、快速和动态地响应不断改变的业务规则。

使用规则引擎分离业务逻辑的主要优点有以下三点:

①声明式编程:声明式编程是指规则引擎可以由规则描述语言来表示“做什么”和“怎么做”;

②逻辑与数据分离:在规则引擎中,规则集用来存储制定好的规则,将其与输入的数据分开存储,只有在规则引擎进行匹配时才将数据放入规则中将其实例化,这样做很大程度上简化了业务逻辑的维护工作;

③快速的匹配:规则引擎使用快速匹配算法,有效保证了规则匹配的效率。

规则引擎技术是实现以规则为基础的专家系统技术,其核心内容是对认知的操作,包括对认知的描述、运算以及对认知集的管理和构造[2]。规则引擎并不是一个近些年才被提出的概念,但是这项技术在早期并没有在企业应用系统中得到广泛的使用,一是因为以往的企业应用系统对灵活性和动态性要求并不是极高,二是因为规则引擎技术的使用门槛较高,使用规则引擎技术部署应用系统较为复杂,且当前规则引擎中规则描述语言的编写仍然需要有一定编程基础的人,而企业中一些商业决策的制定者往往不具备编程的基础,这也与使用规则引擎技术快速方便的管理规则的初衷相悖。

随着商业模式的发展和市场环境的变换,当今的企业越来越需要灵活性和对市场的适应能力较高的应用系统,这使得规则引擎技术有了充分发挥其特性和优势的条件和机会。目前国内外对规则引擎技术的研究也越来越侧重于其在实际中的应用,许多企业应用服务商都陆续推出了自有的基于规则引擎技术开发的商业化产品,作为最常用的企业应用开发平台之一,Java语言平台在推出了JSR94[3]

(Java规则引擎API)规范后,就一直在努力发展和推广基于Java语言的规则引擎技术。目前来说,使用规则引擎技术来开发企业的应用系统已经从起步阶段很快地迈入到了快速推广和发展阶段。

不过,通过研究分析当前主流的规则引擎及其相关技术,发现如果直接通过规则引擎的规则描述语言来设计规则,对于大多数的商业决策制定人员来说,还是非常的复杂和不直观,于是业界对规则引擎中业务规则的建模研究开始朝着可视化的方向发展,即朝着语言标准化、定义图形化和生成自动化的方向发展。规则引擎在设计规则时采用图形方式对规则进行描述,是一种更直观更容易理解的方式,使用户可以方便快捷的设计和修改业务规则,以达到企业快速适应市场变化的要求。

本文针对当前的主流规则引擎,在Web服务环境下设计了一套统一规则建模语言(URML),并在此基础上研究和提出了一种基于Web服务环境的规则引擎可视化建模方案,为商业决策的制定人员提供了可视化的环境,方便其更加直观和方便的定制符合需求的商业决策。

1.2 研究目的和意义

本文研究的目的在于给出一个完整的基于Web服务环境的规则引擎可视化建模方案,用于支持当前在规则引擎设计规则时的方便和直观目标。针对这一目标,首先提出了一套基于XML的统一规则建模语言,简称为URML,其优势在于它描述规则和可视化图元的能力,可以突破规则引擎中描述语言的限制以及方便与可视化规则建模的模型层进行对接,然后在统一规则建模语言(URML)的基础上,提出了一套基于Web服务环境的规则引擎可视化建模方案,开发了一个可视化规则建模工具,用于提供规则编辑的可视化环境。

本论文的研究成果可以用于设计和管理企业应用系统中的商业决策,用户可以通过可视化规则建模工具直观和快速的设计规则,主要解决了商业决策的制定人员在没有编程基础的情况下设计规则困难的问题。本论文提出了一个基于Web 服务环境的规则引擎可视化建模方案,使其能够采用一种更加直观、更易于理解和图形化方法对规则进行设计和描述,为商业决策的制定人员提供了可视化的环境支持,方便其制定业务流程,并研究提供于在Web服务环境中使用,以提高

企业应用系统的可重用性。

1.3 国内外研究现状

目前国内外对规则引擎的研究可分为三个部分:

一是研究规则引擎的概念和技术。成立于1993年的业务规则组致力于探索规则概念的形式化表示方法,该项目的主要目标是定义规则相关的概念以及如何将规则应用到信息系统中[4]。规则引擎的主要技术是基于规则的专家系统。专家系统是人工智能技术的主要分支,是一种模仿人类思维方式基于知识或者其他认知形式进行推理的逻辑推演系统[5]。基于规则的专家系统就是根据既定规则结合实际情况进行推理的专家系统,称为规则系统[6],例如著名的prolog语言系统。

二是研究规则引擎的规则语言及模型。成立于2000年的RuleML标准化组织,希望建立一个开放的,独立于规则引擎的基于XML的标准规则语言[7]。OMG 于2002年成立了业务规则工作组,其任务主要是提供在系统中描述和使用规则的模型体系结构。

三是研究规则引擎的实现和优化。近年来计算机应用业界开始致力于将规则引擎系统技术应用于企业服务,许多厂商和研究机构或组织也相继推出和不断改进商用规则引擎产品,其中比较有代表性的有Microsoft基于.Net平台的BizTalk[8],IBM的WebLogic[9],JBoss的Drools[10](JBoss Rule Engine),JESS[11]和ILog JRules[12]等。可以说是商用规则引擎技术及其应用正是当前企业服务领域快速发展和推广的使用技术。

随着面向服务架构(SOA)的兴起和企业信息化的发展,Web服务环境正逐渐成为企业首选的应用系统开发方案。高内聚低耦合的Web服务可以给企业应用系统带来良好的可重用性和灵活性,业务流程是描述和整合Web服务的具体业务功能,使用规则引擎来制定业务流程可以方便得根据商业规则来制定和改变应用系统的业务规则。

当前Web服务业务流程规范的典型工作有UN/CEFACT与OASIS的ebXML BPSS,IBM的WSFL,Microsoft的XLANG,以及最近IBM,Microsoft和BEA 共同提出的BPEL4WS等。这些规范都提供了一种规范化的业务流程描述手段,也出现了一些基于上述业务流程描述规范的建模系统模型。其中,国外典型的系

统有Georgia大学研究开发的服务组合和执行工具SCET、HP公司的eFlow系统、美国斯坦福大学SWIG研究组提出的SWORD系统、IBM的BPWS4J等。国内典型的系统有北京航空航天大学的WebSASE、中科院软件所研究的WSFlow系统等。

通过对上述国内外规则引擎技术和Web服务业务流程的建模系统的研究分析可以看出:一是目前规则引擎技术的研究工作主要集中在规则语言和算法两个方面。业务规则作为规则引擎的核心和基础,能够直观快速的设计规则也是需要研究的方向之一。二是当前在对Web环境下规则的建模在不同方面、不同程度上也都存在一定的弊端。本论文研究并提出了一种基于Web服务环境的规则引擎可视化建模方案,使其能够采用一种更直观、更易于理解和图形化的方法对规则进行设计和描述,为业务规则制定人员提供可视化的环境支持,方便其制定业务流程。

1.4 研究内容

本文的主要内容是:

(1)了解国内外规则引擎技术的研究现状,并对规则引擎和Web服务的相关技术以及算法进行了分析和研究。

(2)通过分析当前主流规则引擎的规则描述语言,提出设计了基于XML 的统一规则建模语言(URML),并实现了统一规则建模语言与Drools规则描述文件的映射。

(3)可视化规则建模工具的总体框架以及功能设计。

(4)使用规则引擎驱动Web服务,并实现Web服务环境下传输数据的封装,使之成为规则引擎可以直接处理的数据对象。

1.5 论文结构与安排

本论文共分为五章:

第一章为绪论,首先介绍了本论文的研究背景和国内外研究现状,然后给出了本文的研究内容和结构安排。

第二章为相关理论和技术研究,对规则引擎领域和Web服务的相关技术进

行了简要的介绍,为下文的论述提供理论基础。

第三章为基于XML的统一规则建模语言,首先介绍了常用的Java规则引擎,然后对这些主流规则引擎的规则描述语言进行了分析研究,最后提出设计了统一规则建模语言(URML)。

第四章为Web服务环境下的规则引擎可视化建模,首先对当前主流规则引擎在规则设计方面的问题进行了论述,然后针对问题提出了可视化建模方案,在统一规则建模语言的基础上设计了可视化规则建模工具,最后详细描述了可视化规则建模工具的总体框架和功能设计,并使用一个简单的案例来描述可视化规则设计的过程。

第五章为总结与展望,总结本文的工作,并提出下一步的工作展望。

第二章相关理论和技术研究

2.1 规则概述

在研究规则引擎时,必须首先要了解规则的概念。一个业务规则通常包含一组条件和在此条件下执行的操作,也可以称之为“该做什么决定”和“做这个决定的原因”,将两者结合得到“在一定的前提条件下做出的相应的决定”,这就是规则(Rule)。

2.1.1 规则的基本概念

现实世界是一个充满规则的世界,人类社会在生活中的一切思维模式和行动模式都要遵循规则的约束和规范[13]。规则究竟是什么?首先还需要说明两个与规则相关的基本概念,即事实(Fact)和模式(Pattern)。

事实:事实是对外部世界真实情况的一种表述和反映,对应到现实世界中,人类社会的一切命题或者断言都可以被视为事实,无论这些命题和断言是否为真。以下给出的例子就可以被称为事实:

Fact1: Rule Engine is an Expert System

(规则引擎是一种专家系统)

Fact2: Drools is one of Rule Engines

(Drools是规则引擎的一种)

因为由自然语言形式所表述的事实很难直接被计算机所理解,所以要对事实加以形式化的描述,其中一种表述方法是使用元组(Tuple),以下为上述两个事实的元组表述:

(Fact1 (is, Expert-System, Rule-Engine))

(Fact2 (is-one-of, Rule-Engines, Drools))

在规则引擎技术中,带常量的元组即为事实的定义。

模式:模式与事实相似,也定义为元组,但与事实不同的是,模式是事实的一种泛化形式,以事实为基础,将其中的常量用变量替代,以下是对前文中列举的两条事实相应的模式表示:

(Pattern1 (is, Expert-System, ?x))

(Pattern2 (is-one-of, ?x, ?y))

在规则引擎技术中,模式可以定义为包含若干个条件域并且带变量的元组。简单的可以这样认为:模式是一种泛化的事实,事实是一种实例化的模式。

了解了事实和模式的概念后,我们就可以知道“规则”的定义了。“规则”是一个由条件和结论构成的推理语句,它由LHS (Left Hand Side)和RHS (Right Hand Side)两部分构成。LHS部分包含一个或若干个模式,称作条件部分,该部分的主要作用是用来与事实进行匹配;RHS部分包含当事实匹配条件部分后结果为真时的执行操作,称作结论部分。结合前文中的例子,可以将一条规则完整的描述如下:

(Rule1 (is-one-of, ?x, ?y)

(is, Expert-System, ?x)

=> (add ?y into result))

规则Rule1的自然语言描述为:如果y是x的一种并且x是一种规则引擎,那么将y加入结果。

2.1.2 规则的描述形式

规则是一种基于域约束(Field Constraints)的表达式,其中包含若干个条件,并且同时定义了当这些条件都得到满足时的情况下应该执行的动作[14]。因此规则可以被视为是一种逻辑推理结构,也可以将其用一种推理语句来进行描述,当存在事实满足条件时,相应的结论就会被激活。虽然目前为止还没有一种统一的规则语言的描述形式,但是基本上所有的规则系统都可以以这样的结构描述规则:

IF/WHEN

Condition(条件部分)

THEN

Action(结论部分)

其中规则的LHS(条件部分)对应于推理语句结构中的IF(WHEN)子句,RHS(结论部分)对应于THEN子句。

这里提及的对于规则的描述,严格地来讲可以说是对规则实例的描述,规则

实例的LHS(条件部分)包含的是实例化的模式,在相应规则的形式化语句描述中,IF(WHEN)子句中包含的内容可以看作是实例化的模式,其中的Condition (条件)对应于模式中包含的变量,而事实中的信息则转换为含有具体定义的条件值。

规则是规则引擎技术的基础概念之一,几乎所有在规则引擎技术中的问题都离不开规则。因此在了解了规则的定义以及相关问题之后,本文就可以具体展开对规则引擎技术的研究了。

2.2 规则引擎概述

规则引擎是专家系统中的一个分支,由推理引擎发展而来,是一个嵌入在应用程序中的组件,其主要实现了将业务逻辑规则从应用程序的代码中分离出来,并使用一种预定义的语义模块编写业务决策。

2.2.1 规则引擎的基本架构

规则引擎的实质是基于规则的专家系统(Rule Based Expert System),简称RBES。专家系统技术是通过模拟人类的思维模式,来解决实际问题,通常使用试探式的方法来进行推理,并将其推理出的结果以人类可以理解的形式表述和证明出来。其主要技术分支有:神经网络技术、基于案例的推理系统,基于规则的推理系统[15]。

规则引擎根据给定的规则(Rule),让输入事实(Fact)与规则的条件部分进行模式匹配(Pattern Match),匹配结果为真时,驱动与规则对应的操作或者事件。规则引擎技术的核心思想是构建和实现一个基于求真推理机的规则系统。图2.1描述的是规则引擎技术的基本模型。

图 2.1 规则引擎的基本模型

由图2.1可以看出,规则引擎的基本组成有规则集、工作内存、推理机和执行机四个部分:

规则集(Rule Base):规则集是规则引擎中用来存储规则的部分,其作用是用于存放和提供规则引擎中使用的规则,也称作产生式存储(Production Memory)。大部分规则引擎系统都只支持自己提出的规则形式。

工作内存(Working Memory):工作内存是输入规则引擎的事实对象的集合,也称作事实集。事实来自于规则引擎的外部,有多种表现形式,可以是一切形式的希望由规则引擎来处理和验证的对象。当规则引擎调用的事实对象匹配某一条规则后,对应的规则的结论部分被执行。

推理机(Inference Engine):推理机是规则引擎的核心部分,主要作用是用来具体实现规则引擎的推理过程。推理机一般由两个部分组成:模式匹配器(Pattern Matcher)和模式议程管理器(Agenda)。在模式匹配器中,根据工作内存中的事实对象将其与规则集中的规则进行匹配并取得满足事实的规则,然后对规则的执行顺序进行排序,即为匹配的规则分配执行的优先级,之后将这些制定好执行优先级的规则加入议程。驻留在议程中的规则的执行顺序由议程管理器进行管理,需要进行议程管理的主要情况是一个事实对象同时触发了多条规则,此时执行规则的选取将由议程管理器设定的冲突解决机制来决定。议程管理器主要

用于解决规则执行时发生的冲突。

执行机(Implementation Machine):执行机是规则引擎的执行部分,其作用是用于接收议程的输出,并执行规则和其相应的操作或者事件。

规则引擎的具体推理过程描述如下:

1)将事实对象输入到工作内存(事实集);

2)利用模式匹配器将规则库中的规则与事实对象进行匹配,当事实对象满

足规则的条件部分时,将该规则放入议程;

3)如果事实对象同时满足多条规则的条件部分时,则将这些规则放入规则

冲突集中;

4)议程管理器按照设定的冲突消解策略对规则冲突集进行处理,制定规则

的执行顺序,并将其放入议程;

5)由执行机执行议程中的规则的结论部分,得到执行结果并将其加入工作

内存,之后重复步骤2到5,直到执行完议程中的所有规则。

在规则引擎的执行过程中,执行的规则的结论部分可能会对工作内存中的数据进行修改,事实对象的增删改都有可能会造成执行队列中规则的失效,此时执行机会将失效的规则从队列中删除,同时也可能会加入新的原本条件部分没有被满足的规则,与此同时新加入的规则的结论部分也会加入到执行队列中。如此循环形成了一种“动态”的规则执行链的规则推理机制。其中规则执行链由工作内存中的数据来驱动,规则引擎中的规则推理机制会采用相应的规则匹配算法来实现。

规则引擎的基本模型抽象的描述了一个规则引擎的组成结构,通过对基本模型的分析,我们可以了解到规则引擎技术的基础概念。下一部分将会详细介绍规则系统的推理方式。

2.2.2 规则引擎的推理方式

在规则引擎系统中,广泛采用的推理方式有两种:正向链接(Forward Chaining)和反向链接(Backward Chaining)推理[16],称这两种推理方式为链接的原因是因为两者都是根据最初条件或线索向最终结论接力“条件——结论”链的推理过程。使用这两种推理方式是因为它们能够很好的模拟人的思维和推理方

式,具体来说,正向链接推理模仿人类的正向思维方式,采用的推理方式是演绎式推理,反向链接推理则模仿人类的逆向思维方式,采用的推理方式是归纳式推理,所以也可以将这两种推理方式分别称为演绎法和归纳法。

(1)正向链接

正向链接推理方式是对人类正向推理的模仿[17]。在正向链接推理中,以事实作为出发点,通过模式匹配的方式找出相对于事实为真的规则并将该规则执行,如果同时有多条规则为真的情况出现,则把这些规则放入冲突集中,利用冲突解决机制加以处理,之后匹配的规则的结论部分作为新的事实加入到工作内存(事实集),并重复以上过程直到没有新的可以匹配的规则结束。图2.2描述了正向链接推理的过程。

图 2.2 正向链接推理过程

(2)反向链接

反向链接推理方式是对人类的逆向思维的模仿[17]。在反向链接推理中,以

假设(Hypothesis)为出发点,将这些等待验证的初始假设统称为目标(Goal),然后在规则集中搜索与目标对应的规则(判定结果为此目标),如果存在这样的规则,则将该规则取出与工作内存中的事实进行匹配,即判断是否存在使该规则为真的事实,如果存在则将该初始假设证明为真,如果不存在则将此规则中的条件部分的所有子条件都作为子目标加入道目标集中,子目标将会作为新的假设的出发点,重复以上过程进行递归,最后直到初始假设被证明为真或者为假。其中如果初始假设被证明为真,是指所有的子假设都已经递归地被证明为真,初始假设被证明为假,是指在规则集中已经搜索不到条件部分为目标集某一个子目标的规则。当初始假设被证明为真时,在该推理过程中所有涉及到的规则都将被执行。图2.3描述了反向链接推理的过程。

相关主题