管理对数据存储系统中的数据应用的规则的方法和系统的制作方法

文档序号:6401936阅读:238来源:国知局
专利名称:管理对数据存储系统中的数据应用的规则的方法和系统的制作方法
技术领域
本发明涉及管理对数据存储系统中的数据应用的规则的方法和系统。
背景技术
通常将复杂的计算表示为流过有向图(directed graph)的数据,计算的组件与该图的顶点(vertices )以及在与该图的链接(弧(arc )、边(edge ))对应的组件之间流动的数据相关联。在美国专利 5,966,072Executing Computations Expressed As Graphs (执行被表示为图的计算)中描述了实施这种基于图的计算的系统。在某些情形下,以被称为“商业规则”的人们可读的形式来描述与顶点相关联的计算。

发明内容
根据本发明的一方面,提供了一种用于管理对数据存储系统中的数据应用的一个或多个规则的方法,所述方法包括:在输入设备或端口接收来自所述数据存储系统的数据;以及用至少一个处理器,根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分,所述处理包括:在编辑器界面显示所述规则规范的多个部分;对所接收的数据的一个或多个记录应用所述规则,以获得结果信息;以及在所述编辑器界面中与所述规则规范的特定显示部分相关联地显示所述结果信息的至少一部分。根据本发明的另一方面,提供了一种在计算机可读介质上存储的软件,用于管理对数据存储系统中的数据应用的一个或多个规则,所述软件包括用于使得计算机系统执行以下步骤的指令:在输入设备或端口接收来自所述数据存储系统的数据;以及用至少一个处理器,根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分,所述处理包括:在编辑器界面显示所述规则规范的多个部分;对所接收的数据的一个或多个记录应用所述规则,以获得结果信息;以及在所述编辑器界面中与所述规则规范的特定显示部分相关联地显示所述结果信息的至少一部分。根据本发明的另一方面,提供了一种用于管理对数据存储系统中的数据应用的一个或多个规则的计算机系统,所述计算机系统包括:输入设备或端口,配置为接收来自所述数据存储系统的数据;以及至少一个处理器,配置为根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分,所述处理包括:在编辑器界面显示所述规则规范的多个部分;对所接收的数据的一个或多个记录应用所述规则,以获得结果信息;以及在所述编辑器界面中与所述规则规范的特定显示部分相关联地显示所述结果信息的至少一部分。 根据本发明的另一方面,提供了一种用于管理对数据存储系统中的数据应用的一个或多个规则的计算机系统,所述计算机系统包括:用于接收来自所述数据存储系统的数据的部件;以及用于根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分的部件,所述处理包括:在编辑器界面显示所述规则规范的多个部分;对所接收的数据的一个或多个记录应用所述规则,以获得结果信息;以及在所述编辑器界面中与所述规则规范的特定显示部分相关联地显示所述结果信息的至少一部分。根据本发明的另一方面,提供了一种用于管理对数据存储系统中的数据应用的一个或多个规则的方法,所述方法包括:在输入设备或端口接收来自所述数据存储系统的数据,所述数据包括输入值和与所述输入值对应的参考输出值;以及用至少一个处理器,根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分,所述处理包括:在编辑器界面显示定义所述规则规范的至少一部分的信息;对所接收的数据中的所述输入值应用由所述规则规范的至少一部分指定的所述规则,以生成输出值;以及提供所生成的输出值与所接收的数据中的所述参考输出值的比较的指示。根据本发明的另一方面,提供了一种在计算机可读介质上存储的软件,用于管理对数据存储系统中的数据应用的一个或多个规则,所述软件包括用于使得计算机系统执行以下步骤的指令:在输入设备或端口接收来自所述数据存储系统的数据,所述数据包括输入值和与所述输入值对应的参考输出值;以及用至少一个处理器,根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分,所述处理包括:在编辑器界面显示定义所述规则规范的至少一部分的信息;对所接收的数据中的所述输入值应用由所述规则规范的至少一部分指定的所述规则,以生成输出值;以及提供所生成的输出值与所接收的数据中的所述参考输出值的比较的指示。根据本发明的另一方面,提供了一种用于管理对数据存储系统中的数据应用的一个或多个规则的计算机系统,所述计算机系统包括:输入设备或端口,配置为接收来自所述数据存储系统的数据,所述数据包括输入值和与所述输入值对应的参考输出值;以及至少一个处理器,配置为根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分,所述处理包括 :在编辑器界面显示定义所述规则规范的至少一部分的信息;对所接收的数据中的所述输入值应用由所述规则规范的至少一部分指定的所述规则,以生成输出值;以及提供所生成的输出值与所接收的数据中的所述参考输出值的比较的指示。根据本发明的另一方面,提供了一种用于管理对数据存储系统中的数据应用的一个或多个规则的计算机系统,所述计算机系统包括:用于接收来自所述数据存储系统的数据的部件,所述数据包括输入值和与所述输入值对应的参考输出值;以及用于根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分的部件,所述处理包括:在编辑器界面显示定义所述规则规范的至少一部分的信息;对所接收的数据中的所述输入值应用由所述规则规范的至少一部分指定的所述规则,以生成输出值;以及提供所生成的输出值与所接收的数据中的所述参考输出值的比较的指示。通常,在一方面中,通过以下步骤来更新基于图形的计算中的组件,所述基于图形的计算具有由表示数据流的链接元素而连接的数据处理组件,所述步骤包括:接收规则规范,基于规则规范生成用于变换数据的变换,将变换与基于图形的计算中的组件相关联,并且响应于确定已接收到新的规则规范或者已编辑现有的规则规范、根据新的或者编辑的规则规范来更新与基于图形的计算中的组件相关联的变换。实施方式可以包括以下特征中的一个或多个。
接收规则规范,包括从用户接收规则规范的表的行,该行定义规则情形并且包含一个或多个潜在输入的集合中的每一个的关系。接收规则规范还包括从用户接收该表的第二行,该第二行定义第二规则情形并且包含一个或多个潜在输入的第二集合中的每一个的第二关系。该关系包括以下中的一个或多个:具有等于阈值的值、具有阈值之上的值、具有阈值之下的值、具有属于值的集合的值、具有与样式(pattern)匹配的值、具有与另一输入的值的关系、具有与另一规则规范的输出的值的关系,或者具有与存储器中值的关系。行还包含输出,输出包括以下中的一个或多个或者其组合:输入的值、预定的值,或者由一个或多个输入的值计算而来的值。接收包括测试列的集合的表,每个测试列包含一个或多个潜在输入的值,并且对每个测试列,标识规则规范的行,该行将生成测试列的给定的输入值的输出、并且向用户输出每个测试列所标识的行的标识。生成包括每个测试列的结果行的表,每个结果行指示给定的测试列的输入值将生成的输出。生成表包括,在每个结果行中,指示是否从被指示为规则规范的之前版本的输出改变为将生成的输出。响应于用户与结果行的交互,指示规则规范中的哪一个规则情形将生成结果行中的输出。

生成包括对应于规则规范的每一行的评估行的表,在该表的每个评估行中,对每个潜在的输入,指示对应潜在输入的第一测试行中的值是否满足潜在输入的关系,并且在对应于给定的第一测试行的输入值将生成输出的规则规范的行的评估行中,指示将生成该输出。评估行具有对应于规则规范的行的顺序的顺序,并且其中指示输出的评估行对应于满足了潜在输入的每一个关系的规则规范的第一行。指示与满足了潜在输入的每一个关系的规则规范的行对应的、在每一个评估行中将生成的输出。生成包括对应于规则规范的每一行的评估行的表,在每个评估行中,指示多少测试列具有满足规则规范的对应行中的关系的输入。每个测试列还包含预期的输出值,每个结果行指示对给定的对应的测试列的输入值将生成的输出是否与测试列中预期的输出匹配。响应于为每一个测试列确定第二规则规范的至少一行将生成给定的测试列的输入值的输出,确定包括第一规则规范和第二规则规范的规则集合有效。生成包括对每个测试列的结果行的表,每个结果行指示对给定的测试列的输入值、由规则规范之一中的行生成的每个输出。对于对给定的第一测试列的输入值生成的输出,生成将导致输出的生成的、规则规范的输入和输出之间的相互关系的图形显示。接收测试列的表包括:从用户接收输入值的集合、将输入值的集合与规则规范的潜在输入值进行匹配,并且将输入值的集合存储到表的列中。对输入值的集合的接收响应于显示潜在输入值的标识。响应于确定规则规范的集合中的每个规则规范将生成至少一个输出,确定规则规范的集合是有效的。响应于确定规则规范不是有效的,向规则规范的源通知该规则规范不是有效的。更新变换包括:确认规则规范是有效的,基于新的或者编辑的规则规范生成新的变换,将第一变换与组件不关联,并且将新的变换与组件相关联。更新变换包括:确认规则规范是有效的,等待要被执行的基于图形的计算,当激活组件时,基于新的或编辑的规则规范生成新的变换,并且将新的变换与组件相关联。生成变换包括将规则规范中的多个规则情形中的每一个转换为逻辑表达式以形成多个逻辑表达式,并且将多个逻辑表达式编译为计算机可执行的代码。编译多个逻辑表达式包括以下的一个或多个:组合表达式、优化各个表达式,并且优化表达式的组。编译多个逻辑表达式包括将表达式与适合于在基于图形的计算中使用的组件相关联。通常,在一方面,通过以下来测试计算:接收包括规则情形的集合的规则规范,每个规则情形包括潜在输入和对应输出的关系;接收测试情形的集合,每个测试情形包含一个或多个潜在输入的值,并且为每个测试情形,标识对给定的测试情形的输入值将生成输出的规则情形中的一个。实施方式可以包括一个或多个以下特征。响应于标识将对每个测试情形生成输出的规则情形,存储或输出该规则规范是有效的指示。响应于标识对每个测试情形将生成输出的规则情形,存储或输出将生成输出的指示。接收测试情形的集合包括接收测试列的集合的表,每个测试列包含对于对应的一个测试情形的一个或多个潜在输入的值。对于每个测试情形以及对于该测试情形的所标识的规则情形,标识由所标识的规则情形将生成什么输出。对于每个测试情形以及对于该测试情形的所标识的规则情形,标识由作为促使所标识的规则情形生成输出的测试情形中的一个或多个输入值。还包括对于每个测试情形,为每个规则情形指示测试情形中的值使得规则情形的哪些关系得到满足以及未得到满足。规则情形具有顺序,并且对于每个测试情形所标识的规则情形对应于满足潜在输入的每一个关系的顺序中的第一规则情形。接收包括规则情形的第二集合的第二规则规范,一个或多个规则情形包括第一规则规范的一个或多个输出与第二规则规范的对应输入的关系。对于每个测试情形,标识对给定的测试情形的输入值和第一规则规范的标识的规则情形的输出将生成输出的第二规则规范的规则情形中的一个。对于每个测试情形,生成将导致生成第二规则规范的输出的、输入和第一规则规范的输出与第二规则规范的输出之间的相互关系的图形显示。对于每个测试情形,指示将生成给定的测试情形的输入值的输出的每个规则情形。对于每个规则情形,指示多少测试情形具有将促使规则情形生成输出的潜在输入的值。每个测试情形 包括输出。确定由标识的规则情形生成的输出是否匹配测试情形中包括的输出,并且存储或交换确定的结果。生成包括每个测试情形的结果行的表,每个结果行指示对于给定的测试情形的输入值将由规则规范生成的输出。在每个结果行中,指示是否从被指示为规则规范的之前的版本的输出改变为将生成的输出。响应于用户与结果行的交互,在结果行中指示将生成输出的标识的规则情形。对于测试情形之一,生成包括对应于规则规范的每个规则情形的评估行的表,在表的每一评估行中,对于每个潜在的输入,指示测试情形中的潜在输入的值是否满足对应于评估行的规则情形中潜在输入的关系。在对应于测试情形的所标识的规则情形的表的评估行中,指示由该规则情形将生成的输出。评估行具有对应于规则规范内规则情形的顺序的顺序,并且其中指示输出的评估行对应于潜在输入的每一个关系所满足的第一规则情形。指示对应于潜在输入的每一个关系所满足的规则情形的、将由测试情形在每个评估行中生成的输出。接收包括规则情形的第二集合的第二规则规范,指示将由每个规则规范生成的输出。生成包括每个测试情形的结果行的表,每个结果行指示对于给定的测试情形的输入值由规则规范生成的每个输出。响应于用户与结果行中所指示的输出的交互,指示哪一个规则情形将生成所指示的输出。所指示的规则情形来自第二规则规范,并且指示所指示的规则情形包括:指示来自第一规则规范的规则情形和满足所指示的规则情形的输入关系的规则情形的输出。接收测试情形的集合包括:从用户接收输入值的集合,将输入值的集合与规则规范的潜在输入值进行匹配,并且将输入值的集合存储到表的列中。对输入值的集合接收是响应于显示潜在的输入值的标识。通常,在一方面,在具有由表示数据流的链接元素而连接的数据处理组件的基于图形的计算中的组件,该组件包括基于规则规范变换数据的变换,所述规则规范包括规则情形的集合,每个规则情形包括潜在输入和对应输出的关系,并且通过以下步骤来进行测试,在执行环境中在输入数据的集合上执行基于图形的计算、对输入数据以及由对输入数据的集合中的每一项数据的计算而产生的输出进行登记,并且在与执行环境分开的测试环境中,对于所登记的输入数据的集合中的每一项数据来标识对于给定的该项中的输入值将生成所登记的输出的规则情形之一。在附图和以下的描述中阐述本发明的一个或多个实施例的细节。从该描述以及附图,和权利要求中本发明的其他特征、目的以及优点将显而易见。


图1A是变换的示例。图1B是图的示例。图1C是变换的生成和更新的框图。图2A是基于扩展页(spreadsheet)的规则条目(entry)的示例。

图2B是各个规则的示例。图3是测试数据集合。图4A是测试结果。图4B和图4C是测试结果的细节。图5和图7是流程图。图6是变换代码的示例。
具体实施例方式可以将商业规则表示为可以使用的准则的集合,例如,用于将数据从一种格式转换为另一种格式,做出关于数据的确定,或者基于输入数据的集合生成新数据。例如,在图1A中,航班预定系统中的记录102指示乘客的姓名104、该乘客本年度已飞行多少英里106、该乘客的票的舱位等级108,以及他的座位所处的行110。商业规则指示应当使这样的乘客进入登机组I。通常商业规则对于人是容易理解的,即,“头等舱的乘客在组1”,但是在使用商业规则来操作数据之前可能需要将其转化为计算机能够理解的东西。为了在基于图的计算环境中实施商业规则,生成变换112,该变换112从一个或多个数据源(例如输入数据集合100)接收输入记录(诸如记录102),并且将指示乘客姓名104和其在118中的哪个组的输出记录(例如,记录114)插入到输出数据集合120中。输入和输出数据集合也可以称为数据流。然后可以在具有通过链接代表数据流动的元素而连接的数据处理组件的基于图的计算中,实施该变换。例如,图1B的简单的计算图130取得作为输入的两个数据集合132、134 (例如,频繁飞行数据和航班预定数据),在分离的格式化组件136、138中格式化每个集合中的数据使得可以一起使用它们,并且在结合(join)组件140中将它们进行结合以产生输出数据集合142。变换自身可以是基于图的计算,诸如在图130中的计算,或者可以在图的组件内实施,诸如图130所包含的各个组件136、138以及140。为了对非技术的用户简化变换的创建,向这样的用户提供了工具,使得以用户熟悉的格式来输入被称为规则集合的商业规则的集合,其告知计算机系统用户想要变换做什么。规则集合是产生单一变换的规则的集合。取决于输入该规则可以由对于规则的输出计算不同值的一个或者多个情形组成。一规则还可以包括其他规则。规则集合中的其他规则可以产生附加的或者可替换的输出的值。规则的集合可以包含我们称为“被包括的(included)”规则集合的其他规则集合。图1C中示出了变换生成系统的一般的模型。生成器150从编辑器154接收作为输入的规则集合152并且生成变换156。取决于该系统的架构和变换的目的以及该商业规贝U,可以将生成的变换156提供给基于图的计算系统158作为在图中使用的或者在整个图自身中使用的组件。生成器150可以是,例如汇编器、客户建立的程序,或者是使用标准工具配置的另一基于图的计算,以接收规则集合152和输出变换156。生成器150还可以在编辑规则集合152时更新变换156。当编辑规则集合152时,编辑器154可以向编辑者提供整个规则集合或者它可以仅仅提供新的或者修改的规则或者规则的情形152a。生成器150可以生成整个新的变换以替代原始的变换156,或者它可以提供包含变换的组件156a,这取决于性能和使用变换的系统的需要。如图2A所示,在某些示例中,可以以扩展页格式来加入(enter)规则。扩展页200中的触发列(trigger column)202、204、206,208对应于可得到的数据值,而行210a_h对应于规则情形,即,与可得到的数据值有关的准则的集合。如果对其中规则情形具有准则的每个触发列所记录的数据值满足触发准则,则将规则情形210η应用于给定的记录(例如,图1A中的102)。如果应用规则情形210η,则基于一个或者多个输出列212生成输出。可以将规则情形的所有输入关系都·得到满足的规则情形称为“触发的”。每个输出列212对应于潜在的输出变量,可应用的行210η的对应的单元(cell)中的值为该变量确定输出(如果有)。如以下将讨论的,单元可能包含被分配给变量的值或者它可能包含为生成输出值必须要评估的值。尽管在图2A中仅仅示出了一个,但是可以存在多于一个的输出列。可以存在若干不同类型的触发列,包括:对应于变量的列、包含表达式但是一旦被运算则如变量对待的列,以及仅仅包含表达式的列。基于仅仅包含数据的列,其他的列的类型包括仅仅包含数据的列和指定评估每一行的表达式的列。仅仅包含表达式的列比那些对应于变量或者被作为变量对待的列更简单。这样的列可以包含以下中的一项: 表达式。如果该表达式的评估被评估为非零、非空值,则认为该条件为真。 关键字“任何”,或者空字符串(string)。该条件总是为真。触发列中的每个空单元等效于明确包含关键字“任何”的单元。 关键字“其他”。如果在包含“其他”的该单元之上没有一个单元为真,则该条件为真,该行中向左的所有单元是等同的。 关键字“相同”。如果以上单元为真,则该条件为真。对应于变量的列可以具有两种类型的单元。一种类型的单元是表达式单元。那些单元表现完全如同上述的仅仅包含表达式的列中的单元。然而,可以在表达式中使用关键字“this”来指代列变量。另一类型的单元是比较值。用于比较值的示范性的文法(grammar)如下:
comparison—value::= compound—value (“or” compound—value )*
compound_value:;= simple—value (“and” simple—value )*simple—value::= [ “not” ] ( value—expression j simple—funcdon |membership—cxpr)value......expression::= [ operator ] value_eiemeni
operator::= | “< ” | “>=” | “<=” j “!=” | “=’,| “equals” value—element::= constant j constant | variable | “(“expression “)” simple—function::= “is_null” | “Ls_Man.k” | “is—valid” | “k—definecT | iIOzero'1
membership—expr::= “in,5 H[M value—element (( “,n | tW51 MorM)value dement)* “]M其中意味着该项重复零次或者多次。可以使用任何合适的编程语言或者语法(syntax)。示例可以包括C、Java、DML,或者Prolog。根据操作符、函数、或者从属关系(membership)表达式将列变量与比较值进行比较。在图2A的示例中,前两列202和204包含具有“>=”操作符的比较值,从而如果该列的值大于或者等于对应的数,则满足准则。如果不存在操作符,如在“座位的舱位等级”列中,则假设“等于”。常数可以是在基础系统中使用的无论何种编程语言或者语法中的任何合法常数。如下所述,其他常数和变量是在规则集合内定义的商业项。表达式是在返回将与列变量比较的可兼容的数据类型的、使用的语言的任何合法表达式。在某些示例中,在括号中包含比较值内部的表达式以避免混淆。对于simple_function,将该函数应用于列变量,因此“is_null”关键字与表达式“is_null(this)”相同。在图2A的示例中,第一行210a具有仅仅一个列202,其指示如果旅行者频繁飞行的英里的总数大于1,000,000,则应用规则情形而不管任何其他列可能具有的什么样的值。在该情形中,“登机组”输出该用户被置于组I的变量。同样,第二规则情形210b指示头等舱中的任何乘客在组I中。在某些示例中,依序评估规则,所以已经超过1,000,000英里的旅行者和头等舱票将在组I中,但是将仅仅触发第一规则情形210a。一旦规则情形被触发,则不需要评估该规则中的其他规则情形。下一规则情形210c是基于两个输入值202和204,如果满足了总的频繁飞行里程和当年里程这两者所限定的准 则,则该乘客在组2。在第四规则情形210d中,任何商务舱的顾客也在组2。剩余的规则情形210e-h包含与其他规则情形有关的准则,即,“其他”以及“相同”。如上所述,“其他”指示不满足其之上的行中的列的准则的任何一个,并且其具有相同的准则至左(即,规则210b和210d),“相同”指示这样的规则情形应用,即,其被应用的以上规则情形是否关于该列。从而,将第五规则情形210e应用于任何记录,该任何记录与前两列202或204中的任何准则不匹配(因为,其可能由规则情形210a或者210c来处理)、不具有“座位的舱位等级”列中的“头等”或“商务”(列206中的关键字“其他”)、并且其具有“座位的行”的值208小于或等于10。剩余规则情形210f-h中的每一个应用于以下记录:其也与列202或204中的具有值的任何更高规则情形不匹配、不具有“座位的舱位等级”列中的“头等”或“商务”的、并且具有合适的“座位的行”的值。还可以将图2A的示例中的规则情形210a_h表示为各个简单的规则,每一个处于其自身的扩展页中,如图2B中所示。规则220a-d分别对应于图2A的行210a_d,而规则220e具有对应于行210e_h—起的四个规则情形。用户可以分开创建这些各个规则,而不是生成图2A中示出的整个表。每个规则包含每个触发列的值和每个输出列的值(该值可以是空的,即,有效地被设置为“任意”)。当多个规则生成相同的输出时,对这些规则进行排序并且依序对这些规则进行考虑直到一个规则中的规则情形在输入触发并生成输出。如果没有规则情形处于规则触发,则处理产生相同输出的下一规则。如果没有任何规则中的情形触发输出,则使用默认的值。在一些示例中,编辑器界面可以按图形标识包含表达式的单元(Ce 11)。这将有助于用户理解按照其自身将被评估为真的或者假的表达式和返回与列变量比较的值的表达式之间的差别。当用户在键入(type)时,他可以通过例如在开始键入星号来指示要作为表达式单元特定的单元。在一些示 例中,值和表达式是DML表达式。可以支持完全的DML语言。将字段(field)和值的特殊的关键字和商业名称编码为DML表达式的预处理输出的字符串。注意,表达式不仅可以为变量使用逻辑(商业)名称,而且还可以指代实际的物理名称,尽管这可能干扰测试。对于对应于输出变量的列,单元可以包含以下中之一: 值。该值将被分配给输出变量 表达式。该表达式的值将被分配给输出变量。如果该表达式评估为NULL,则字段取得该NULL值,除非输出字段是不可空的(non-nullable)。在这种情形中,生成错误。 关键字“null”。如果输出字段是可空的,则给该字段分配NULL。否则,生成错误。 空字符串。如果输出字段具有默认值,则分配默认值。否则,将该单元作为其包含关键字“null”对待。 关键字“相同”。给输出字段分配之上的单元中计算的相同的值。如果可能,则尽可能快地报告错误(S卩,在不可空的字段的输出列中置入“null”)。然而,一些错误直到测试时或者运行时才可以被报告。除了表达式,可以允许用户对规则中的任何单元附加注释(comment)。可如附加到诸如Microsoft Excel之类的普通的电子表程序中单元的注释那样来显示这些注释。在一些示例中,可以配置编辑器界面的规则使得比该界面需要的技术要求更严格地限制用户可以输入的内容。例如,可以配置该界面以仅仅允许某些类型的变量或者某些类型的表达式,以便提供更简单的、进一步限制(constrained)的用户界面。基于用户的角色或用户ID还可以配置该界面以来限制可以改变规则中的哪些单元。这样的限制可以通过管理员而应用到规则的集合。无论按照表的行或者按照单独的规则创建,每个规则具有特定的一组属性。规则集合可以确定它们包括的这些规则的这些属性。这些属性可以包括名称、规则类型、描述和注释字段、输出变量的列表、输入变量的列表、主题(argument)的列表、触发列的列表、修改历史、测试数据集合、以及错误处理行为。名称是自解释的,并且用于在规则集合中列出规贝U。规则类型可以是例如“正常的”或“功能”。在一些示例中,规则类型是规则集合的特性(property)。输出变量的列表是由规则产生的变量或者由规则分配的值的集合。这可以从规则集合中继承(inherite),并且可以存在一个或多个输出。输入变量的列表标识规则需要以评估记录的所有变量,包括列的顶部的那些变量和在表达式内部使用的那些变量(例如,图2A中的规则210c中使用的“近年的频繁飞行的里程”,在表达式中使用,但没有其自身的列)。在一些示例中,可以使用多个规则情形来生成单一输入记录的多个输出记录。这样的规则集合被称为归一化的(normal ize )规则集合。在归一化的规则集合中,输出中的一个被标识为关键输出。当评估计算该关键输出的规则时,记录(note)输入所触发的规则情形和生成的输出。然后再次评估规则,禁止之前触发的规则情形,以查看是否任何其他的规则情形触发并产生输出。对此进行重复直到没有规则情形触发。可以将每个输出作为分开的输出记录而存储。在一些示例中,对规则情形分组,使得如果一个规则情形触发,则当对相同输入的下次迭代(iteration)时还禁止其组内的其他规则情形。在一些示例中,通过行中的规则情形进行“与”操作而对列进行“或”操作,可以以与上述的相反的方式来评估规则。即,只有如果每一行触发(对行进行“与”操作),而对于每一行仅仅需要单个单元为真以触发(对列进行“或”操作)规则才产生输出。对于功能规则仅仅呈现主题的列表。其标识被输入到规则的参数的名称和类型,并且可以是规则集合的特性。触发列的列表标识哪一列可以触发规则的应用。除了仅仅在图2A和图2B的示例中示出的输入变量之外,触发列可以对应于参数、查找变量、来自较早的规则的输出变量、所包括的(including)规则集合的输出变量、对于规则集合的参数,或者表达式。它们还可以包括来自功能规则,即,来自主题的输入变量。修改历史包括修改的名称、日期,以及注释。在一些示例中,存在对于每个规则的一个修改历史,和对于测试集合的一个修改历史(以下讨论)。错误处理确定从规则集合创建的变换怎样处理在评估规则时发生的错误。为了处理触发表达式中的错误,选项(option)是允许错误或者忽略错误,在选项允许错误的情况下,变换拒绝(re ject)导致错误的记录,而选项忽略错误的情况等效于假定触发表达式为假并且继续前进到下一规则。对于输出表达式,可以通过以下来处理错误:允许该错误并且拒绝记录、忽略错误并且将输出设置为NULL,或者忽略规则中的该行并且继续前进到下一行。
测试数据为了辅助评估规则集合是否按照预期来工作,可以包括测试数据集合。规则集合的测试数据集合是原型(prototypical)输入和期望的输出的集合,例如,如图3所示。该测试数据集合由如表400的扩展页组成,表400具有由规则引用的每个字段的一行402a-e以及每个输出的一行404 (在该示例中,存在仅仅一个)。然后用户可以创建在测试数据的列406a-r中表示的测试情形和期望的结果。可以利用规则保存该测试数据。图3的示例包含可能的输入402a-e和作为关于图2A-图2B的规则的预期的输出404。对于频繁飞行里程和座位安排的各种组合406,其示出应当计算什么登机组404 (存在比所示出的可能输入更多的组合)。在一些示例中,测试输入包括在每个查找中的值或每个变量。测试输入还可以包括每个参数的值以及作为引用当前的日期或时间、对于任何规则用作“现在”的值。为测试各个个体(unit),测试输入可以包括任何所包含的规则集合的值,使得在测试所包括的规则集合时不必要评估被包括的规则集合。在一些示例中,基于用户动作由软件来确定个体测试表中的列402、404。当用户编辑规则时,解析该规则的细节并且生成所引用的输入变量的确定的(definitive)列表。该列表包括在列标题中使用的变量和在表达式中嵌入的变量。对每个变量、在表达式中嵌入的每个技术变量,以及每个查找表达式生成一列。在一些不例中,用户通过每次一个地(oneat a time)提供测试情形来创建测试表400。例如,用户可以指定具有总共2,000,000频繁飞行里程、本年200,000英里、去年150,000英里、以及在第5行中的头等舱机票的乘客应当位于登机组I。软件确定行402a-e和行404中的哪一行对应于这些输入和输出并且在表400中创建对应的列406a。可以按照用户希望输入的测试情形的次数来对此进行重复。在一些情形中,软件可以向用户提供给出了每个潜在的输入或输出变量的界面,使得用户可以仅仅输入或选择值而无须知道什么变量需要它们。然后用户可以填写测试情形并且执行测试。关于这一点,软件评估测试数据集合表的每一行的规则并且计算结果值。如果结果值与期望的值(由用户在对应于输出变量的列中输入的值)匹配,则给出该规则有效的指示,例如,可以以绿色示出该输出单元。如果结果值与期望的值不匹配,则对此做出指示,例如,可以以红色示出该单元并且显示期望的值和实际值。然后用户可以更新测试情形或调整(fix)该规则。当然可以使用其他用户界面机制。例如,除了将计算的输出与输入期望的输出进行比较,测试过程可以简单地显示计算的值是什么,并且让用户来评估是否正确。在一些示例中,用户具有其可以用于生成测试数据的实际数据。商业规则的最终用户可以提供这样的数据给开发者以用于测试。为了处理用户没有实际的数据来测试的情形,软件可以提供简单的数据输入形式用于一次一个记录地输入测试数据。用户可以在输入数据集合中键入每个字 段的值并且这些记录将被添加到所标识的测试数据集合。在一些示例中,在输入规则时对其进行验证(validate),并且可以立即在界面上标识出不产生期望的输出的规则,类似于字处理器可以在输入词时标记拼错的词那样。在一些示例中,在执行了测试之后,用户可以在测试数据集合表中选择任何行(测试情形)。如果选择了行,则将显示为该测试情形产生输出的规则表中对应的行。除了表达式,用户还可以向测试数据表中的任何单元附加注释。更多关于规则集合的如上所述的,根据规则集合中生成变换。规则集合可以具有以下属性:名称、描述,以及注释-这有助于标识规则集合。依赖于后端的(back-end)实施方案,规则集合可以包括其在系统内的位置的标识。在一些示例中,规则集合的位置是项目(project)中的路径(path)。在一些示例中,可以在相关的(relational)数据库中组织规则集合并且由名称来定位规则集合。修改历史包括修改名称、日期,和登记(check-1n)注释。变换类型-其确定从规则集合生成什么类型的变换。如下所讨论的,可能的值包括重新格式化、结合(join)、积累(rollup),以及筛选(filter)。
输入数据集合-其提供了用于编辑的字段和已命名的常数(constant)的列表。在一些示例中,当生成变换时,将通过默认来假定输入数据集合中的一个数据集合的记录格式。可以存在多个输入集合,允许规则集合为不同的环境生成变换。这还允许多个逻辑的集合进行物理地映射,即,物理名称的不同集合。在一些示例中,存在具有一个或多个数据集合的输入映射表。在一些示例中,结合组件可以具有多个输入映射表,并且每一个输入映射表可以具有多个数据集合。输出数据集合-其提供了输出字段名称的列表。通过默认,当生成变换时,将假定输出数据集合的一个的记录格式。输出数据集合可以与输入数据集合相同。被包括的规则集合将不具有输出数据集合。在一些示例中,如同输入数据集合,存在多个输出集合,允许规则集合为不同的环境生成变换。被包括的规则集合的列表-一个规则集合可以使用由另一规则集合计算的输出字段(明确地被列出的输出字段,不是输出记录格式的字段)。基于被包括的规则集合的映射表,被包括(included)的规则集合中的输出变量可以用作包括(including)规则集合中的变量,所述被包括的规则集合的映射表定义了在包括的规则集合中可见的、来自被包括的规则集合的输出变量的集合。被包括的变换文件的列表-可以有选择地包括当处理规则集合时指定要使用的变换的一个或多个文件。列出变暈和常数的一系列映射表-利用输入和输出数据集合使这些表相互联系(interwin)。其使得变量的列表对于编辑器是已知的并且证明(document)商业名称和技术名称(DML)之间的映射。每个变量具有商业名称、技术名称(DML表达式),以及基本类型(字符串、数字、日期或日期时间)。与每个变量相关联的是证明商业名称和DML常数值之间的映射的可选的常数的列表。以下更详细地描述变量表。对外部测试数据文件的引用-测试文件被用于测试规则,类似于以上所讨论的嵌入的测试数据集合。非拒绝标志-如果设置了该标志,则由规则集合产生的变换将不拒绝记录(扔掉错误)。可以使用该标志使得忽略扔掉错误的规则,好像该规则从未被触发过。调度表-其列出一个或者更多调度(deployment),该调度指示(间接地)在每个编译(build)中将包括哪些规则。随后详细描述调度表。可选关键字(key)-其让用户指定表示用于结合类型和积累类型规则集合的关键字的特殊输入字段的商业名称。在一些示例中,实际上利用关键字的类型,将该关键字实施为输入变量的表中的条目(entry)。杳找文件的可选列表-其提供商业名称、关键字信息以及输入变量和常数的完整的表,每个查找文件一个表。以下更详细地描述查找文件支持。参数的表-其列出其值来自环境或者来自运行时的参数集合的变量。变暈和常数的表如上所述,每个规则集合具有变量和常数的表的相关联集合。在一些示例中,这些表对于规则集合是私有的(private)并且不能在规则集合之间共享。变量和常数的表被用于以下若干目的:1.作为规则集合所 使用的输入变量以及由规则集合计算而产生的输出变量的确定的列表。2.作为在编辑期间可用的商业名称的列表。当编辑时,系统将对于变量和常数呈现商业名称的建议列表。该列表来自于变量和常数的表。3.作为将商业名称转译(translate)为技术名称的映射表。规则将包括商业名称(以文本,如随后描述的DML预处理器指令(directive)的内部)。当创建变换时,由技术名称或者DML表达式代替商业名称。一些表,如输入变量和输出变量,可以具有多个数据集合,每个数据集合具有对于商业名称的不同的技术名称。所使用的转译依赖于调度(随后详述)规则集合可以具有若干不同的表。这些表在许多方面是类似的,但是存在以下细微的差别。这些表包括:1.输入变量和常数的表。对于变换类型的规则集合,该表包含规则中将引用的输入记录格式中的字段。不是记录格式中的每个字段都需要被列出,而是它们通常被列出。对于结合类型的规则集合,将存在多个输入表,每个表表示结合操作的一个输入数据集合。2.对于所有被包括的规则集合的输入变量和常数的表。当使用被包括的规则集合,每个被包括的规则 集合具有其自身输入变量和常数的表。当编译变换时,必须将被包括的规则集合所使用的输入变量映射到进行包括的规则集合的上下文中的实际输入。因此,提升(promote)该列表至包括规则集合。如果包括了多个被包括的规则集合,则提升每个输入变量表。(如果被包括的规则集合自身包括规则集合,则不提升第二级变量)。从被包括的规则集合中提升的输入变量和常数对于包括规则集合是不可用的。仅仅包括该表使得可以在被包括的规则集合的输入和包括规则集合的输入之间建立映射。参见以下更多的细节。3.对于所有被包括的规则集合的输出变量和常数的表。当已经包括了规则集合时,那些被包括的规则集合的输出变为包括规则集合的输入。该表列出了所有的那些变量。初始地根据所有被包括的规则集合的输出变量和常数的表直接填充(populate);然而,可以改变商业名称以避免名称冲突。对于该表,技术名称真正是(really)被包括的规则集合内部的商业名称。4.输出变量和常数的表。对应变换类型的规则集合,该表包含将由规则集合计算的输出记录格式中的字段。还可以包括未计算的输出变量并且这些输出变量将被规则集合所忽略。(所生成的变换具有通配符(wildcard)规则以将输入复制到输出。此外,输出可能具有被包括的默认值)。还可以将输出变量用作中间(intermediate)变量,这意味着可以在随后的规则中引用从一个规则产生的输出的值。有时,仅仅以此方式来使用输出;该输出从不直接被包括在来自变换的输出记录中。5.参数的表。规则可以包括对参数的引用(reference)。在运行时在图形参数集合的上下文中来解算(resolve)参数。如同其他变量,规则集合中的参数具有商业名称、技术名称(例如,$RUNDATE)和类型。6.对每个查找文件的变量映射的表。这类似于输入表,但映射于查找文件的记录格式中的字段。通常将非共享的规则集合(其被设计用于产生变换)捆绑到(tie)输入和输出数据集合两者。输入数据集合是输入变量的来源。输出数据集合是输出变量的来源。有时,规则集合将具有多个输入数据集合和/或多个输出数据集合。在这种情形下,每个输入数据集合和输出数据集合是变换的可能的输入或输出。仅仅存在输入变量的一个集合(除了结合操作以外),但可能存在对于不同的数据集合商业名称和技术名称之间的不同映射。在一些情形中,输入变量可以被规则集合使用并且在一个输入数据集合中但是不在第二输入数据集合中呈现。在这种情形下,在第二输入数据集合中必须将DML表达式指定为缺失(missing)变量的技术名称。如果规则集合不使用输入变量,则不存在为每个输入数据集合提供技术名称的需要。同样,可能存在仅仅输出变量的一个集合。如果给定的输出数据集合不具有与输出变量对应的字段(例如,不存在技术名称),则当生成对于该输出数据集合的变换时,将忽略该输出。有些(somewhat)不同地对待(treat)被包括的规则集合。被包括的规则集合不具有相关联的输入和输出数据集合。替代地是,它们仅仅具有输入变量和输出变量。包含被包括的规则集合的规则集合负责映射输入和输出。随后更详细地进行描述。变量可以具有以下特性,并且可以以列表形式(tabular form)呈现给用户:1.商业名称(逻辑名称)。商业名称是在规则中使用的名称。在一些示例中,施加限制使得没有两个输入变量可以具有相同的名称、没有两个输出变量可以具有相同的名称、没有来自被包括的规则集合的两个输出可以具有相同的名称,以及没有相同查找文件中的两个查找变量可以具有相同的名称。输入变量可以与输出变量具有相同的名称。在这种情形下,用户界面可以基于上下文或者使用诸如在输出变量的名称之前的“out”之类的前缀(prefix)来消除输入和输出的歧义(disa mbiguate)。不同查找文件中的查找变量可以具有相同的名称。在这种情形中,使用诸如查找文件自身的名称之类的前缀将消除它们之间的歧义。2.简单类型。在一些示例中,可以支持四种基本类型-字符串、数字、日期以及日期时间。这些对应于DML类型的字符串(int)、十进制(20 )、日期(“ YYYY-MM-DD ”)以及日期时间(“YYYY-MM-DD HH24:M1: SS.nnnnnn”)。例如,通过所生成的变换组件将基本类型和变换中使用的实际类型之间的转换与商业规则的编辑分开处理。3.默认值。默认值仅仅是输出变量需要的。其是以下情形中使用的值:(1)当对于该输出在规则的输出列中存在空的单元时,或者(2)当对该输出没有规则触发以计算值时。只要输出变量是可空的,则默认值可以是NULL (并且空单元被解译为NULL)。默认值是表达式,如同在规则表达式表的输出列中使用的表达式。这意味着默认值可以引用输入变量或者输出常数或者包含表达式。默认值还可以引用其他输出,只要没有弓丨入(introduce)循环(circularity)。4.技术名称(物理名称)或表达式。这是指定变量的表达式。可以对于输入和被包括的变量使用表达式来代替字段名称(在一些示例中,不允许对输出变量使用表达式)。在矢量(vector)的情形下,表达式应该完全合格(qualify)。当处理来自被包括的规则集合的提升的变量和输入变量和输出变量时,与变量相关联的技术名称正好在共享的规则集合内部使用的商业名称。当处理仅仅在内部使用的输出变量时(在一个规则中计算的、并在后来的规则中使用的中间变量),技术名称可以为空。5.可选的描述和注释变量的各种表包括用于常数以及变量的映射。常数对应于C++中的枚举(enum)。软件可以支持最初来自有效值和无效(invalid)值的常数值,并且最初来自有效和无效范围的常数范围。此外,可以创建表示独特的(distinct)值和/或范围的集合的常数。常数与变量相关联。这意味着常数的商业名称无须在整个规则集合中是唯一的。编辑器通常基于常数出现在规则中的哪一列而得知任何常数的上下文(context);然而,用户可以选择常数属于在表达式中的不同的变量。在这种情形中,具有变量名称的常数将是合格的(例如,“Airline class, bussiness”)。当计算输出变量时,仅仅使用单一值的常数(给输出字段分配范围没有意义)。常数具有以下特性,并且可以以列表形式呈现给用户(变量和常数可以混合(intermingle),类似于在另一表内部嵌入表)。1.变量名称。所有常数正好(exactly)应用于一个变量。该变量名称实际上是相关联的变量自身的一部分。

2.商业名称。商业名称是规则中使用的名称。该名称无须是值的标识符,具体地,允许内部空格(space)和标点(punctuation)。常数的商业名称仅仅必须在其所应用的变量内是唯一的。3.常数类型。值、范围、或集合之一。如之前所述的,只有当在比较中(输入)而不是分配中(输出)使用时,范围和集合才是合法(legal )。4.对于值:实际值。在当前的示例中,字符串应当位于引号(quote)中而数字不应是这样。日期和日期-时间在默认形式时应当处于引号中(例如,“YYYY-MM-DD”)。还允许使用表达式,只要该表达式返回可以被自动转换为变量类型的简单类型。当常数是被包括的规则集合的输入或输出的表的一部分时,不存在值。替代的是,该值是对应的输入或输出变量的相关联的常数的商业名称。5.对于范围:最小值和最大值。两者是常数或者表达式,如同以上证明的实际值。范围被用于规则中的比较的简短表达(shorthand)。对于范围仅仅平等的(equality)比较是允许的,并且软件将转译为“变量 >=最小以及变量 <=最大”。如果未指定最小,则跳过比较的一部分。同样的情形用于最大。可以以逗号(co_a)分隔最小值和最大者来实际存储范围。6.对于集合:逗号所分隔的值的列表。列表中的每个元素是常数或者表达式,如同以上证明的实际值。对于集合仅仅平等的比较是允许的,并且软件将转译为以“[值的矢量的列表]的变量成员”形式的表达式。7.可选的描述和注释当处理来自共享的规则集合的提升的变量时,也提升了常数。在示出共享的规则集合的输入和输出变量的表 中,还示出了与这些变量相关联的常数。这些常数的默认的映射是所提升的信息的一部分,但是用户可以覆盖(override)常数值.
软件将检测何时因为不匹配的常数而存在变量的使用中可能的冲突。具体地,如果(I)将任何变量的值复制到另一变量,以及(2)如果两个变量均具有所限定的常数,以及(3)在名称和值上的常数的集合均不等同,则生成用户需要将一个变量的值转译为另一变量的值的错误。原变量包括输入变量、查找变量、来自被包括的规则集合的输出,以及被用作输入的输出变量。目标变量包括输出变量以及向被包括的规则集合的输入。可以在规则表达式或者变量表中发生分配。命名限制可以被用作输入的所有的东西通常需要具有在整个规则集合内是唯一的名称。这包括输入变量的商业名称、参数的商业名称,以及被映射到每个被包括的规则集合的输出的商业名称。对于结合操作,在不同的输入集合中的输入变量可以具有相同的名称。例如,可以利用对应于输入集合的商业名称的前缀来使它们不产生歧义。输出变量也必须是唯一的。然而,输出变量可以具有与输入变量相同的名称。如果输出变量具有与输入变量相同的名称,并且该变量的名称在允许输入变量名称的地方(如同在规则的触发列)使用,则假定是输入变量。为了使用输出变量替代,例如,需要在输入变量名称时通过输入“out.〈variable-name〉”来使该名称合格。这是仅仅是界面符号(notation)-变量的内部表示是没 有歧义的。在具有相同名称的变量和常数之间仍然可能存在歧义。在这种情形中,当其中具有相同名称的常数和变量均有意义的上下文中时,软件将支持(favor)常数。用户可以通过使用例如语法“in.〈variable-name〉.”来使变量名称是合格的以将其覆盖。在一些示例中,假定商业名称是UTF-8从而它们可以包括国际字符。商业名称可以包括空格、句号、括号等等。然而,在这样的示例中,不允许商业名称包括在0x00与0x31之间的任何字符(控制字符)。所有的商业名称匹配是区分大小写的,尽管用户界面可以允许用户输入具有错误大写字母的商业名称并且然后例如使用自动完成机制来建议(suggest)正确的大写。变暈的顺序为避免循环逻辑(circular logic),软件强制变量和规则的严格的顺序。总体的顺序如下:1.输入变量和参数2.第一被包括的规则集合的输入映射3.第一被包括的规则集合的输出值4.第N被包括的规则集合的输入映射5.第N被包括的规则集合的输出值6.第一查找文件的默认关键值7.第一查找文件的输出字段8.第N查找文件的默认关键值9.第N查找文件的输出字段10.所有的输出变量的默认值每一项的计算使用在之前的步骤中计算的值。这意味着,例如,第一被包括的规则可以引用其映射表中的输入变量和参数。然而,第二被包括的规则可以将其输入映射到从第一被包括的规则计算的输出。类似地,在任何规则之前计算每个输出变量的默认值,从而它们是基于输入变量、参数、查找文件,或者从任何被包括的规则的输出的值。当实际计算规则的输出时,按顺序评估规则使得后来的规则可以使用从先前的规则计算的值。将数据集合链接到变暈在一些示例中,输入变量的表直接来自输入数据集合记录格式并且商业名称来自关于输入数据集合的元数据。然而,在一些示例中,存在规则集合内部具有这种映射的复制的优点。首先,在规则集合具有变量映射表的复制使得可以在产生环境的上下文之外来编辑规则。可以将规则集合和相关联的规则串行化(serialize)为沙盒(sandbox)并且作为沙盒项目的一部分来编辑。第二,具有变量映射表的复制使得用户可以解决冲突或者另外覆盖现有的元数据。例如,如果输入数据集合中的两个字段映射到相同的商业名称,则可以在输入变量的表中改变这些商业名称中的一个。当首次创建规则集合时,输入变量表是空的。只要用户一标识输入数据集合,则输入变量表就被自动从输入数据集合的元数据填充(相同的逻辑应用于输出变量和输出数据集合,但是为了简要余下的讨论将集中在输入数据集合上)。为了简要,在该讨论中使用单一的术语“输入数据集合”。存在可以被链接到输入变量的零个或多个输入数据集合,以及可以被链接到输出数据集合的零个或多个输入数据集合的分开的集合。具体地,输入变量表具有用于商业名称的一列、用于类型等的一列,以及用于技术名称的许多列,每输入数据集合一个。一旦指定了单一的输入数据集合,则可以使用类似的技术来添加第二个。然而,在第二或随后的数据集合的情况下,技术名称和商业名称之间的映射可能是不完整的,尤其由于系统可能不能够断定出第二和随后的数据集合中的每个字段映射到哪一个变量。在这样的示例中,用户可以手动地更正任何缺失的信息。当初始地从输入数据集合创建输入表时,输入数据集合中的每个字段将促使创建一个输入变量。输入变量的技术名称将是该字段的名称。将基于字段类型来分配类型。空(void)将被视作字符串, 实数将被视作数字。子记录将不会具有对应的输入变量尽管子记录内部的字段具有对应的输入变量。并集(union)将导致并集的每个分支(branch)的输入变量。如果元素是矢量,则对应的输入变量的技术名称将假定该矢量的第一元素(“in.Vect
”)。用户可以覆盖这个。例如,在归一化类型转换中,用户可以将技术名称改变为in.vect[index]。或者,如果该矢量是固定长度,则用户可以创建对应于该矢量的其他元素的附加的输入变量。在输出数据集合中可能不支持并集和矢量(对它们将不创建输出变量)。在一些不例中,归一化组件的变型可以将输出矢量而不是多个输出记录输出。在一些示例中,从元数据来计算商业名称。用于为字段确定商业名称的逻辑如下:1.如果该字段(物理元素)具有display_name,则该字段的display_name被用作商业名称。2.否则,如果该字段具有逻辑元素并且逻辑元素具有display_name,则该逻辑元素的display_name被用作商业名称。3.否则,如果该字段具有逻辑元素,则该逻辑元素的名称被用作商业名称。4.否则,从技术名称来计算商业名称。如果存在冲突(重复的名称),则将仅仅分配一个商业名称。将不向其他字段分配任何商业名称。在以下示例中,在规则集合和数据集合元数据之间不存在动态链接。如果用户改变元数据数据(例如,重新命名逻辑元素),则该改变不会被软件自动地拾取(pick up)。在一些示例中,可以使用数据之间的双向(two-way)关系来允许检测到这样的改变。如果用户向规则集合添加第二数据集合,则软件将试图使用与按照以上列出的相同的物理到逻辑映射规则来填充每个商业名称的字段。如果不能映射一变量,则该变量的技术项(term)将为添加的数据集合留下空白并且用户将不得不手动第填写字段名称或者表达式。将在用户界面的下拉中列出可用的字段。同时,根据数据集合元数据建输入变量表,还可以根据数据集合元数据将常数添加到输入变量表。软件将为所有有效的和无效的值以及所有有效的和无效的范围创建常数:所述所有有效的和无效的值以及所有有效的和无效的范围与每个逻辑或者物理元素相关联的验证规格(Validation Spec)相关联。用于为常数确定商业名称的逻辑如下:1.如果有效的值(有效的范围,等等)具有display_name,则该display_name被用作商业名称。2.否则,如果有效的值(有效的范围,等等)具有描述,则该描述被用作商业名称。
·
3.否则,常数将被包括在变量表中,而没有商业名称。以数据集合开始来创建变量不是必须的。第二种方式是创建输入变量的列表以标识基础(underlying)系统中的逻辑实体(entity)。如果选择逻辑实体,贝U软件将利用逻辑实体中的每个逻辑元素的一个变量来创建变量的表。该变量的商业名称将是该逻辑元素的display_name0如果逻辑元素具有验证规范,则还将使用先前的文档规则来创建常数。最后,可以手动添加输入变量和输出变量,或者通过将它们加入到变量表或者通过在编辑规则的同时创建它们。例如,当用户将列加入到规则时,他选择应该为该列使用哪一个输入变量。但是他也可以选择“新的…”并且在线(on the fly)创建输入变量。然后软件将提示用户数据类型和可选的注释。没有技术名称需要被填写直到稍后。软件需要按照顺序的变量的列表以允许编辑规则。然而,不是必须完成商业名称和技术名称之间的映射直到稍后。当用户准备针对外部测试文件来测试整个规则集合或者从规则集合实际创建变换时,才需要该映射。被包括的规则集合在一些示例中,可以共享规则集合。具体地,指定在另一规则集合内部包括被包括的规则集合使得该规则集合的逻辑成为所包括的规则集合生成的变换的一部分。尽管被包括的规则集合通常具体被指定为共享,但也可以单独使用被包括的规则集合来创建变换。例如,用户可以创建用于计算筛选类型的变换的布尔输出的规则集合。但是同时,可以将该规则集合包括在另一变换中并且可以使用布尔输出(在所包括的规则集合中可用的、共享的规则集合的输出变量)来计算更复杂的输出。被包括的规则集合类似于规则集合的其他类型。它们具有输入变量和输出变量。并且它们自身可以包括其他被包括的规则集合。但是对于被包括的规则集合中的输入和输出变量的处理与变换类型的规则集合的处理是不同的。在变换类型的规则集合中,将输入和输出变量映射到技术名称使得可以生成变换。但是在被包括的规则集合中,不需要将输入和输出变量映射到技术名称的需要(如果规则集合是共享的且用于生成变换,则为了生成变换的布置(employment)而将输入和输出变量映射到技术名称)。当用户将被包括的规则集合包括到另一规则集合中时,所包括的规则集合需要具有变量映射表来映射被包括的规则集合的输入和输出。在所包括的规则集合的上下文中,只有在共享的规则集合中输入变量和输出变量才是可见的。在共享的规则集合中包括的任何规则集合的任何变量没有暴露(expose)给所包括的规则集合。在所包括的规则集合的上下文中,需要将共享规则集合的输入变量映射到所包括的规则集合的变量,或者使用这些变量的表达式。将在变量映射表中列出共享的规则集合的商业名称,但是这些名称将不可用于所包括的规则集合中的规则。替代地是,所包括的规则集合仅仅需要将共享的规则集合的每个输入变量(通过商业名称)匹配到所包括的规则集合中的表达式。在输入变量、参数以及查找之前考虑要评估的被包括的规则集合,从而可以使用被包括规则集合的输出作为查找的关键字(key)。在一些示例中,评估的顺序是更灵活并且可以基于依赖性分析来自动地确定查找相对于被包括的规则集合的评估的顺序。因为在计算任何输出变量之前评估被包括的规则集合,因此在所包括的规则集合中没有输出变量可以被映射到被包括的规则集合的输入。如果不能利用简单的输入变量来进行向被包括的规则集合输入的映射,则可以替代地使用表达式。 只要在被包括的规则集合中的输入变量的可空,关于被包括的规则集合输入变量的映射可以是NULL,。还可以将映射留作空白。如果将映射留作空白,则将在变换生成的时间报告错误,如果并且仅仅如果在计算所包括的规则集合的输出中需要输入变量。在一些示例中,假定一切都是可空的,这简化了用户界面。在所包括的规则集合的上下文中,还需要将共享的规则集合的输出变量映射到所包括的规则集合中的商业名称。该映射表是上述的映射表的反转。当映射共享的规则集合的输入变量时,该表将共享的规则集合的输入变量的商业名称映射到所包括的规则集合中的现有变量。但是当映射共享规则集合的输出变量时,所包括的规则集合具有指定共享的规则集合的输出的商业名称的表-将所包括的规则集合中的名称映射到共享的规则集合中的对应的名称。需要输出变量映射来解决潜在的命名冲突。默认的映射是在所包括的规则集合和共享的规则集合两者中简单地使用相同的商业名称。但是共享的规则集合中的输出变量的名称可能与所包括的规则集合中已经定义的变量的商业名称相冲突,因此可以改变所包括的规则集合中所映射的名称。不是来自共享的规则集合中每个输出都需要被映射。如果输出被留下而未被映射,则不能在所包括的规则集合中使用该输出,并且将忽略来自共享的规则集合的相应的逻辑。另一方面,应当映射来自共享的规则集合的所有的输入,虽然如果规则集合的设计者确信将不需要它们,则可以将它们映射到不感兴趣的变量。在一些示例中,系统自身可以确定那些输入真正需要被映射。在一些示例中,通过商业名称而不是通过引用(reference)来完成映射表。当在另一规则集合中包括共享的规则集合时,所包括的规则集合得到来自共享的规则集合的输入和输出的复制。将这些名称与映射信息一起存储在所包括的规则集合中。可以改变得到的共享规则集合,促使添加、删除或者重命名一些输入或输出。在从系统载入规则集合时,可以由所包括的规则集合来处理所包括的规则集合与被包括规则集合之间的引用完整性问题。从所包括的规则集合中删除从共享的规则集合中消失的输入变量。将被添加到共享规则集合中的输入变量添加到所包括的规则集合的映射表,但是保持为未映射。同样,将被添加到共享规则集合中的输出变量添加到所包括的规则集合的映射表,但是保持为未映射。如果从共享的规则集合删除输出变量,并且其不在包括规则集合中使用,则其只是从映射表删除,但是如果在所包括的规则集合中使用,则用户得到该变量不再可用的错误。所包括的规则集合实际上存留(persist)来自共享的规则集合的冗余信息。具体地,在输入和输出变量映射表中,所包括的规则集合仅仅需要维持共享规则集合中的商业名称的列表连同所包括的规则集合中对应的命名。为了效率,所包括的规则集合还存留类型、默认值、描述和注释、所有复制的共享规则集合的输出。当编辑所包括的规则集合时,这些值是可读的/只读的,但是为了效率而被包括以用于生成报告和其他分析。共享的规则集合映射表在被包括得的规则集合中还具有一个附加的条目(entry),其是附加的注释。这允许用户向被映射的值添加另一注释。共享的规则集合的常数在用于被包括规则集合的映射表中包括的是用于共享规则集合的输入和输出变量的常数。如同变量自身,由共享的规则集合使用的常数可能不得不被映射。对于输入变量,共享的规则集合可以内部比较字段与在其输入表中定义的常数。当在另一规则集合中包括共享的规则集合时,就用于其输入变量的常数复制到所包括的规则集合。然后用户可以覆盖所包括的规则集合的上下文中的值。通常,当用户定义共享规则集合输入变量与所包括的规则集合中的变量之间的映射时,两个变量之间的常数将匹配(match up)。如果不是这种情形,则用户将需要为由共享规则集合定义的任何常数值提供技术值。

杳找f件规则集合可选地具有一个或多个查找文件。规则集合中的每个查找文件包括以下
信息:1.查找文件的商业名称。2.可选的描述和注释。3.组成关键字的字段的商业名称的列表。当将查找文件添加到表达式时使用这些名称,从而用户见到如这样的:lookup(My Lookup File,〈customer name key〉,〈accounttype key (查找(我的查找文件,< 顾客姓名关键字 >,< 账户类型关键字>)。4.每个关键字的默认表达式的列表。5.查找文件的技术名称。在一些示例中,可以在布置中被覆盖。6.一个或多个查找数据集合。将每个查找文件松散地与系统内的数据集合捆绑(tie),就像将规则集合捆绑到输入数据集合一样。默认地,存在与规则集合中的每个查找文件相关联的一个查找数据集合,但是在可替换的布置中可以存在多个查找数据集合以供使用。7.输入变量和常数的表。这就像规则集合的输入变量和常数的表,除了对于每个查找文件存在一个表。如同输入变量,查找文件的输入变量和常数的表可以具有多个技术名称,其对应于所关联的查找数据集合的每一个。就像输入变量一样处理查找文件,除了可能存在多于一个查找文件。在一页上编辑每个查找文件,其具有在商业名称和技术名称之间的映射表并且可以与多个数据集合相关联。它们还具有与每个字段相关联的常数。就像从输入数据集合中载入输入变量的元数据,可以通过读取查找数据集合的元数据来初始化查找文件的映射。如果用户使用查找字段变量,并且在该查找中未发现关键字,则假定该字段的值为空。如果字段为空,除非规则情形特别触发,否则将规则情形评估为假(false)并且跳过该规则情形。在这种情 形中,不生成错误。如果用户使用查找文件变量(查找文件自身而不是字段),则假定函数lookup_match,使得查找文件变量评估为真(true)或假。两种情形应用于输入列或者输出列的规则表达式。如果用户使用查找字段变量作为输出变量默认,则发现查找的故障转译为NULL。参数规则集合可以引用参数。在一些情形中,每个规则集合具有可选的参数表,该参数表如同变量表将参数的商业名称映射到其技术名称。参数表中的每个条目具有以下属性:1.商业名称。这是当参数出现在规则本体(body)中时该参数的名称。通常,也在参数可被使用在输入变量被使用任何地方。2.技术名称。这是开发环境中参数的名称3.参数的类型(字符串、小数(decimal)、日期或日期时间)。在生成的变换中,可以按照需要将参数转换为其他类型。4.可选的描述和注释。参数如同变量,除了它们的值在整个输入文件中是恒定的,并且当处理开始时,它们的值由外部指定。测丨试规则生成或更新变换的一部分是测试其对应的规则。还对规则进行验证,即,检查语法(syntax)和语义(semantic)的一致性。与验证相反,由用户来确定涉及规则的执行和正确性的测试,例如通过用户提供预期的输出或者手动地将输出与预期的值比较来进行。软件在两个层次上支持测试。如之前所述的,每个规则可以具有相关联的测试数据集合,该测试数据集合是以值和预期结果的嵌入表的形式。这被称为单元测试。当编辑规则时,可以对测试数据的每一行重新评估规则的输出。加亮实际结果和预期结果之间的任何不匹配或者产生有效结果的故障以供解决。 在一些示例中,使用标准的机制外部输入测试文件对于服务器处理是可访问的。使用外部文件的测试被称为文件测试。测试文件具有与规则集合的输入数据集合匹配的记录格式。在一些示例中,可以提供可替换的记录格式。可选地,用户可以标识包含预期结果的数据集合。软件运行对于测试数据集合的规则集合并且显示产生什么输出、以及为什么产生。如果包括了预期结果,则软件将实际结果针对预期结果进行比较并且列出不同的任何记录。在一些示例中,可以扩展界面以允许用户增加性地再训练(retrain)各个值。在单元测试和文件测试之间的一些不同包括:1.对于查找文件:在单元测试模式中,对于每个测试、将每个查找变量的值定义为测试的一部分。没有指定关键字;当测试运行时,对于每个测试情形、每个查找变量假定相同的值。测试数据集合包含多个测试情形,并且每个测试情形可以为每个查找变量指定不同的值。在文件测试模式中,使用真正的查找文件。这意味着不同的关键字可以返回不同值,但这也意味着对于具体的关键字,在测试中不可以改变任何给定的查找变量所使用的值。2.对于被包括的规则集合:在单元测试模式中,不执行被包括的规则集合并且其甚至不必是完整的。替代地是,对来自每个被包括的规则集合的每个输出在测试数据集合中指定值。在文件测试模式中,以在产生时被包括的规则集合将被执行的方式来执行被包括的规则集合。这暗示被包括的规则集合需要的任何查找文件或参数还不得不在测试时间指定。3.对于参数:在单元测试模式中,对每个测试情形的每个参数可以设置不同的值。在文件测试模式中,对于整个测试每个测试的值是恒定的。4.对于当前日期:当测试时,倘若规则引用当前日期或时间,则用户指定应当被假定为当前日期和时间的值。在单元测试模式中,对于每个测试情形日期和时间的可以不同。在文件测试模式中,对于整个测试设置单一的日期和时间(在运行测试时,该值可以不同于机器的日期和时间的值)。5.对于记录 格式和映射:不需要对单元测试指定映射;基于变量的商业名称整个地进行测试。对于文件测试,将所有的变量映射到技术名称并且指定输入、输出以及查找的记录格式。在图4A的输出屏幕的示例中,示出了结果表410,其中在分开的行412i中显示每个测试情形的输出,列413a_d示出测试情形以及为每个测试情形计算的输出。当选择一行412a时(由虚线在图4A中示出),在输入表414中示出来自对应的测试情形的输入值414a_414g。在输出表416中不出该测试情形的输出416a_416c。在表416中不出的输出416i可以是来自测试情形的预期的输出、计算的实际的输出、或者这两者。可以使用各种界面提示(cue)来通知用户关于测试的状态。例如,由于上一次测试了规则集合,图标419指示测试情形2和测试情形4的行412b和412d中的输出已改变。如果没有“默认”规则来捕捉与任何其他规则不匹配的输入值的组合,则具有这种输入的测试情形产生空输出418。如果利用处理错误(诸如被零除)拒绝输入记录,则可以以相同的方式指示错误。如果由测试情形触发多于一个规则情形,则可以指示所触发的规则情形的数目(422)。通过与所显示的输出之一进行交互,例如,通过点击它,可以将用户带到详述如何确定该输出的屏幕,如图4B中所示。在图4B的输出屏幕示例中,表430显示来自图4A的单一测试情形412并且利用暗的边界(border)指示了在任何规则情形434i中为真的每个输入准则436i。例如,在第六规则情形434f中,加亮了包含第三输入和第四输入436c和436d的值的单元,这是因为在测试情形412中的这些输入的值412f和412g与规则情形中的值匹配(舱位不是头等舱或商务舱,行〈=40)。实际上,可以使用各种图形技术中的任一种(诸如加亮、颜色、字体,或边界)来区分真单元和假单元。其中所有值与测试情形匹配的第一规则情形,规则情形434c由虚线边界指示,其作为被图4A中的线412b中指示的触发规则和产生输出的规则情形。不仅显示所触发的规则情形434c而且显示其他规则情形允许用户迅速地确定将需要应用怎样的规则情形以及怎样的改变来实现期望的输出。在一些例子中,可以指示可能已经被触发的多个规则情形(例如,如果更高的还未被触发)。列438可以示出由每个规则情形触发的输出(如果其将要被触发)。例如调试(debug)规则情形中这些特征可以辅助。在一些例子中,可以将一个规则集合的输出输入到另一规则集合。如图4C可以图形示出的在这种情形中怎样由规则集合评估给定的测试情形。将来自图4A和4B的测试情形的旅行者置于登机组2中的商业规则被示为盒子(box)442,该盒子442从测试情形表412接收输入并且向输出表416提供输出。在该示例中,第二商业规则指示应当奖励其每年的里程在增加的旅行者。该规则除了从测试情形接收输入之外,还从第一规则中接收确定里程在增加的输入,并且将该规则示为盒子444。因为该乘客在经济舱(coach),因此该规则给乘客免费的饮料(如果该乘客在头等舱,她将已经接收了免费饮料,并且可要求不同的回馈)。在一些示例中,点击显示的规则将带领用户到关于如何触发该规则的显示,如对于第一规则442在图4B中所示。使用图5中所示的处理来测试规则集合并且对其进行验证。一个或多个规则集合602以及对应的测试数据604是该处理的输入。软件基于该规则集合生成变换(606)并且使用其来计算测试数据中的每个记录的输出值。在图形计算中,使用有关组件的“log”端口(port)来测试输出。对于测试所生成的变换可以稍微不同于将为执行生成的变换。在测试时间,将附加的输出添加到输出记录。该输出是包含规则集合的标识的数组(array),所述规则集合实际生成了输出以及在这些规则集合内的哪个规则情形对输出负责。对每个测试情形可以生成多个输出,即,来自不同规则集合的不同的输出。如上所讨论的,使用该数组来生成图4A和4B所示的输出表。在一些示例中,测试输出比单一的数组更复杂。该输出包括以下值:给定记录的每个输入的值、每个参数的值、来自被包括的规则集合的每个输出的值、以及从每个查找文件读取的值(包括指示哪一个关键字用于该查找)。以第一测试情形开始(608),将测试情形的输入输入(610)到变换,并且将输出与哪一个规则生成该输出的指示一起写入(612)到输出数组。对每一行重复该处理(614,616)直到已评估了最后一行(614)。然后可以使用输出数组来生成(617)如上所讨论的结果表410和420。按照图5中剩余步骤所示的,可以评估输出数组来确定该规则集合是否有效。可以在测试数据中包括输出值,可以将根据一次测试生成的输出值与之前的测试中输出与根据测试结果与测试数据604的预期的输出或者之前的测试结果617进行比较(620)。如果任何输出都不匹配,则登记(log)该不匹配(622)。对每一行重复此处理(624,626)。在一些示例中,将评估步骤集成到输出生成步骤,并且在输出被生成时,将每个生成的输出与对应的预期的输出进行比较。登记在处理测试数据结果中的任何不匹配或其他错误。如上注意的,可以将一个规则集合的输出输入到另一规则集合,在这种情形中,将被包括的规则集合评估为所包括的规则集合的一部分。用户可以限制由输出字段测试的规则。在一些示例中,用户可以选择在测试期间禁止(disable)规则。在一些示例中,用户无须等待要被处理的全部测试文件;只要将前几个记录工作以输出(work their way to the output),就可得到测试结果。除了测试数据本身,可以将以下信息中的任何信息用于文件测试并且将其包括作为规则集合的一部分。 1.输入数据集合的物理位置。这被存储在每个输入数据集合的输入变量表的规则集合中。对于结合类型的数据集合,需要所有的物理位置。无论何时需要物理位置,可以使用数据库中的表名称。2.输入数据集合的记录格式。默认地,这是从输入数据集合的数据集合定义中取得的。在输入变量中存在一位置来利用进入沙盒的所检验的不同记录格式对此进行覆盖。对于结合类型的变换,需要所有的记录格式。3.要使用的哪一个布置。4.所有查找文件的物理位置。这被存储在查找文件表中。5.每个查找文件的记录格式。从与每个查找文件相关联的数据集合定义取得,或者从覆盖记录格式文件取得。6.每个参数的值。这将在测试参数对话框(dialog)中设置。7.输出文件的物理位置。仅仅当进行递归(regression)(比较)测试时需要该物理位置。其被存储在输出变量表中。8.输出文件的记录格式。再一次,仅仅当进行回归测试时需要,并且根据输出数据定义取得或者根据可选的覆盖记录格式文件取得。9.项目沙盒的位置。测试必须在主机上的沙盒之外进行。沙盒应当是包含规则集合的项目的经检验的复制。所有记录格式文件将从沙盒取得。10.用于日期和时间的值,当规则引用“现在”、“今天”,或者类似值时。存在三种可能的变换的类型:一种是没有登记的、一种是登记了所有的输入、输出、执行的规则等等,以及一种是附加地包括了关于每个规则中的哪些单元是假或空的细节。测试可以使用后两种 类型的登记的中的任一种。如果变换没有登记单元状态,则其简单地不在用户界面中示出。登记输入、输出等等放慢执行但是仅仅是很小的量。登记单元状态使执行放慢很多,也许是由于数量级。当不测试时,用户仍然可以输出登记输入、输出等等的变换,并且使用产生中的变换。所增强的变换生成相同的输出,还生成可以被分析、以确定执行了哪些规则的一系列登记消息。如果用户保存所生成的登记,则可以通过使用登记中的信息来计算图4A、4B以及4C中的信息,即使未使用测试输入,也可以在应答了产生中的规则集合的执行的事实之后,使用商业规则环境。我们称该执行为重放,并且其可用于审核。重叠分析在一些示例中,如上所提到的,当用户对于规则集合运行测试数据集合时,可以跟踪(track)所触发的每个规则,S卩,如果更高优先级的规则情形还未满足其所有的输入条件时,满足其所有输入条件并且将产生输出的规则情形。在处理了测试数据之后,软件可以后处理(post-process)测试输出数据并且生成未被任何规则情形所触发的每个规则或规则情形的列表。可以将该信息覆盖(overlaid)在编辑器的规则的显示之上以迅速向用户示出哪些规则被触发或未被触发。从该信息,用户可以查看被其他规则遮蔽(obscure)的可能的规则,即,重叠的规则。还可以为每个规则情形示出计数(count)。在刚刚知道是否触发规则情形时计数可以是有用的,特别对于调整(tune)值以实现期望的输出的发布以及对于标识用于调节性能的最可能的规则情形是有用的。夺换牛成通过将每个规则集合转换为变换来在应用(图形)中评估商业规则。然后将该变换附属(attach)到图形中的组件上。这样的组件可以是包含以特定的方式被链接的用于执行变换的一组标准组件的子图形。然后可以与附加组件一起使用这样的子图形,例如使用关键字来结合和积累。可以以多种方式从商业规则中生成变换代码。在其中未将变换的内部指定为用户编辑的示例中,生成处理可以导致难于理解(comprehend)的变换,但是该变换实施规则比逐一地应用规则更有效率。在一些示例中,如图6所示,可以使用简单的if-then-else(如果-则)链500来捕捉规则集合中的逻辑(作为参考而重复图2A的规则集合表200)。在链
500中示出,对每个规则情形210a存在一个“if…then…(如果......则......)”子句502i。
可以使用as-1s这样的链,或者依赖于合适的计算资源的可用性以及该系统的用户的优先权还可以优化它们。在一些情形中,可以使用专用的计算资源或者其他技术来改进所生成的变换的性能。可以将怎样生成变换的一些细节存储在布置中。在多个图形中可以使用的规则集合可以对于其不同的可能的用户具有多个布置。规则集合还可以包含规则的超集(super set),在每个布置中只是需要它们中的一些,该布置标识当生成变换时使用哪些规则。在一些示例中,如果规则包括作为小数的列,并且存在与该列匹配的大量的不同的值,则我们可以通过在所指示的列上写入“switch”语句分支来改进变换的性能。例如,考虑这个规则:
权利要求
1.一种用于管理对数据存储系统中的数据应用的一个或多个规则的方法,所述方法包括: 在输入设备或端口接收来自所述数据存储系统的数据;以及 用至少一个处理器,根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分,所述处理包括: 在编辑器界面显示所述规则规范的多个部分; 对所接收的数据的一个或多个记录应用所述规则,以获得结果信息;以及在所述编辑器界面中与所述规则规范的特定显示部分相关联地显示所述结果信息的至少一部分。
2.如权利要求1所述的方法,其中,应用所述规则包括:对所接收的数据中的输入值应用所述规则以生成输出值。
3.如权利要求2所述的方法,其中,显示所述结果信息的至少一部分包括:显示所生成的输出值与其他输出值的比较结果。
4.如权利要求3所述的方法,其中,所述其他输出值包括所接收的数据中与所述输入值对应的参考输出值。
5.如权利要求3所述的方法,其中,所述其他输出值包括对于所述规则规范的之前版本生成的输出值。
6.如权利要求1所述的方法,所述处理还包括:从用户接收定义所述规则规范的至少一部分的信息。
7.如权利要求6所述的方法,其中,显示所述结果信息的至少一部分包括:当所接收的信息正输入到所述编辑器界面中时,显示基于所述结果信息的验证信息。
8.如权利要求1所述的方法,其中,所述规则规范的一部分包括一个或多个规则情形,并且至少一个规则情形定义对于一个或多个潜在输入的每一个的条件。
9.如权利要求8所述的方法,其中,至少一个规则情形定义与评估所定义的条件的结果相关联的输出。
10.如权利要求8所述的方法,其中,显示所述结果信息的至少一部分包括:显示触发规则情形的指示,对于所述触发规则情形,所接收的数据中作为潜在输入的输入值满足所述规则情形的定义的条件。
11.如权利要求10所述的方法,其中,显示所述结果信息的至少一部分包括:显示对所接收的数据中的输入值的不同集合触发的触发规则情形的次数的计数。
12.如权利要求10所述的方法,其中,显示所述结果信息的至少一部分包括:显示关于如何触发触发规则情形的信息。
13.如权利要求12所述的方法,还包括:响应于与所显示的结果信息的至少一部分的用户交互,显示所述关于如何触发触发规则情形的信息。
14.如权利要求12所述的方法,其中,所述关于如何触发触发规则情形的信息包括所接收的数据规则中用于评估规则情形的定义的条件的输入值。
15.如权利要求8所述的方法,其中,显示所述结果信息的至少一部分包括:显示未触发规则情形的指示,对于所述未触发规则情形,所接收的数据中作为潜在输入的输入值不满足所述规则情形的定义的条件。
16.如权利要求15所述的方法,其中,显示所述结果信息的至少一部分包括:显示对所接收的数据中的输入值的不同集合未触发未触发规则情形的次数的计数。
17.如权利要求1所述的方法,其中,与所述规则规范的特定显示部分相关联地显示所述结果信息的至少一部分包括:与所述规则规范的所述特定显示部分的显示重叠地显示所述结果信息的至少一部分。
18.如权利要求1所述的方法,其中,与所述规则规范的特定显示部分相关联地显示所述结果信息的至少一部分包括:以特定颜色显示所述规则规范的所述特定显示部分。
19.如权利要求1所述的方法,其中,所述结果信息包括从对一个记录应用所述规则而得到的计算结果。
20.如权利要求1所述的方法,其中,所述结果信息基于从对多个记录应用所述规则而得到的多个计算结果。
21.如权利要求1所述的方法,其中,所述编辑器界面使得能够编辑所述规则规范,并能够显示重新应用通过所编辑的规则规范的至少一部分指定的规则的结果。
22.如权利要求1所述的方法,其中,所述处理包括: 在所述编辑器界面中接收重新定义所述规则规范的至少一部分的信息; 对所接收的数据的一个或多个记录重新应用所述规则以获得更新结果信息;以及 在所述编辑器界面中与所述规则规范的特定显示部分关联地显示所述更新结果信息。
23.如权利要求1所述的方法,其中,对所接收的数据的一个或多个记录应用所述规则包括:对所接收的数据的多个记录应用由所述规则规范的至少一部分指定的所述规则。
24.如权利要求23 所述的方法,其中,显示所述结果信息的至少一部分包括:显示对所接收的数据的记录实现特定结果的次数的计数。
25.一种在计算机可读介质上存储的软件,用于管理对数据存储系统中的数据应用的一个或多个规则,所述软件包括用于使得计算机系统执行以下步骤的指令: 在输入设备或端口接收来自所述数据存储系统的数据;以及 用至少一个处理器,根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分,所述处理包括: 在编辑器界面显示所述规则规范的多个部分; 对所接收的数据的一个或多个记录应用所述规则,以获得结果信息;以及在所述编辑器界面中与所述规则规范的特定显示部分相关联地显示所述结果信息的至少一部分。
26.一种用于管理对数据存储系统中的数据应用的一个或多个规则的计算机系统,所述计算机系统包括: 输入设备或端口,配置为接收来自所述数据存储系统的数据;以及至少一个处理器,配置为根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分,所述处理包括: 在编辑器界面显示所述规则规范的多个部分; 对所接收的数据的一个或多个记录应用所述规则,以获得结果信息;以及在所述编辑器界面中与所述规则规范的特定显示部分相关联地显示所述结果信息的至少一部分。
27.一种用于管理对数据存储系统中的数据应用的一个或多个规则的计算机系统,所述计算机系统包括: 用于接收来自所述数据存储系统的数据的部件;以及 用于根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分的部件,所述处理包括: 在编辑器界面显示所述规则规范的多个部分; 对所接收的数据的一个或多个记录应用所述规则,以获得结果信息;以及 在所述编辑器界面中与所述规则规范的特定显示部分相关联地显示所述结果信息的至少一部分。
28.一种用于管理对数据存储系统中的数据应用的一个或多个规则的方法,所述方法包括: 在输入设备或端口接收来自所述数据存储系统的数据,所述数据包括输入值和与所述输入值对应的参考输出值;以及 用至少一个处理器,根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分,所述处理包括: 在编辑器界面显示定义所述规则规范的至少一部分的信息; 对所接收的数据中的所述输入值应用由所述规则规范的至少一部分指定的所述规则,以生成输出值;以及 提供所生成的输出 值与所接收的数据中的所述参考输出值的比较的指示。
29.如权利要求28所述的方法,其中,提供所述指示包括:在所述编辑器界面中显示所述比较的结果。
30.如权利要求29所述的方法,其中,显示所述结果包括:以特定颜色显示所述规则规范的一部分。
31.如权利要求28所述的方法,其中,所述规则规范的一部分包括一个或多个规则情形,并且至少一个规则情形定义对于一个或多个潜在输入的每一个的条件。
32.如权利要求31所述的方法,其中,至少一个规则情形定义与评估定义的条件的结果相关联的输出。
33.如权利要求28所述的方法,其中,所述规则规范与来自所述数据存储系统的所述数据相关联地存储。
34.如权利要求28所述的方法,还包括:接收标识来自所述数据存储系统的所述数据的输入。
35.如权利要求28所述的方法,其中,所述参考输出值包括之前基于所述输入值生成的值。
36.如权利要求35所述的方法,其中,所述之前生成的值包括通过所述规则规范的至少一部分指定的所述规则的之前测试中生成的值。
37.一种在计算机可读介质上存储的软件,用于管理对数据存储系统中的数据应用的一个或多个规则,所述软件包括用于使得计算机系统执行以下步骤的指令: 在输入设备或端口接收来自所述数据存储系统的数据,所述数据包括输入值和与所述输入值对应的参考输出值;以及用至少一个处理器,根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分,所述处理包括: 在编辑器界面显示定义所述规则规范的至少一部分的信息; 对所接收的数据中的所述输入值应用由所述规则规范的至少一部分指定的所述规则,以生成输出值;以及 提供所生成的输出值与所接收的数据中的所述参考输出值的比较的指示。
38.一种用于管理对数据存储系统中的数据应用的一个或多个规则的计算机系统,所述计算机系统包括: 输入设备或端口,配置为接收来自所述数据存储系统的数据,所述数据包括输入值和与所述输入值对应的参考输出值;以及 至少一个处理器,配置为根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分,所述处理包括: 在编辑器界面显示定义所述规则规范的至少一部分的信息; 对所接收的数据中的所述输入值应用由所述规则规范的至少一部分指定的所述规则,以生成输出值;以及 提供所生成的输出值与所接收的数据中的所述参考输出值的比较的指示。
39.一种用于管理对数据存储系统中的数据应用的一个或多个规则的计算机系统,所述计算机系统包括: 用于接收来自所述数据存储系统的数据的部件,所述数据包括输入值和与所述输入值对应的参考输出值;以及 用于根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分的部件,所述处理包括: 在编辑器界面显示定义所述规则规范的至少一部分的信息; 对所接收的数据中的所述输入值应用由所述规则规范的至少一部分指定的所述规则,以生成输出值;以及 提供所生成的输出值与所接收的数据中的所述参考输出值的比较的指示。
全文摘要
一种用于管理对数据存储系统中的数据应用的一个或多个规则的方法,所述方法包括在输入设备或端口接收来自所述数据存储系统的数据;以及用至少一个处理器,根据由规则规范的至少一部分指定的规则,处理所接收的数据的至少一部分,所述处理包括在编辑器界面显示所述规则规范的多个部分;对所接收的数据的一个或多个记录应用所述规则,以获得结果信息;以及在所述编辑器界面中与所述规则规范的特定显示部分相关联地显示所述结果信息的至少一部分。
文档编号G06F9/44GK103218229SQ201310126429
公开日2013年7月24日 申请日期2008年3月27日 优先权日2007年4月10日
发明者乔尔.古尔德, 约瑟夫.S.沃利三世, 蒂莫西.珀金斯 申请人:起元技术有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1