CN100543719C - 用于可外化推理部件的系统及方法 - Google Patents
用于可外化推理部件的系统及方法 Download PDFInfo
- Publication number
- CN100543719C CN100543719C CNB028298659A CN02829865A CN100543719C CN 100543719 C CN100543719 C CN 100543719C CN B028298659 A CNB028298659 A CN B028298659A CN 02829865 A CN02829865 A CN 02829865A CN 100543719 C CN100543719 C CN 100543719C
- Authority
- CN
- China
- Prior art keywords
- components
- algorithm
- data
- nferencing
- eic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/042—Backward inferencing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Abstract
提供用于管理(1210)可外化推理部件的技术。该技术允许由分别的部件动态构造推理,并且允许用于控制动态可构造推理的数据的外化。实现的一个重要优点是能够综合和匹配各种外化的推理部件以形成新的推理;换言之,能够通过以新的方式组合(重用)和实践各种部件来导出新知识。提供能够以许多不同方式组合的可插式推理部件,以满足不同应用的需要。这允许推理部件被独立开发并且高度可移植。
Description
技术领域
本发明涉及软件工程,尤其涉及用于采用可外化推理部件(externalizable inferencing component)的技术,包括规定、应用以及管理可外化推理部件。
背景技术
已经开发出多种方案来外化(externalizing)推理数据(inferencingdata)。在Landers的美国专利申请NO.5136523,“用于从正向链或反向链推理循环内的固定数据库管理系统自动和透明地映射规则和对象的系统”中,描述了被永久地存储在一数据库中的对象和规则数据。在Moore等人的美国专利申请NO.5446885,“具有存储在关系数据库中的基于规则的应用程序结构的事件驱动管理信息系统”中,也将推理信息永久地存储。但是,现有技术并未公开可外化推理部件的使用。
发明内容
根据本发明的一个方面,提供一种用于管理多个可外化推理部件的方法。所述方法包括识别程序的推理特征,以及提供所识别的推理特征作为推理部件。外化的算法和数据(可被永久存储)可以与推理部件相关。
识别的推理特征可包括触发点(trigger point)、短期事实、推理规则、推理引擎、静态变量映射、传感器、效应器、长期事实和结论。推理部件可包括触发点部件、短期事实部件、推理规则集部件、推理引擎部件、静态映射部件、传感器部件、效应器部件、长期事实部件和结论部件。
推理部件可以是由推理部件提供的数据的用户(consumer),推理部件提供的数据的提供者,或者两者皆是。
所述方法还可包括使至少一个触发点推理部件与至少一个应用程序相关。触发点可同步或者异步地操作。
推理部件可以是主推理部件,其使用至少一个其它推理部件。推理部件可以使用推理引擎。进一步地,推理部件可被组织成至少一个推理子部件。推理部件还可被至少一个其它推理部件引用共享。
推理部件的组织/组成可以是数组、聚集、散列表、迭代结构(iterator)、列表、分区、集合、堆栈、树、向量和它们的组合。
推理部件可以包括唯一识别符、意图(intention)、名称、位置、文件夹、开始时间、结束时间、优先级、分类、引用(reference)、描述、启动位置、启动参数、初始化参数、实现程序(implementor)、就绪标记、自由格式数据和它们的组合。
算法可以执行推理部件创建,推理部件检索,推理部件更新和推理部件删除。此外,算法可以被至少两个推理部件共享。
算法可以是执行触发点算法,返回数据算法,联合数据算法,过滤数据算法,翻译数据算法,分类选择算法,随机选择算法,循环选择算法,推理引擎前处理器,推理引擎后处理器,推理引擎启动装置,接收数据算法,发送数据算法,存储数据算法,获取数据算法,和它们的组合。
推理部件可以由至少两个推理子部件组成,其形成一个新推理实体。所述组成可以静态或者动态地发生(或者以它们的组合)。
为了利于创建、检索、更新和删除推理部件,可使用推理部件管理设备。
根据本发明的另一个方面,提供一种用于提供业务逻辑的系统。该系统包括识别部件和外化部件。识别部件被设置成识别应用程序中的至少一个变化性点(point of variability),外化部件被设置成为所识别的至少一个变化性点提供外化的业务逻辑。外化的业务逻辑包括推理部件。所述推理部件可包括外化的算法和数据。
系统也可包括执行部件,用以使用至少一个虚拟机(例如,JAVA虚拟机(JVM))执行外化的算法。
通过结合附图阅读,本发明的这些及其它方面、特征和优点将因下述优选实施方案的详细说明而更加明显。
附图说明
图1是基于本发明的图解实施例、可应用本发明的计算机处理系统100的框图;
图2是基于本发明的一个优选实施方案,图解具有应用推理部件的触发点的示例性应用程序的框图;
图3是基于本发明的一个优选实施方案,图解推理部件体系结构的框图;
图4是基于本发明的一个优选实施方案,图解示例性推理部件交互的框图;
图5是基于本发明的一个优选实施方案,图解示例性推理规则集部件交互的框图;
图6是基于本发明的一个优选实施方案,图解示例性推理静态映射部件交互的框图;
图7是基于本发明的一个优选实施方案,图解示例性推理规则集部件和推理静态映射部件组合的框图;
图8是基于本发明的一个优选实施方案,图解示例性推理规则集部件和动态映射部件(传感器和效应器)组合的框图;
图9是基于本发明的一个优选实施方案,图解示例性推理长期事实部件交互的框图;
图10是基于本发明的一个优选实施方案,图解示例性推理短期事实部件交互的框图;
图11是基于本发明的一个优选实施方案,图解示例性推理结论部件交互的框图;
图12是基于本发明的一个优选实施方案,图解示例性推理部件管理设备交互的框图。
具体实施方式
对于编制应用程序行为来说,业务规则的外化和触发点的外化是公知技术。例如,Degenaro等人于2001年9月20日申请的美国专利申请NO.09/956644,“用于使用外化、可动态配置、可超高速缓存的触发点的系统和方法”,描述了一种用于在逻辑流程中利用触发点的技术,这里完整地参考引用了该文献。通常的想法是将正常嵌入应用程序内的逻辑替代为触发点,该触发点则请求外部机构执行期望的处理。于是这样设计的应用程序的变化性可以被容易地和动态地操纵,而不用改变规则驱动的应用程序本身。在应用程序的各个层中的触发点的布局允许进行相应层次的规则抽象。可外化逻辑和数据的集中提高了可理解性、一致性、重用和可管理性的可能性,同时相应减少了企业中利用触发点和规则的各种应用程序的维护成本。
在外化的语境中,“规则”并非通常与人工智能界相关的规则,而是用于做出日常“业务”决定的规则。所使用的技术的面向结构特性胜过声明性特性,并且所使用的规则通常是直接的。一般地,不探索新知识,而是容易地管理时间和位置变化性。
例如,一航空公司的应用可基于频繁飞行者在一年内飞行的英里数而把他们看作是铜质、银质和金质客户。随着时间推移以及累计更多的英里数,一个频繁飞行者的状态可从铜质转为银质,或者从银质转为金质。此外,需要被分类为铜质、银质或者金质的英里数可随着时间推移分别从10000、20000、30000改变到15000、25000、50000。或者对哪些在一个日历年度内至少航行了75000英里的客户增加一新的白金分类。
在外化技术之前,将客户归类到某一类别可能是经过内插(in-line)编码的。但是在使用可外化触发点和规则时,用于执行分类的逻辑和数据会在适当应用程序之外。通过使做出这种确定的算法和对所述确定进行参数化的数据被外化,可以达到对行为变化性的更高可管理性。
可选地,推理系统经常利用推理技术,例如正向链和反向链,以及Rete网络来导出新知识。这些系统通常包括三个主要元素:知识,通常是if/then规则和事实的形式;工作存储器,包括导出的事实;以及推理引擎,用来处理知识和工作存储器。
在正向链期间,推理引擎检查推理规则和确定哪些推理规则适合被触发的事实。使用冲突解决技术选出的一个推理规则被触发。这可能导致动作发生或者新事实的生成。继续迭代进行推理规则的选择和触发,直到再没有合适的推理规则。当完成时,可获得0个或者更多个结论。
在反向链期间,推理引擎检查事实和数据来确定是否已经达到了目标。中间目标被加入和移走,直至原始目标可被证明为真或假的时候。每个目标是一个推理规则,当用有关数据来评价时,该推理规则被证明为真,证明为假,或者指向一个或多个其它必须首先证明为真或假的推理规则。
Rete算法是一种优化推理方法。利用一个节点网络来保证只针对任何推理规则测试新事实。
通常,基于推理或者知识的系统可被用于学习新事实。例如,可以学习到,当在中国的人购买了一个相机时,他们经常也购买一个相机包;在法国的人在购买相机外可能还购买电池。
这两种不同的面向规则的编程模型,即外化和推理,均其自身的长处和短处。每一个都可应用于同样的问题集,其中根据具体情况,一个模型在关键方面通常比另一个具有优势。例如,当所利用的规则频繁改变时,或者当确定结果是如何获得的并不重要时,或者当规则冲突可在运行时解决时,或者当所涉及的规则的数量非常大时,或者当不需要高性能时,推理可变得更加有利。在相反情况下,例如在规则集规则较小,规则改变不太频繁,高性能并不重要,等等的情况下,外化会是更加有利的。
一个关键问题在于如何有利地将外化和推理同时利用以享有它们两者全部的好处并且避免它们的缺点。在一些情况下,外化技术自身可以满足需求;在另一些情况下,推理技术自己就足够了;在另一些情况下,这两个不同但是互补的方法的某种组合提供了最适合的方式。
另一个关键问题在于如何组织推理系统和它们的相关数据。可以设想,应用程序可能期望使用版本略有不同的推理。例如,或许一个推理规则集在性质上是通用的,但是它的一些或全部变量在一个应用中根据一个情况相关的上下文来映射,或者一次一个地来映射。或许两个不同的应用共同具有其期望推理规则集的部分。或许两个或者更多不同推理的结论需要组合为针对一个或多个其它推理的输入。
应当理解,本发明可以硬件、软件、固件、专用处理器或者它们的组合的各种形式来实现。优选地,本发明以软件来实现,所述软件是一种在程序存储设备上有形地体现的应用程序。所述应用程序可以加载到包括任何适合的体系结构的机器,以及由其来执行。优选地,所述机器在具有硬件,例如一个或者多个中央处理单元(CPU)、随机存取存储器、输入/输出(I/O)接口的计算机平台上实现。计算机平台也包括操作系统和微指令代码。这里所描述的各种处理和功能可以是微指令代码的一部分,或者是应用程序的一部分(或者它们的组合),其通过操作系统来执行。另外,各种其它外围设备可以连接到计算机平台,例如附加的数据存储设备。
还应当理解,因为在附图中描述的系统组成部件可以通过软件来实现,在系统部件之间的实际连接可因本发明的编程方式的不同而有所不同。通过这里给出的教导,本领域的普通技术人员将能够想到本发明的这些以及类似的实现或者配置。
图1是根据本发明的示例性实施例,可应用本发明的计算机处理系统100的框图。计算机处理系统100包括至少一个处理器(CPU)120,它通过系统总线110在操作中连接到其它部件。只读存储器(ROM)130,随机存取存储器(RAM)140,I/O适配器150,用户接口适配器160,显示适配器170,以及网络适配器180在操作中连接到系统总线110。
盘存储设备(例如,磁盘或光盘存储设备)151通过I/O适配器150在操作中连接到系统总线110。
鼠标161和键盘162通过用户接口适配器160在操作中连接到系统总线110。鼠标161和键盘162可用来向/从计算机处理系统100输入/输出信息。
显示设备171通过显示适配器170在操作中连接到系统总线110。网络181通过网络接口适配器180在操作中连接到系统总线100。
虽然在此针对上述单元描述了计算机处理系统100,然而应当理解,可对其进行添加、删除和替代。就是说,通过这里给出的本发明的教导,本领域的普通技术人员能够想到计算机处理系统100的单元的这个以及各种其它配置,同时保持本发明的精神和范围。
本发明提供一种方法和系统,用于规定、应用和管理数据处理应用中的可外化推理部件。除其它之外,本发明解决了这样的关键问题,即如何有利地将外化和推理同时利用以享有所有其组合优势,但避免它们的缺点;以及如何组织推理系统和它们的相关数据。
本发明允许在利用可外化推理部件(EIC)的应用程序内布置触发点。通常,应用程序会将上下文和参数信息传递给触发点,触发点则动态地识别和利用EIC。通常,EIC考虑输入,相应执行推理有关的任务,并且返回结果到触发点。换句话说,触发点可异步地操作,从而应用程序启动触发点以提供上下文和参数输入,作为回应接收可被用于在之后的时间检查结果的关键字(key);或者应用程序可额外地向触发点提供用于线程的关键字,其中一旦异步推理处理完成,所述线程将接收具有任何结果的控制。
尽管全部的可外化数据和算法可被包括在一个单独的EIC中,然而通常一个EIC包括将其与一个或者多个其它EIC关联的主部件。通常,主部件编成期望的推理。它采集并预处理事实和规则,映射变量,触发推理引擎,以及后处理和分布任何结果。子部件处理专门的任务,例如准备将由推理引擎使用的规则集;将变量映射到静态值或者可变函数;过滤要返回给应用程序的结论;等等。
图2根据本发明的一个优选实施例图解了系统部件,其中示例性应用程序210包括使用可外化推理部件230的触发点220。在运行时刻期间,应用程序210提供上下文和参数信息给触发点220,触发点220则使用EIC 230。EIC 230执行一些推理计算并且返回结果到触发点220,触发点220传播所述结果给应用程序210。例如,应用程序210可提供“计算折扣”的上下文和“购物车”的参数给触发点220,触发点220则利用合适的EIC 230来用给定购物车信息进行折扣推理计算,该信息被应用程序210返回给触发点220以便进行考虑。
本领域的普通技术人员能够预料到很多种触发点220和EIC 230的组合。例如,一个单独的应用程序210可使用几个触发点220;一个单独的触发点220可利用几个EIC 230;多个应用程序210可共享使用一个或者多个触发点220;以及多个触发点220可共享使用一个或者多个EIC 230。
图3根据本发明的一个优选实施例图解了示例性的推理部件体系结构。EIC 310可独立工作(未图解),或者与执行各自任务的其它EIC结合。在后面的情况中,触发点通常使用主EIC来协调一个或者多个从EIC的活动。下面参考图4来讨论这个方面。每个EIC 310包括算法320和数据330。数据330永久地保存在存储设备350上。虚拟机340执行算法。虚拟机340可从永久存储器350载入算法320。
例如,EIC算法320可以是由Java虚拟机(JVM)处理的Rete推理引擎,并且数据33可以是由Rete推理引擎在存在触发点所传送的参数时进行解释,以执行“计算折扣”推理的规则集合。通过将算法320和数据330外化,尤其提供了灵活性,可理解性和可管理性的好处。一个重要的好处在于对数据330或算法320的改变是在期望推理服务的应用程序之外进行的,因此在应用程序与这些改变之间提供缓冲。继续上述的实例,一个新规则可被加入到包括要被算法320解释的数据330的规则集中;另外(或者替代地)。一个正向链推理引擎可被Rete推理引擎代替以作为算法320。在各种环境下,相关的应用程序改变会是不必要的,因此促进了应用程序的稳定性。
主EIC 310可使用其它的EIC 310来执行特定任务,例如数据聚集、数据传播、数据翻译、并行逻辑计算,等等。关键可外化推理部件将在下文中详细描述。在运行时刻期间,数据和/或控制可在多个EIC之间双向流动。一个EIC可使用0或者更多个EIC。
EIC可使用可重用的算法来:执行触发点,返回数据,联合数据,过滤数据,翻译数据,按类选择,随机选择,循环选择,按日期选择,推理引擎预处理器,推理引擎后处理器,推理引擎启动装置,接收数据,发送数据,存储数据,获取数据,以及其它。
EIC可使用外化的数据,包括:唯一标识符,意图,名称,位置,文件夹,起始时间,结束时间,调度,周期,持续时间,优先级,分类,引用,说明,启动位置,启动参数,初始化参数,实现程序,就绪标记,自由格式数据,以及其它。例如,实现程序可以是正向链推理引擎,初始化参数可以是要解释的规则集合。
图4根据本发明的一个优选实施例图解了示例性可外化推理部件。可外化推理部件引擎410可以是使用其它可外化推理部件来执行特定任务的主部件。可选地,主部件可以在没有其它EIC(未图解)的帮助的情况下执行全部的任务。EIC引擎410通常使用的主要被雇佣的EIC是:短期事实420,规则集430,静态映射440,长期事实450,结论460,传感器470,和效应器480。这些的每一个将参考图5-11在下文中详细描述。从EIC可在没有支持的情况下工作,或者它自己可以是使用从EIC的主部件。主部件可使用0或者更多类型的从EIC,并且可使用0或者更多个每种类型的EIC。
EIC可以各种方式组织或组成。例如主EIC可由一个或者多个从EIC组成为数组;聚集;散列表;迭代结构;分区;集合;堆栈;树;向量;以及其它;或者各种表示的某种组合。所述组织基于针对算法和相关数据的组合的设计。
更加具体地,主EIC可由长期事实部件的向量,以及短期事实部件的数组,规则集部件的树,和结论部件构成。
EIC引擎410的主要任务是对事实和规则执行推理以导出新的事实。EIC范例(paradigm)的一个关键好处在于事实和规则已经以规则化的方式被外化和部件化,这大大地利于重用和共享。例如,用于“计算折扣”的规则集可被多个EIC引擎410使用,即使从输入数据到规则集变量的映射在一些情况下可以不同。或者多个EIC引擎410可以使用相同的规则集但是产生出不同的结论。或者多个EIC引擎410可以使用不同的规则集,但是使用从输入数据到规则集变量的相同映射。本领域的普通技术人员能够想到构成共享其它EIC 400的EIC引擎410的无数可能性。
EIC引擎410,如同所有EIC,包括数据和算法组成部分,如前面参考图3所述的。算法执行预推理活动,启动推理引擎,接着执行后推理活动。预推理和后推理活动基于相关外化数据和算法。在没有从EIC的单个EIC引擎410的情况下,推理引擎所需的数据通过预推理阶段从所提供的输入,或者相关的EIC引擎数据,或者它们的某些衍生数据中采集;为了各种目的,例如记录新导出的事实,执行其它处理等等,推理引擎所产生的数据可能经历后推理阶段。
通常,EIC引擎将使用其它EIC来实现特定任务。例如作为预处理阶段的一部分,EIC引擎410可使用EIC短期事实420来验证和过滤所提供的输入数据,所述数据将由它的推理引擎来使用;它可使用EIC规则集430来获得将由其推理引擎来使用的规则;它可使用EIC静态映射440来将事实映射到规则变量以供推理引擎使用;它可使用EIC传感器470和效应器480来将事实获得者和设定者映射到规则变量以供推理引擎使用;它可使用EIC长期事实450来采集在先导出的事实以供推理引擎使用;等等。作为后推理阶段的部分,EIC引擎410可使用EIC长期事实450来记录其推理引擎新生成的事实;它可使用EIC结论460来过滤,重构(recast),或修饰(embellish)要返回给请求方应用程序的由推理引擎产生的事实;等等。
推理部件400的一个有趣方面在于它们可以彼此检查、更新、创建和删除。例如,特定EIC引擎410的目的可以是通过添加、删除或者改变数据(推理规则)来更新EIC规则集430,因此使用修订的规则集430执行EIC 410的操作。本领域的普通技术人员可以想到推理部件关系的许多组合。
图5根据本发明的一个优选实施例图解了示例性可外化规则集推理部件。规则集部件(RSC)510有两个推理规则,即“规则:1”和“规则:2”,其每个分别对单独的变量,即“a”和“b”进行操作。RSC 510的算法是“返回”。当被请求时,RSC 510将提供它的两个推理规则作为响应。RSC 510、520和530全都使用相同的算法,并且全部(一致地)具有两个推理规则作为数据。注意,在这个实例中,RSC 520与RSC 510共同具有一个推理规则,即“规则:2”,并且与RSC 530共同具有一个规则,即“规则:3”。
RSC 540有一个“联合”算法。它的数据并非所图解的4个推理规则,而是对RSC 510和RSC 520的引用。当被调用时,RSC 540的算法向RSC 510和RSC 520请求推理规则来形成它自己的推理规则集。联合算法简单地累积由RSC提供的、由其引用但不涉及内容的数据。在本实例中,这导致在其推理规则集中具有均出现一次的“规则:1”和“规则:3”,以及出现两次的“规则:2”的RSC 540。
RSC 550有一个“无重复”算法。它的数据不是所示的4个推理规则,而是对RSC 530和540的引用。当被调用时,RSC 540的算法向RSC 530和540请求推理规则以形成它自己的推理规则集。无重复算法简单地累积由RSC提供的、由其引用和重复的数据。在本实例中,这导致各有一个“规则:1”,“规则:2”,“规则:3”和“规则:4”的RSC550。注意,“规则:2”由RSC 540提供两次,但是仅在RSC 550的推理规则集中出现一次。相似地,“规则:3”被提供给RSC 550两次,从RSC 530和RSC 540各提供一次,但是它在结果推理规则集中仅出现一次。
通过使其能够分割为更小,可管理,可重用的块,规则集部件范例对于管理大规则集是重要的。本领域的普通技术人员能够想到很多推理规则集的有用组合,以作为由推理引擎最终使用的数据,以及直接或者通过引用来作用于推理规则集数据的相关算法。
注意,推理规则通常是“如果条件是,条件x’,则结果是’结果x’”的形式的语句。“规则:1(a)”表示“如果条件是’条件a’,则结果是’结果a’”。相似地,“规则:2(b)”表示“如果条件是’条件b’,则结果是’结果b’”。
图6根据本发明的一个优选实施例图解了示例性可外化静态映射推理部件。静态映射部件(SMC)610和640均具有一个作为数据的映射,分别是“a->a1”和“a->a2”。SMC 620有两个作为数据的映射,“b->b1”和“c->c1”。SMC 630有两个作为数据的映射,“c->c1”和“d->d1”。SMC 610,620,630和640均共享相同的算法,即“返回”。当每一个被调用时,SMC 610-640将简单地返回所包含的映射数据。
SMC 650有一个“联合”算法。它的数据并非所示的5个静态映射,而是对SMC 610,620和630的引用。当被调用时,SMC 650的算法向其引用的SMC 610,620和630请求静态映射以形成它自己的静态映射集。在本实例中,这导致在其静态映射中具有均出现一次的“a->a1”,“b->b1”和“d->d1”,以及出现两次的“c->c1”的SMC650。
SMC 660具有“无重复”算法。它的数据不是所示的4个静态映射,而是对SMC 610,620和630的引用。当被调用时,SMC 660的算法向SMC 620到640请求静态映射以形成它自己的静态映射集。在本实例中,这导致各具有一个“a->a2”,“b->b1”,“c->c1”和“d->d1”的SMC 660。注意,“c->c1”被向SMC 660提供两次,每次分别来自SMC620和SMC 630,但是它仅在SMC 660的结果静态规则集中出现一次。
由规则集部件享有的算法可以被静态映射部件和/或其它部件共享,反之亦然。代码和数据重用是本发明的一个重要优点。因此,在图5和6表示的实例中,算法“返回”对于RSC和SMC是共同的,“联合”和“无重复”算法也是一样。
通过使其能够分割为更小,可管理,可重用的块,静态映射部件范例对于管理大映射集是重要的。本领域的普通技术人员能够想到很多推理规则集的有用组合,以作为由推理引擎最终使用的数据,以及直接或者通过引用来作用于推理规则集数据的相关算法。
注意,推理静态映射通常是“用’值’替换‘变量‘”的形式的语句。映射“a->a1”表示“用’值a1’替换’变量a’”。相似地,映射“a->a2”表示“用’值a2’替换’变量a’”。
图7根据本发明的一个优选实施例图解了示例性可外化规则集和静态映射推理部件。图解了两种不同类型的提供者EIC,即RSC 710和SMC 720,730。两个组成的EIC 740、750由提供者RSC和SMC的组合构成。本实例示出了本发明的一个重要优点,其中部件被共同用来组成推理引擎可使用的新实体。EIC 740是一规则集和一静态映射的组合。EIC 750是具有不同静态映射的相同规则集的组合。每种都显示了本发明的另一个重要优点:部件重用。在本实例中,与提供者部件相关的算法仅仅是“返回”,与组成的部件相关的算法仅是“联合”。
主EIC引擎(例如,图4中的410)可利用从EIC,例如EIC 750,作为引用,其产生具有根据需要分别被替代为a1-d1的变量a-d的规则1-4。假定EIC 710被修改为包括具有变量“a”和“c”的新规则5。对于这个改变,主EIC引擎在使用EIC 750时将会接收其变量a-d被a1-d1替代的规则1-5。注意由本发明的本实例表示的部件组成的重要优点。EIC 740和750都会包括附加的规则5,因为两者都是EIC 710的用户。EIC 730保持不变,但是依然对产生的EIC 750产生贡献。
一种组成,例如EIC 740,可以静态(在运行前)发生或者动态(在运行时)发生。“规则:3(c0)”表示“如果条件是’条件c0’,则结果是,结果c0’”。相似地,“规则:4(d1)”表示“如果条件是’条件d1’,则结果是,结果d1’”。
更具体地,“规则:3(c)”可表示“如果用户状态’c’,则给予用户折扣’c’”;“c->c0”可表示“用’条件:铜质,结果:10%’来替代’c’”;组合导致:如果用户具有状态“铜质”,则给予用户’10%’的折扣。
图8根据本发明的一个优选实施例图解了示例性可外化规则集和动态(传感器和效应器)映射推理部件(DMC)。图解了两种不同类型的提供者EIC,即RSC 810和DMC 820,830。两个组成的EIC 840、850由提供者RSC和DMC的组合构成。本实例图解了本发明的一个重要优点,其中部件被一起用来组成推理引擎可使用的新实体。EIC840是一规则集和一动态映射的组合。EIC 850是具有不同动态映射的相同规则集的组合。每种都显示了本发明的另一个重要优点:部件重用。在本实例中,与提供者部件相关的算法仅仅是“返回”,与组成的部件相关的算法仅仅是“联合”。
主EIC引擎(例如,图4中的410)可利用从EIC,例如EIC 840,作为引用,该从EIC产生具有根据需要分别被替代为函数p(x0),q(x0),r(y0)和s(y0)的变量a-d的规则1-4。假定EIC 820被修改以将动态映射“d”改为“t(y3)”。对于这个改变,主EIC引擎在使用EIC 840时将会接收其变量a-d被函数p(x0),q(x0),r(y0)和t(y3)替代的规则1-4。注意由本发明的本实例表示的部件组成的重要优点。只有EIC 840包括改变的规则4,因为只有它是EIC 820的用户。EIC 810保持不变,但是依然对结果EIC 840产生贡献。
一种组成,例如EIC 840,可以静态(在运行前)发生或者动态(在运行时)发生。“规则:1(p(x0))”表示“如果条件是’条件函数p(x0)’,则结果是,结果x0’”。相似地,“规则:2(q(x0))”表示“如果条件是,条件函数q(x0)’,则结果是’结果x0’”。
更具体地,“规则:3(c)”可表示“如果用户状态’c’,则给予用户折扣’c’”;“c->r(y0)”可表示“用’条件:铜质,结果:查找百分比(铜质)’来替代’c’”;组合导致:如果用户具有状态“铜质”,则给予用户’查找铜质的百分比’的折扣。
图9根据本发明的一个优选实施例图解了示例性可外化长期事实推理部件(LFC)。图解了两种不同类型的EIC,即EIC引擎910和LFC 910和LFC 920,921和922。LFC使用以两种模式,接收/存储和获取/发送来操作的算法。例如LFC 921接收来自EIC引擎910的数据并且将它作为就绪集(Ready Set)1.0永久存储;它也从永久存储器中获取就绪集1.0并且将该数据提供给EIC引擎。LFC数据接收和发送可用推或拉的方式(所有EIC都可如此)操作。本实例显示了本发明的一个重要优点,其中部件被用来将数据分割为推理部件可用的可维护块。
多个LFC可提供单个EIC。多个EIC可提供单个LFC(未图解)。LFC在特定情况下(或EIC在一般情况下)可仅接收自,仅发送到,或者既接收自又发送到一个或者多个EIC。本领域的普通技术人员可想到LFC和EIC在接收/存储和获取/发送永久数据的许多种组合。
有趣地,就绪集1.0,2.0和3.0可以分别是关于金质、银质、铜质状态客户的长期事实。
图10根据本发明的一个优选实施例图解了示例性可外化短期事实推理部件(SFC)。触发点1010和两种其它不同类型的EIC,即EIC引擎1020和SFC 1030,被图解。通常,触发点1010在运行时向EIC引擎1020提供数据。通常,EIC引擎1020使用一个或者多个SFC1030将由触发点提供的数据转换为短期事实,以供推理引擎使用。类似于其它EIC,SFC使用被外化的数据参数化的外化的算法。通常在SFC的情况下,算法的目的在于使用触发点提供的数据和转换成推理引擎可使用的数据。通常,与LFC相反,SFC并不永久地保持短期事实自身。在SFC中,转换算法和转换数据可以是共同的或者不同的。
有趣的是,准备(Prepare)1.0和2.0可以是由应用程序内的触发点提供的数据集,例如“购物车”,其被SFC 1030转换成推理引擎可使用的短期事实,例如“购物单”。
图11根据本发明的一个优选实施例图解了示例性可外化结论推理部件(CC)。触发点1110和两种不同类型的EIC,即EIC引擎1120和CC 1130,被图解。通常,触发点1110在运行时使用来自EIC引擎1120的结果。通常,EIC引擎1120使用一个或者多个CC 1130将推理引擎所确定的结果转换为供触发点使用的数据。如同其它EIC一样,CC使用由外化的数据进行参数化的外化的算法。通常在SFC的情况下,算法的目的在于使用触发点提供的数据和转换成推理引擎可使用的数据。通常,与LFC相反,CC并不永久地保持结论自身。在CC中,转换算法和转换数据可以是共同的或不同的。
有趣的是,安排(Arrange)1.0和2.0可以是由应用程序内的触发点使用的数据集,例如“折扣结果”,其由CC 1130自短期事实,规则,长期事实和其它EIC可获得的由推理引擎处理的资源转换而来。
图12根据本发明的一个优选实施例图解了示例性推理部件管理设备(IMCF)交互。图解了一个ICMF 1210和三个EIC 1220。所述ICMF用于通过应用程序接口(API)来创建,检索,更新和删除EIC。例如,通过使用API,可以创建新EIC引擎部件;或者删除现存的LFC部件;或者检索现存RSC部件来发现它的内容;或者修改现存RSC以包括更多规则;等等。
尽管已经参考附图描述了上述示例性实施例,然而应当理解,本系统和方法并不限于这些具体的实施例,本领域的普通技术人员可想到各种其它变化和修改,而不背离本发明范围和精神。所有这些变化和修改包括在由所附权利要求定义的本发明的范围内。
Claims (30)
1.一种用于提供外化的业务逻辑的方法,包括以下步骤:
识别程序的推理特征;和
提供所识别的推理特征作为可外化的推理部件,其中使外化的算法和数据与推理部件的每个相关。
2.如权利要求1所述的方法,其中所述数据被存储在永久存储器中。
3.如权利要求1所述的方法,其中所识别的推理特征包括触发点,短期事实,推理规则,推理引擎,静态变量映射,传感器,效应器,长期事实和结论中的至少一种。
4.如权利要求1所述的方法,其中推理部件包括触发点部件、短期事实部件、推理规则集部件、推理引擎部件、静态映射部件、传感器部件、效应器部件、长期事实部件和结论部件中的至少一种。
5.如权利要求1所述的方法,其中每个推理部件均是由推理部件提供的数据的用户、由推理部件提供的数据的提供者、和两者的组合中的一种。
6.如权利要求1所述的方法,进一步包括使至少一个触发点推理部件与至少一个应用程序相关的步骤。
7.如权利要求4所述的方法,其中触发点同步或异步地操作。
8.如权利要求1所述的方法,其中至少一个推理部件是使用至少一个其它推理部件的主推理部件。
9.如权利要求1所述的方法,其中至少一个推理部件使用推理引擎。
10.如权利要求1所述的方法,其中至少一个推理部件被组织成至少一个推理子部件。
11.如权利要求10所述的方法,其中所述组织是数组、聚集、散列表、迭代结构、列表、分区、集合、堆栈、树、向量、和它们的组合中的一种。
12.如权利要求1所述的方法,其中至少一个推理部件由至少一个推理子部件组成。
13.如权利要求12所述的方法,其中所述组成是数组、聚集、散列表、迭代结构、列表、分区、集合、堆栈、树、向量、和它们的组合中的一种。
14.如权利要求1所述的方法,其中每个推理部件具有唯一标识符、意图、名称、位置、文件夹、开始时间、结束时间、优先级、分类、引用、描述、启动位置、启动参数、以及初始化参数、实现程序、就绪标记、和自由格式数据中的至少一种。
15.如权利要求1所述的方法,其中至少一个推理部件被至少一个其它推理部件所引用共享。
16.如权利要求1所述的方法,其中至少一个算法执行推理部件创建,推理部件检索,推理部件更新,和推理部件删除中的至少一种。
17.如权利要求1所述的方法,其中至少一个算法被多个推理部件所共享。
18.如权利要求1所述的方法,其中每个算法是执行触发点算法,返回数据算法,联合数据算法,过滤数据算法,翻译数据算法,分类选择算法,随机选择算法,循环选择算法,推理引擎预处理器,和推理引擎后处理器,推理引擎启动装置,接收数据算法,发送数据算法,存储数据算法,和获取数据算法之一。
19.如权利要求1所述的方法,其中提供步骤使用推理部件管理设备来管理推理部件,所述管理包括创建,检索,更新和删除操作。
20.如权利要求1所述的方法,其中至少一个推理部件由多个推理子部件组成。
21.如权利要求20所述的方法,其中所述组成以静态,动态,和两者结合中的一种的方式进行。
22.如权利要求20所述的方法,其中所述组成使用推理部件管理设备来进行。
23.一种用于提供外化的业务逻辑的系统,包括:
识别部件,被设置成识别应用程序中的至少一个变化性点;和
外化部件,被设置成为所识别的至少一个变化性点提供外化的业务逻辑,所述外化的业务逻辑包括推理部件,其中推理部件包括外化的算法和数据。
24.如权利要求23所述的系统,进一步包括永久存储器部件,其被设置成永久存储数据。
25.如权利要求23所述的系统,进一步包括用于使用至少一个虚拟机执行外化的算法的执行部件。
26.如权利要求23所述的系统,其中推理部件由多个推理子部件组成。
27.如权利要求26所述的系统,其中所述组成动态地进行。
28.如权利要求26所述的系统,其中所述组成静态地进行。
29.如权利要求26所述的系统,其中所述组成部分地以静态方式进行,其余部分以动态方式进行。
30.如权利要求23所述的系统,其中所识别的至少一个变化性点包括触发点,短期事实,推理规则,推理引擎,静态变量映射,传感器,效应器,长期事实和结论中的至少一种。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2002/041156 WO2004059511A1 (en) | 2002-12-21 | 2002-12-21 | System and method for externalizable inferencing components |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1695136A CN1695136A (zh) | 2005-11-09 |
CN100543719C true CN100543719C (zh) | 2009-09-23 |
Family
ID=32679939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028298659A Expired - Fee Related CN100543719C (zh) | 2002-12-21 | 2002-12-21 | 用于可外化推理部件的系统及方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20060143143A1 (zh) |
EP (1) | EP1573575A4 (zh) |
JP (1) | JP2006511866A (zh) |
CN (1) | CN100543719C (zh) |
AU (1) | AU2002361844A1 (zh) |
CA (1) | CA2508114A1 (zh) |
IL (1) | IL169266A0 (zh) |
WO (1) | WO2004059511A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100594392B1 (ko) | 2004-07-01 | 2006-06-30 | 에스케이 텔레콤주식회사 | 기업용 무선 어플리케이션 서비스의 비즈로직 프로세서시스템 및 운용방법 |
US7853546B2 (en) * | 2007-03-09 | 2010-12-14 | General Electric Company | Enhanced rule execution in expert systems |
DE102007033019B4 (de) | 2007-07-16 | 2010-08-26 | Peter Dr. Jaenecke | Methoden und Datenverarbeitungssysteme für computerisiertes Schlußfolgern |
US9292324B2 (en) * | 2011-02-18 | 2016-03-22 | Telefonaktiebolaget L M Ericsson (Publ) | Virtual machine supervision by machine code rewriting to inject policy rule |
US8782375B2 (en) * | 2012-01-17 | 2014-07-15 | International Business Machines Corporation | Hash-based managing of storage identifiers |
US9514214B2 (en) * | 2013-06-12 | 2016-12-06 | Microsoft Technology Licensing, Llc | Deterministic progressive big data analytics |
US9849361B2 (en) * | 2014-05-14 | 2017-12-26 | Adidas Ag | Sports ball athletic activity monitoring methods and systems |
JP5925371B1 (ja) * | 2015-09-18 | 2016-05-25 | 三菱日立パワーシステムズ株式会社 | 水質管理装置、水処理システム、水質管理方法、および水処理システムの最適化プログラム |
CN109872244B (zh) * | 2019-01-29 | 2023-03-10 | 汕头大学 | 一种任务指导型智慧农业种植专家系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5432925A (en) * | 1993-08-04 | 1995-07-11 | International Business Machines Corporation | System for providing a uniform external interface for an object oriented computing system |
US5907844A (en) * | 1997-03-20 | 1999-05-25 | Oracle Corporation | Dynamic external control of rule-based decision making through user rule inheritance for database performance optimization |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5136523A (en) * | 1988-06-30 | 1992-08-04 | Digital Equipment Corporation | System for automatically and transparently mapping rules and objects from a stable storage database management system within a forward chaining or backward chaining inference cycle |
US5446885A (en) * | 1992-05-15 | 1995-08-29 | International Business Machines Corporation | Event driven management information system with rule-based applications structure stored in a relational database |
US6473748B1 (en) * | 1998-08-31 | 2002-10-29 | Worldcom, Inc. | System for implementing rules |
-
2002
- 2002-12-21 CA CA002508114A patent/CA2508114A1/en not_active Abandoned
- 2002-12-21 US US10/537,571 patent/US20060143143A1/en not_active Abandoned
- 2002-12-21 EP EP02797476A patent/EP1573575A4/en not_active Withdrawn
- 2002-12-21 WO PCT/US2002/041156 patent/WO2004059511A1/en active Application Filing
- 2002-12-21 AU AU2002361844A patent/AU2002361844A1/en not_active Abandoned
- 2002-12-21 CN CNB028298659A patent/CN100543719C/zh not_active Expired - Fee Related
- 2002-12-21 JP JP2004563146A patent/JP2006511866A/ja active Pending
-
2005
- 2005-06-17 IL IL169266A patent/IL169266A0/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5432925A (en) * | 1993-08-04 | 1995-07-11 | International Business Machines Corporation | System for providing a uniform external interface for an object oriented computing system |
US5907844A (en) * | 1997-03-20 | 1999-05-25 | Oracle Corporation | Dynamic external control of rule-based decision making through user rule inheritance for database performance optimization |
Also Published As
Publication number | Publication date |
---|---|
WO2004059511A1 (en) | 2004-07-15 |
AU2002361844A1 (en) | 2004-07-22 |
EP1573575A1 (en) | 2005-09-14 |
EP1573575A4 (en) | 2009-11-04 |
IL169266A0 (en) | 2007-07-04 |
US20060143143A1 (en) | 2006-06-29 |
JP2006511866A (ja) | 2006-04-06 |
CA2508114A1 (en) | 2004-07-15 |
CN1695136A (zh) | 2005-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Caillou et al. | A simple-to-use BDI architecture for agent-based modeling and simulation | |
Hoen et al. | An overview of cooperative and competitive multiagent learning | |
US20070162482A1 (en) | Method and system of using artifacts to identify elements of a component business model | |
CN100543719C (zh) | 用于可外化推理部件的系统及方法 | |
Decker et al. | A multi-agent system for automated genomic annotation | |
Arias et al. | A multi-criteria approach for team recommendation | |
Stefansson | Swarm: An object oriented simulation platform applied to markets and organizations | |
Wu | Parallelizing a CLIPS-based course timetabling expert system | |
Lotzmann et al. | DRAMS-A Declarative Rule-Based Agent Modelling System. | |
CN102105842B (zh) | 将业务规则与工程应用相集成的系统和方法 | |
Braune et al. | Applying genetic algorithms to the optimization of production planning in a real-world manufacturing environment | |
EP4134880A1 (en) | A computer-based system using neuron-like representation graphs to create knowledge models for computing semantics and abstracts in an interactive and automatic mode | |
Morawiec et al. | The new role of cloud technologies in management information systems implementation methodology | |
Davendra et al. | Chaotic Flower Pollination Algorithm for scheduling tardiness-constrained flow shop with simultaneously loaded stations | |
KR100650434B1 (ko) | 외부화 가능 추론 구성 요소들을 위한 시스템 및 방법 | |
Erdeniz et al. | Cluster-specific heuristics for constraint solving | |
CN111290855A (zh) | 分布式环境中多gpu服务器的gpu卡管理方法、系统及存储介质 | |
Van den Heuvel et al. | Top-down enterprise application integration with reference models | |
Mach et al. | A business rules driven framework for consumer-provider contracting of web services | |
Paralič et al. | Support of knowledge management in distributed environment | |
Jangra et al. | Efficient Utilization of Cloud Based IoT Services Using Ontology System | |
Polat et al. | A multi-agent tuple-space based problem solving framework | |
Viana et al. | Rule Management in Active Database Systems | |
Marcus et al. | Platform considerations in human computation | |
Scales et al. | Parallelizing the OPS5 Matching Algorithm in Qlisp |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090923 Termination date: 20151221 |
|
EXPY | Termination of patent right or utility model |