已阅读5页,还剩84页未读, 继续免费阅读
(计算机科学与技术专业论文)规则引擎中规则描述语言及编译系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成 果尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机 构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 申请学位论 本人签名: 处,本人承担一切相关责任。 日期:墨生辱幽笠翌 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研 究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并 向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅:学 校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段 保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论文 注释:本学位论文不属于保密范围,适用本授权书。 本人签名: 导师签名: 日期: 一 规则引擎中规则描述语言及编译系统的研究与实现 摘要 在全球化、社会化商品经济的浪潮中,企业所身处商业环境的变化 也日益加快。为了保持竞争优势,提高自身核心竞争力,企业需要不断调 整其商业策略、优化业务流程,提高运营效率以应对商业环境的变化。 相应地,企业内部的i t 支撑系统也必须紧跟变化需求,对企业业务流 程的快速变化做出支持。为了使得系统能够灵活地实现对业务流程快速 变化的适应,可以通过应用规则引擎实现业务规则和代码的分离与集中 管理。商业策略制定者与业务人员可以通过运用规则描述语言设计、更 新规则,直接参与规则的生命周期管理;系统开发人员则可以将更多的 注意力集中于i t 系统的设计与实施之上。将规则引擎应用于i t 系统, 可以有效改善软件系统的开发流程并使系统在可重用性方面受益。 目前主流规则引擎在企业应用中,主要存在规则描述语言过于专业 化,给许多非技术背景的使用者的学习、使用、分析带来了一定程度的 困难。另外,大部分开源规则引擎的规则描述语言仅在规则中支持j a v a 语言实现的外部系统接口函数,限制了规则描述语言的表达能力并增加 了规则引擎与非j a v a 接口的外部系统进行集成的成本。 针对规则引擎使用过程中易用性、功能完备性和兼容性方面需求, 本文在对当前主要规则引擎研究及分析的基础上设计了一种规则描述 语言。该语言基于产生式规则设计,包括4 层语法结构的规则条件部分 和全面支持c 语言语法的规则推论部分,增强了规则描述语言的易用性 和规则引擎与外部系统间的兼容性。 围绕文中设计的规则描述语言,本课题设计并实现了一个支持该规 则描述语言的规则引擎t s e g r u l e e n g i n e 。在规则引擎的设计过程中 提出了嵌套编译技术流程的概念,实现了对规则描述语言中两种不同语 法的编译处理工作,设计了一个开放接口支持不同算法的规则推理流程 并应用编译结果对事实和规则进行推理。论文中设计实现的规则引擎被 应用于某电信计费系统在包月订购关系计费场景中进行了相应的测试, 验证了系统的可用性。 关键词规则描述语言产生式规则规则引擎嵌套编译易用性兼容 性 i b , 一 ,、 一 r 规贝t j , 3 1 擎中规则描述语言及编译系统的研究与实现 r e s e a r c ha n di m p l e m e n t a t i o no f r u l ed e s c r i p t i o nl a g u a g ea n d i t s c o m p l i l a t i o ni nr u l ee n g l n e a b s t r a c t w i t ht h e d e v e l o p m e n to fs o c i e t ya n dp r o g r e s so fs c i e n t i e n c ea n d t e c h n o l o g yo ft h ew o r l d ,b u s i n e s se n v i r o n e m e n ti sc h a n g i n gm u c hm o r e q u i c k l yt h a np a s td e c a d e s e n t e r p r i s e sh a v et oc o n s t a n t l ya d j u s tt h e i r b u s i n e s ss t r a t e g y , o p t i m i z eb u s i n e s sp r o c e s s e s ,a n d i m p r o v eo p e r a t i o n a l e f f i c i e n c ya l lt i m e sf o rk e e p i n g ac o m p e t i t i v ea d v a n t a g ea n d e n h a n c i n gt h e i r o w nc o r e c o m p e t e n c y a st h eb a c k b o n eo fs u p p o r t i n go r g a i n z a t i o n s b u s i n e s s ,t h ei ti n f r a s t r u c t u r es h o u l da l s oi m p r o v ei t sp e r f o r m a n c eo n b u s i n e s ss w i f tc h a n g i n gd e m a n d i no r d e rt oe n a b l et h ei ti n f r a s t r u c t u r e a c h i e v i n gt h ef l e x i b i l i t yt oa d a p tt or a p i d l yc h a n g i n gb u s i n e s sp r o c e s s e s ,i t c a ni n t r o d u c er u l ee n g i n e ei n t os y s t e mi m p l e m e n t a t i o nt h r o u g ht h eu s i n go f r u l e se n g i n e ,i te n a b l e sc e n t r a l i z e dm a n a g e m e n to fb u s i n e s sr u l e s ,s p l i t e d b u s i n e s sl o g i ca n dc o d ei m p l e m e n t a t i o n b u s i n e s s s t r a t e g y m a k e r s a n d e x e c u t i n gs t a f fc a nd i r e c t l yd r a f ta n du p d a t ei t sb u s i n e s sr u l ew i t hr u l e d e s c r i p t i o nl a n g u a g e ,m a n a g ei t ss t r a t e g yl i f ec y c l em a n a g e m e n ts t r a i g h t l y , w h i l es y s t e md e v e l o p e r sc a nf o c u st h e i ra t t e n t i o no nt h e d e s i g n a n d i m p l e m e n t a t i o no fi ts y s t e m sw i t h o u ts p e n d i n gt o om u c ht i m eo ns t u d y i n g e n t e r p r i s e s b u s i n e s sr u l e s t h er u l ee n g i n ea p p l i e dt oi ti n f r a s t r u c t u r ec a n e f f e c t i v e l yi m p r o v et h ee f f c i e n c yo f s o f t w a r es y s t e m sd e v e l o p m e n tp r o c e s s a n de n a b l et h es y s t e mb e n e f i t sf r o mr e u s a b i l i t y t t暑a r c h 。r u l e g i n ei : d u c t sl p p l y i n g i tn frastructureslhe r e s e a r c ho nm a i nr u l ee n g l n eo r o d u c t sa o p l y i n gi n i n f r a s t r u c t u r e s s h o w st h ec u r r e n tr u l ed e s c r i p t i o nl a n g u a g ei st o ot e c h n i c a ls p e c i a l i z e df o r b u s i n e s ss t r a t e g y m a k e r , e x e c u t i n gs t a i f , b u s i n e s sp r o c e s sa n a l y s t ,a n dm a n y o t h e rn o n t e c h n i c a lu s e r st ol e a r n ,u s e ,a n dd ob u s i n e s sa n a l y s i s i na d d i t i o n ,m o s to ft h e o p e n s o u r c er u l ee n g i n e s r u l e sd e s c r i p t i o n l a n g u a g e so n l ys u p p o r tu s i n ge x t e r n a ls y s t e mi n t e r f a c e sw i t h j a v a i m p l e m e n t a t i o n i tl i m i t st h ee x p r e s s i o no ft h er u l ed e s c r i p t i o nl a n g u a g ea n d m a k e sah i g hc o s to nt h ei n t e g r a t i o nf o rt h o s en o n j a v ai m p l e m e n t e di t n 规则引擎中规则描述语言及编译系统的研究与实现 i n f r a s t r u c t u r e sw i t hr u l e se n g i n e f o rt h ec o n s i d e r a t i o no ni m p r o v er u l ee n g i n e su s a b i l i t y , f u n c t i o n a l i t y a n dc o m p a t i b i l i t y , w ed e s i g n e dan e wr u l ed e s c r i p t i o nl a n g u a g eb a s e do nt h e r e s e a r c ha n da n a l y s i so ft h em a j o rr u l e se n g i n ep r o d u c t s t h el a n g u a g ei sa k i n do fp r o d u c t i o nr u l eb a s e dl a n g u a g e ,i n c l u d i n gb o t has i m p l e4l a y e r s s t r u c t u r eg r a m m e ro nr u l e sc o n d i t i o np a r ta n dac l a n g u a g eg r a m m e ro n r u l e s c o n s e q u e n c ep a r t t h i s d e s i g n c a ne n h a n c et h er u l e d e s c r i p t i o n l a n g u a g e sb o t hu s b i l i t y f o rn o n t e c h n i c a lu s e r sa n dc o m p a t i b i l i t yf o r i n t e g r a t i o nb e t w e e ni ti n f r a s t r u c t u r e sa n dr u l ee n g i n e t os u p p o r tt h eu s eo ft h i sr u l ed e s c r i p t i o nl a n g u a g e ,w ed e s i g n e da n d i m p l e m e n t e dar u l ee n g i n e i nt h ed e s i g no fr u l ee n g i n e sc o m p i l a t i o n m o d u l e ,w eb r i n gu pan e s t e dc o m p i l i n gp r o c e s st oc o m p i l ed i f f e r e n t l a n g u a g eg r a m m e rp a r t o ft h er u l e d e s c r i p t i o n w ea l s od e s i g n e d a n i n f e r e n c em o d u l ew i t ha no p e ni n t e r f a c et o s u p p o r t d i f f e r e n t p a t t e r n m a t c h i n ga l g o r i t h m sa n da p p l yc o m p i l i n gr e s u l t st od ot h ei n f e r e n c e t h ed e s i g n e da n di m p l e m e n t e dr u l ee n g i n es y s t e mw a sa l s oa p p l i e dt oa t e l e c o m m u n i c a t i o n sb i l l i n g s y s t e mf o rm o n t h l ys u b s c r i b i n gr e l a t i o n s h i p b i l l i n gs c e n a r i o k e yw o r d sr u l ed e s c r i p t i o nl a n g u a g e ,p r o d u c t i o nr u l e ,r u l ee n g i n e ,n e s t e d c o m p i l i n gp r o c e s s ,e a s eo fu s e ,c o m p a t i b i l i t y 1 1 1 规则引擎中规则描述语言及编译系统的研究与实现 目录 第一章引言1 1 1 论文背景及目的1 1 2 论文工作及成果2 1 2 1 规则引擎研究2 1 2 2 规则引擎在i t 系统演进中的应用2 1 2 3 规则描述语言的研究与设计3 1 2 4 规则引擎编译环节的设计与实现3 1 2 5 规则引擎的设计3 1 3 论文结构3 第二章规则引擎原理与相关技术分析5 2 1 规则引擎体系结构与相关技术总论5 2 2 知识表示与产生式规则7 2 2 1 专家系统所表示的知识7 2 2 2 规则的产生式表示与产生式系统8 2 2 3 规则描述语言8 2 3 知识推理与相关算法1 2 2 3 1 知识推理方法1 2 2 3 2 模式匹配算法1 2 2 3 3 冲突解决策略1 3 2 4 总结1 3 第三章规则引擎在i t 系统演进中的应用1 5 3 1 商业决策变革与i t 系统演进1 5 3 1 1 规则引擎对软件开发过程的改进1 6 3 1 2 规则引擎与软件可重用性投资回报率( r o i ) 1 7 3 2 规则引擎应用现状1 9 3 2 1 主流规则引擎介绍1 9 3 2 2 应用现状分析2 1 3 3 总结2 2 第四章t s e g r u l e e n g i n e 规则引擎的设计与实现2 3 4 1 设计目标2 3 4 2 总体设计2 4 4 2 1 系统结构2 5 4 2 2 处理流程概述2 6 4 3 规则描述语言设计2 7 4 3 1 规则组织方式与规则文件结构设计2 8 4 3 2 规则描述语言结构设计3 0 4 3 3 语言设计特点3 9 i v 规则引擎中规则描述语言及编译系统的研究与实现 4 4 规则编译模块设计4 l 4 4 1 编译过程设计4 2 4 4 3 接口设计4 3 4 4 4 关键技术4 8 4 5 规则推理模块设计5 3 4 5 1 推理过程设计5 3 4 6 总结5 6 第五章规则引擎系统在电信计费业务中的应用举例5 8 5 1 电信计费环境中引入规则引擎的业务需求5 8 5 2 业务说明5 9 5 2 1 场景描述5 9 5 2 2 业务策略说明5 9 5 2 3 全量割接文件格式说明6 3 5 3 业务场景的规则描述与测试结果分析6 5 5 3 1 业务策略的规则描述语言表示6 5 5 3 2 测试结果展示7 2 5 6 总结7 3 第六章工作总结与展望7 4 6 1 本文总结7 4 6 2 下一步工作展望7 4 参考文献7 6 致谢7 8 攻读学位期间发表的学术论文目录7 9 v _ j p 规则引擎中规则描述语言及编译系统的研究与实现 1 1 论文背景及目的 第一章引言 随着社会的发展与科学技术的进步为人们带来了日益增长的物质文化需求。在 全球化、社会化商品经济的浪潮中,企业所身处商业环境的变化也日益加快。 为了保持企业优势,提高其自身核心竞争力,企业需要不断调整其商业策略、优 化业务流程,提高运营效率以适应瞬息万变的商业环境,为社会创造更多的财富。 相应地,企业内部的信息化速度和r r 支撑系统的开发也必须紧跟变化需求,对市场 变化作出快捷反应。 对于传统将业务处理逻辑编写到r r 系统代码中的做法而言,引入规则引擎的开 发过程可以更好地实现业务逻辑与r r 系统的相互独立和业务规则的集中管理。通过 应用规则引擎和规则描述语言,商业决策的制定者、业务工作人员以及业务分析师 等专家可以直接进行规则的定义、更改和分析,直接参与管理业务生命周期,而系 统开发人员也可以将更多的注意力从业务流程的学习转换到r r 系统的开发部署之 上。 通过向企业信息系统建设中引入规则引擎,可以从极大程度上提高企业对市场 变化的反应速度。目前规则引擎已经在电信、金融、制造、物流等许多行业领域得 到使用。为了更好地推动规则引擎的全面推广,更好地帮助企业快速决策的制定, 本文对规则引擎的商业需求和应用现状进行了分析,发现在规则引擎的应用过程中 存在如下问题,限制了规则引擎的更广泛应用。 目前大部分主流的开源规则引擎项目主要都是基于j a v a 语言开发,例如j e s s , m a n d a r a x ,j l i s a ,j e o p s 在与外部非j a v a 接口的r r 系统进行集成时存在集成难度 大,实施成本高的不足之处。而商用规则引擎,例如i b mw e b s p h e r ei l o gj r u l e s 虽 然与外部n 系统的兼容性较好,但是在集成实施过程中需要额外w e b s p h e r ei l o g 组件的支持,增加了企业在实施规则引擎集成时的成本。 其次,目前大部分规则引擎在使用过程中普遍存在规则描述描述语言过于专业 化,为商业决策者、业务工作人员、业务分析师等许多非技术人员使用者的学习、 使用、分析带来了一定程度的困难。 另外,大部分规则引擎的规则描述语言中不直接支持外部系统函数的使用如 c l i s p ,或是仅支持j a v a 接口的外部系统函数如j b o s sd r o o l s ,j e s s ,j l i s a ,j e o p s 限制了规则描述语言的表达能力和与外部系统进行集成的兼容性。 针对规则引擎使用过程中易用性、功能完备性和兼容性方面需求,本课题研究 并设计了一种规则描述语言。该语言基于产生式规则设计,条件部分通过4 层语法 规则引擎中规则描述语言及编译系统的研究与实现 的简单结构和功能扩充运算符实现了复杂的命题逻辑展现与算术功能表示,推论部 分直接支持c c + + 语言及外部c 语言接口的r r 系统函数调用 围绕设计的规则描述语言,本课题设计并实现了一个支持该规则描述语言的规 则引擎t s e g r u l e e n g i n e 。提出、设计并实现了嵌套编译技术流程对规则语言进 行编译。设计了一个支持不同模式匹配算法的规则推理模块应用编译结果对事实和 规则进行推理 1 2 论文工作及成果 本论文对规则引擎的规则描述语言和编译流程以及相关领域的知识与技术进行 了研究与分析,在研究与设计过程中所涉及到的具体工作与成果包括如下几个方面: 1 2 1 规则引擎研究 1 本文对规则引擎的工作原理进行了研究,研究了规则引擎的主要功能模块及 各模块间的关系。 2 研究了知识表示与产生式规则的一般形式化表示。 3 研究了主要规则描述语言的语法结构和表示方式规则语言的设计需要同时 考虑业务分析决策者。业务人员,程序设计人员等不同使用者的专业背景和 使用习惯。语法简单与功能完备是规则描述语言设计的要点,直接关系着规 则引擎的易用性和与外部r r 系统的兼容性。 4 研究了规则推理方式,规则引擎的推理方式包括:正向推理、反向推理和双 引擎采用的推理方式主要为正向推理 规则匹配算法,不同的规则匹配算法在不同的环境下具有不同 关系到规则引擎的可用性和运行速度。 擎的冲突解决策略,主要的冲突解决策略有顺序队列和优先级 ,不同的冲突解决策略决定了不同的规则执行顺序。 系统演进中的应用 j 0 , 擎对传统软件开发过程的改进进行了分析与研究。通过在传统 , 入规则引擎,业务规则生命周期得以从软件开发生命周期中分 相关人员直接管理。系统开发人员更可以将时间与注意力集中 系统部署,减少了软件开发的时间,降低了因为需求变更而带 ,增强了软件开发过程对快速变化的商业规则的响应速度。 用规则引擎之后在可重用性方面的投资回报。通过应用规则引 将可以从可重用设计,可重用项目计划,可重用测试计划, 2 、 规则弓l 擎中规则描述语言及编译系统的研究与实现 可重用成本估计,可充用体系结构六个方面获得较好的回报。 3 研究了目前主流规则引擎技术特点和应用现状。许多规则引擎的规则描述语 言语法复杂,需要大量的编程知识,不利于业务人员学习和使用。大部分开 源规则引擎主要由j a v a 语言开发,与实现了j a v a 语言接口的外部系统之间 具有良好的互操作性,但与只提供了c c + + 接口的外部系统间不直接兼容。 商业规则引擎虽然对外部系统的支持性较好,且支持图形化的规则描述语言 定义方式,但是在于外部系统整合时需要其他的中间件组件进行支持,系统 实施成本高昂,不利于规则引擎的推广使用。 1 2 3 规则描述语言的研究与设计 1 本文从规则描述语言的易用性与功能完备性两个核心需求出发,设计了融合 两种不同语法的规则描述语言。 2 设计了4 层结构化语法表示的规则描述语言条件部分语法,实现了命题逻辑 的产生式表示。在条件部分的设计中引入了功能扩充运算结构,扩充了命题 逻辑对算术运算、外部系统函数调用的支持。 3 设计了与c 语言语法完全兼容的规则描述语言推论部分语法,支持学习难度 较低的非面向对象的结构化设计方式。支持在规则书写过程中直接调用外部 系统函数,保证了与非j a v a 接口的外部系统间的良好兼容性。 , 4 设计了规则执行时的相关参数,包括循环匹配和优先级指令,辅助规则推理 过程和冲突解决策略确定规则执行顺序。 5 设计了以包( p a c k a g e ) 为单位的规则逻辑组织方式与以规则文件为单位的规 则物理组织方式规则。 1 2 4 规则引擎编译环节的设计与实现 1 在研究一般编译过程的基础上,对规则编译流程进行了改进。设计了嵌套编 译环节,对规则描述语言的不同语法部分进行编译。 2 在编译过程中应用反射机制,实现了编译时的动态类型匹配,简化了规则书 写过程中变量类型的预定义表示。 1 2 5 规则引擎的设计 1 本文结合规则引擎系统的设计目标,对主要模块功能进行了定义。 2 设计了系统的总体结构和内部各模块间的集成关系。 3 结合规则描述语言设计和实现了规则引擎的编译流程与推理过程。 4 将系统应用于实际电信计费场景,验证了系统的可用性。 1 3 论文结构 3 规则引擎中规则描述语言及编译系统的研究与实现 本论文按以下章节进行组织: 第一章引言部分介绍了论文的背景和目的以及论文主要工作与成果。 第二章规s t j - , i 擎原理与技术分析部分研究了规则引擎的基本结构与相关技术, 包括知识的产生式表示及规则描述语言,知识推理过程,及推理过程中的模式匹配 算法和冲突解决策略。 第三章规n q l 擎在n 系统演进中的应用部分研究了商业策略制定及业务分析 和业务管理对n 系统可扩展性和软件开发过程变革的需求,并在此基础上分析了向 系统建设中引入规则引擎所起的作用和价值 最后,本章对当前主要规则引擎的技术特点和应用现状进了对比与分析和总结, 引出了规则引擎进一步设计需要关注软件使用群体的专业背景和使用习惯,增强规 则描述语言的易用性,同时还需要增强规则引擎对非j a v a 语言实现的外部n 系统 的直接支持和兼容性。 第四章t s e g r u u ! e n g 玳e 规则引擎的设计与实现部分是本文的核心本章根 据前面章节的研究与分析结果制定了规则引擎的设计目标,设计了包含2 种不同语 法、条件陈述部分语法结构简单、推论执行部分直接支持c c + + 外部系统调用的规 则描述语言,增强了规则描述语言的易用性和对非j a v a 接口的外部系统的集成度与 兼容性。然后,在对一般化编译流程研究、改进的基础上提出了采用嵌套编译方式 编译不同语法部分的设计思路,设计并实现了规则描述语言的编译。最后,在对知 识推理过程研究分析的基础上设计了一个基于编译过程的编译结果进行知识推理的 核心流程。 第五章规则引擎在电信计费业务中的应用部分将设计实现的规则引擎系统 t s e g r u u e n g 忆应用于某电信计费系统。使用规则描述语言对包月订购关系计 费业务场景的业务逻辑进行了描述并对规则引擎系统进行了可用性测试与验证。 第六章工作总结与展望部分对文中设计的规则描述语言的特点,规则编译过程 特点以及知识推理过程特点进行了总结。然后对如何进一步提高规则引擎的易用性 提出了相关改进思路与展望。 参考文献部分列举了课题研究和论文撰写过程中的相关参考资料,并根据资料 中所涉及的相关知识进行了分类与排序。 致谢部分表达了作者写对课题研究及论文撰过程中提供各类资助、指导和协助 完成论文研究工作的单位及个人的感谢。 4 j , p 规则引擎中规则描述语言及编译系统的研究与实现 第二章规则引擎原理与相关技术分析 2 1 规则引擎体系结构与相关技术总论 规则引擎是一个使用基于规则的方法实现的专家系统外壳( e x p e r ts h e l l ) ,更准 确的说属于产生式规则系统【1 9 l 。专家系统又称基于知识的系统( k n o w l e d g e b a s e d s y s t e m ) ,是属于人工智能领域的一个概念。它一方面通过使用某种知识表示方式对 知识进行编码和集中存放形成一个可用于推理的知识库,另一方面,专家系统通过 独立的推理过程利用这些知识进行数据处理以推出结论。专家系统通过将推理逻辑 与数据相分离,为用户提供了一个简单的系统使用环境。 2 0 世纪7 0 年代随着基于知识系统的广为接受,产生了许多成功的专家系统, 医疗诊断系统m y c i n 更是其中最重要的典范之一。 m y c i n 首先证明了人工智能可以应用到医疗诊断;其次,它奠定了规则引擎 的基本体系结构,例如知识库,知识推理等重要组成部分都有清晰的描述和界定: 最后也是最重要的成就在于,它证明了专家系统外壳软件( e x p e r n ts h e l l ) 将程序和 数据分离的可行性,即是说数据和知识可以不用编写在程序中,另外专家系统外壳 也可以将一个领域的知识方便地替换成另一个领域的知识1 2 l ( 例如专家系统 e m y c i n 就源自于去除了医学知识库的m y c i n ) 。 一个典型的专家系统一般包括3 个部分:知识库,推理机,工作内存 5 规则引擎中规则描述语言及编译系统的研究与实现 外部l t 系统 专家系统 推理机 知识库工作内存 ( 规则) ( 事实) li jl l 议程 i ji li 事实输入 捶_ 硅目:g n m j 6 0 丁止, t - 2 f t :h 不和了日彳 外部系统接口 知黼入 一 业务镱略制定人员 图2 一l 专家系统结构 1 知识库( p r o d u c t i o nm e m o r y ) :集中存放所有规则的容器 2 工作内存( w o r k i n gm e m o r y ) :系统运行时存放规则使用的事实的全局数据 库( g l o b a ld a t a b a s e ) 。 3 推理机( i n f e r e n c ee n g i n e ) :通过决定哪些规则满足事实或目标,并授予规 则优先级,然后执行最高优先级规则来进行推理的模块。 4 议程( a g e n d a ) :由推理机创建的一个与工作内存中的事实或目标相匹配的 规则优先级表。 下面图中列出了基于规则的专家系统的基本概念与相关技术1 2 l ,在后面各节中 将对这些概念进行说明与分析 6 规则引擎中规则描述语言及编译系统的研究与实现 图2 2 专家系统的相关概念与技术 2 2 知识表示与产生式规则 知识是专家系统进行推理的依据,如何将知识表示为可以供计算机存储和推理 的数据结构是知识表示研究的主要内容。产生式系统是表示知识和进行知识推理的 一种有效的方法。 规则引擎中的规则是描述事物的行动及其因果关系的特殊知识。用产生式表示 的规则问形式上相互独立,易于理解;其次,产生式系统的推理方式单纯,不需要 进行复杂的数值计算,有利于知识和推理过程间的相互分离;除此以外,产生式系 统的推理过程对推理路径也容易作出解释。 通过用规则描述语言将规则表示为产生式是目前规则引擎表示规则的主要方 法。 2 2 1 专家系统所表示的知识 专家系统中的知识可从( 范围,目的,有效性) 加以三维描述l 。其中知识的 范围是由具体到一般,知识的目的是由说明到指定,知识的有效性是由确定到不确 定。例如“为了证明a - - ,b ,只需证明a 八b 是不可满足的”这种知识是一般性、指 示性、确定性的。而像“桌子有四条腿”这种知识是具体的、说明性、不确定性。 知识表示是研究知识在计算机中存储和处理的形式,是人工智能的一个重要研 究方向。知识表示的研究需要既考虑知识的存储又考虑知识的使用,其研究对象是 表示知识的数据结构与控制结构的统一体。常用的知识表示方法有产生式规则、语 义网络、框架等方法1 2 j 。 7 规i 1 5 1 擎中规则描述语言及编译系统的研究与实现 2 2 2 规则的产生式表示与产生式系统 1 9 7 2 年,纽厄尔和西蒙在研究人类的认知模型中开发了基于规则的产生式系 统,目前,产生式表示法已经成了人工智能中应用最多的一种知识表示模式,尤其 是在专家系统方面,许多成功的专家系统都是采用产生式知识表示方法。 产生式的基本形式如下: h q 或者职p t h e n q 其中p 是产生式的条件部分,给出了是否可以使用该产生式的前提条件,由事 实的逻辑组合构成。q 是产生式的推理部分,包括一组结论或操作,它指出当前题 p 满足时,应该推出的结论或应该执行的动作。 规则是有关问题中与事物的行动相联系的因果关系知识,是动态的。它常以“如 果那么”形式出现。规则库中存储的规则集合中蕴涵着将问题从初始状态转换到 解状态的那些变换。 与其他知识表示方式相比,产生式规则具有如下特点: 1 产生式表示格式固定,形式单一,规则间形式上相互独立且没有直接关系, 使知识库的建立较为容易。 2 产生式表示的规则可以在推理机推理前被转换成与或树的形式,推理机在 运行时可以基于工作内存中的事实对这与或树进行求值得到推出的结论 或应该执行的动作。 3 产生式系统推理方式单纯,不需要复杂的数值计算,对系统的推理路径也 容易作出解释。 4 产生式系统固有的推理过程与产生式条件、结果相分离的形式有利于实现 规则引擎中程序与数据间的相互分离。 基于以上原因,目前大多数较为简单的专家系统( e x p e r ts y s t e m ) 都是以产生 式表示知识的,而规则引擎则是一种应用较为广泛的产生式系统专家系统。 2 2 3 规则描述语言 规则描述语言是产生式规则描述的工程化与具体化的产物。它既具有产生式的 一般形式,又对产生式中的条件部分和推论部分进行了具体的定义和实现。目前主 要的规则描述语言包括l i s p 及其派生语言( 例如c u s p ) ,除此以外主流的规则引 擎出于工程性的考虑还使用类j a v a 语言作为规则描述语言( 例如j b o s sd r o o l s ) 。 u s p i j s p 语言发明于1 9 5 0 年,并在不同的阶段产生了各种变体,在1 9 8 0 - 1 9 9 0 年间 其各种主要的变体被广泛接受与使用,它们分别是c o m m o nl i s p 和s c h e m e 。s c h e m e 旨在试图理解面向对象的概念,s c h e m e 在概念层面上引入了l e x i c a lc l o s u r e s 作为对 对象的抽象和c o n t i n u a t i o n s 作为对函数调用消息调用传递的抽象并引入了t a i lc a l l s 8 规则引擎中规则描述语言及编译系统的研究与实现 和t a i l r c c u r s i o n s 作为对效率的优化a _ 一尬嗲鬻目岛s c h e m e ,它引入了 i z x i c a ls c o p e 的概念作为文法的窟置fi 一i - k 翻漕壤圈灞瞬啪原因而未被包 含,t a i lr e c u r s i o n s 的优化由于被认为是语言期靖臀蹰嘲噘! 恍技术也未被包含1 1 4 1 。 l i s p 功能十分全面,以至于它不仅仅是一种规则描述语言而且一直被作为一种 面向人工智能领域的编程语言而使用。 在l i s p 中值的符号表示被定义为原子( a t o m ) ,原子的类型可以是任何类型的数, 分数,小数,自然数,负数等等。另外原子也可以是一个字母排列,其中可以夹杂 数字和符号。在语法结构方面l i s p 只提供了最基本的函数表示方法,和7 个基本操 作符( q u o t e ,a t o m ,c q ,c a r ,c d r ,c o n s ,c o n d ) 并通过括号进行流程控制和优先级 判断。供用户使用。作为一种语法结构简单的语言l i s p 为用户提供了极高的使用自 由度。 同其他编程语言相比l i s p 在使用中存在一些理解性方面的特殊性: 1 一些l i s p 内建函数命名方式不易理解,例如用“c a r 获得列表中的第一个 元素,而用“c d r ”获取列表中的剩余元素。用“c o i l s 创建列表而用“m a p c a r 遍历列表。在其他一些语言中这些功能则被具有实际意义的词汇“f i r s t 。 “r e s t 刀,“f o r e a c h ”所表示。l i s p 的这种命名方式同其他语言诸如c c + + , j a v a 相比理解困难,可读性较差。 2 l i s p 语言是一种封闭性语言,无法与直接兼容或支持其他语言,换而言之, 用l i s p 作为规则描述语言的规则引擎或专家系统需要投入大量资源用于实 现与外部系统间的接口调用和互操作。早期的l i s p 语言实现的专家系统常 常以逻辑硬件编码外壳( 1 0 9 i ch a r dc o d e ds h e l l s ) 的方式被装入主机进行执 行。 3 l i s p 语法不具有清晰的产生式结构( p q ) 且操作以原子为单位,缺乏事 实结构对应表示。 下面是一个简单规则的l i s p 表示: 1 规则定义 如果变量x 小于5 且变量y 的值等于x + 2 ,则执行操作x + y 并将结果赋予变 量x 。 2 l i s p 表示 ( c o n d e q u a l ( ( a t o m 、x ) n i l ) 删断x 是否是数值 e q u a l ( ( a t o m 、”n i l ) 判断y 是否是数值 代x5 ),判读x 是否小于s ( e q u a l o “x2 ) ) ),判断y 是否等于x + 2 9 规则引擎中规则描述语言及编译系统的研究与实现 ( s e t 、x ( + x ”) 如果之前的判断结果均为则执行操作x + y 并赋给x ) c l i p s c l i p s 语言是c l i p s 系统根据c o m m o nl i s p 实现的专用规则描述语言。它有 一个功能丰富的函数库,内容涵盖议程控制操作、基本数学函数、转换函数、调试 命令、自定义类、自定义事实、自定义函数、自定义类属、自定义全部变量、自定 义实例、自定义消息处理程序、自定义模块、自定义模板、i o 函数、内存控制、 字符串处理、文本处理、三角函数多个方面1 1 4 l 。 c l i p s 语法共包含近2 0 0 条文法。按类别可以被划分为c l i p s 程序、自定义事 实结构、自定义模板结构、事实规范、自定义规则结构、自定义全局变量数据结构、 自定义类属结构、自定义方法结构、自定义类结构、自定义消息处理程序结构、自 定义实例结构、自定义模板结构、约束属性、变量与表达式、数据类型共1 5 类文法 结构( b n f 范式表示) 。除此以外,c l i p s 语言在语法方面存在如下方面的主要特 征: i 同其他语言相比c l i p s 已进具有了清晰的产生式表示形式条件部分和推 论部分之间用符号“- - 隔开。 2 c l i p s 中设计了清晰的事实结构模板和事实的使用方式。 3 需要用户在使用前手工定义事实类型 4 算术运算书写方式与l i s p 一样,需要用前缀表示( 运算符在前) 5 各运算符之间没有优先关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 珠海市销售团队外包合同
- 豫发物业劳务外包合同
- 医院担架服务外包合同
- 快递装卸劳务外包合同
- 绿化工人劳务外包合同
- 人口普查工作外包合同
- 劳务合同改为外包合同
- 核酸检测机构外包合同
- 台州纸板厂运输外包合同
- 引流管护理中的安全教育与培训
- 2025年粮油仓储管理员(高级)职业技能鉴定考试练习题库(含答案)
- 学前教育论文8000字范例
- 工程项目催款律师函模板
- 2023年高考生物试卷(福建)(答案卷)
- 劳动教育读本(中职版)专题四学习资料
- 提高体温单书写合格率pdca剖析课堂
- 《用电检查法律法规》课件
- 【MOOC】保健推拿-黄冈师范学院 中国大学慕课MOOC答案
- 剪板机操作规程(2篇)
- 男科话术完整版本
- 北京第八十中学初一新生分班(摸底)数学模拟考试(含答案)【6套试卷】
评论
0/150
提交评论