CN101702942A - 编辑和汇编商业规则 - Google Patents

编辑和汇编商业规则 Download PDF

Info

Publication number
CN101702942A
CN101702942A CN200880011618A CN200880011618A CN101702942A CN 101702942 A CN101702942 A CN 101702942A CN 200880011618 A CN200880011618 A CN 200880011618A CN 200880011618 A CN200880011618 A CN 200880011618A CN 101702942 A CN101702942 A CN 101702942A
Authority
CN
China
Prior art keywords
output
input
situation
row
value
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.)
Pending
Application number
CN200880011618A
Other languages
English (en)
Inventor
乔尔·古尔德
约瑟夫·S·沃利三世
蒂莫西·珀金斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ab Initio Technology LLC
Ab Initio Software LLC
Original Assignee
Ab Initio Technology LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ab Initio Technology LLC filed Critical Ab Initio Technology LLC
Priority to CN201310126429.0A priority Critical patent/CN103218229B/zh
Publication of CN101702942A publication Critical patent/CN101702942A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

通过以下步骤来更新基于图形的计算(130)中的组件(136、138、140),所述基于图形的计算具有由表示数据流的链接元素而连接的数据处理组件,所述步骤包括:接收规则规范(152),生成用于基于规则规范而变换数据的变换(156),将变换与基于图形的计算中的组件相关联,并且响应于确定已接收到新的规则规范或者已编辑现有的规则规范、根据新的或者编辑的规则规范来更新与基于图形的计算中的组件相关联的变换。

Description

编辑和汇编商业规则
技术领域
本发明涉及编辑和汇编(compile)商业规则。
背景技术
通常将复杂的计算表示为流过有向图(directed graph)的数据,计算的组件与该图的顶点(vertices)以及在与该图的链接(弧(arc)、边(edge))对应的组件之间流动的数据相关联。在美国专利5,966,072ExecutingComputations ExpressedAs Graphs(执行被表示为图的计算)中描述了实施这种基于图的计算的系统。在某些情形下,以被称为“商业规则”的人们可读的形式来描述与顶点相关联的计算。
发明内容
通常,在一方面中,通过以下步骤来更新基于图形的计算中的组件,所述基于图形的计算具有由表示数据流的链接元素而连接的数据处理组件,所述步骤包括:接收规则规范,基于规则规范生成用于变换数据的变换,将变换与基于图形的计算中的组件相关联,并且响应于确定已接收到新的规则规范或者已编辑现有的规则规范、根据新的或者编辑的规则规范来更新与基于图形的计算中的组件相关联的变换。
实施方式可以包括以下特征中的一个或多个。
接收规则规范,包括从用户接收规则规范的表的行,该行定义规则情形并且包含一个或多个潜在输入的集合中的每一个的关系。接收规则规范还包括从用户接收该表的第二行,该第二行定义第二规则情形并且包含一个或多个潜在输入的第二集合中的每一个的第二关系。该关系包括以下中的一个或多个:具有等于阈值的值、具有阈值之上的值、具有阈值之下的值、具有属于值的集合的值、具有与样式(pattern)匹配的值、具有与另一输入的值的关系、具有与另一规则规范的输出的值的关系,或者具有与存储器中值的关系。行还包含输出,输出包括以下中的一个或多个或者其组合:输入的值、预定的值,或者由一个或多个输入的值计算而来的值。接收包括测试列的集合的表,每个测试列包含一个或多个潜在输入的值,并且对每个测试列,标识规则规范的行,该行将生成测试列的给定的输入值的输出、并且向用户输出每个测试列所标识的行的标识。生成包括每个测试列的结果行的表,每个结果行指示给定的测试列的输入值将生成的输出。生成表包括,在每个结果行中,指示是否从被指示为规则规范的之前版本的输出改变为将生成的输出。响应于用户与结果行的交互,指示规则规范中的哪一个规则情形将生成结果行中的输出。
生成包括对应于规则规范的每一行的评估行的表,在该表的每个评估行中,对每个潜在的输入,指示对应潜在输入的第一测试行中的值是否满足潜在输入的关系,并且在对应于给定的第一测试行的输入值将生成输出的规则规范的行的评估行中,指示将生成该输出。评估行具有对应于规则规范的行的顺序的顺序,并且其中指示输出的评估行对应于满足了潜在输入的每一个关系的规则规范的第一行。指示与满足了潜在输入的每一个关系的规则规范的行对应的、在每一个评估行中将生成的输出。生成包括对应于规则规范的每一行的评估行的表,在每个评估行中,指示多少测试列具有满足规则规范的对应行中的关系的输入。每个测试列还包含预期的输出值,每个结果行指示对给定的对应的测试列的输入值将生成的输出是否与测试列中预期的输出匹配。响应于为每一个测试列确定第二规则规范的至少一行将生成给定的测试列的输入值的输出,确定包括第一规则规范和第二规则规范的规则集合有效。
生成包括对每个测试列的结果行的表,每个结果行指示对给定的测试列的输入值、由规则规范之一中的行生成的每个输出。对于对给定的第一测试列的输入值生成的输出,生成将导致输出的生成的、规则规范的输入和输出之间的相互关系的图形显示。接收测试列的表包括:从用户接收输入值的集合、将输入值的集合与规则规范的潜在输入值进行匹配,并且将输入值的集合存储到表的列中。对输入值的集合的接收响应于显示潜在输入值的标识。响应于确定规则规范的集合中的每个规则规范将生成至少一个输出,确定规则规范的集合是有效的。响应于确定规则规范不是有效的,向规则规范的源通知该规则规范不是有效的。
更新变换包括:确认规则规范是有效的,基于新的或者编辑的规则规范生成新的变换,将第一变换与组件不关联,并且将新的变换与组件相关联。更新变换包括:确认规则规范是有效的,等待要被执行的基于图形的计算,当激活组件时,基于新的或编辑的规则规范生成新的变换,并且将新的变换与组件相关联。生成变换包括将规则规范中的多个规则情形中的每一个转换为逻辑表达式以形成多个逻辑表达式,并且将多个逻辑表达式编译为计算机可执行的代码。编译多个逻辑表达式包括以下的一个或多个:组合表达式、优化各个表达式,并且优化表达式的组。编译多个逻辑表达式包括将表达式与适合于在基于图形的计算中使用的组件相关联。
通常,在一方面,通过以下来测试计算:接收包括规则情形的集合的规则规范,每个规则情形包括潜在输入和对应输出的关系;接收测试情形的集合,每个测试情形包含一个或多个潜在输入的值,并且为每个测试情形,标识对给定的测试情形的输入值将生成输出的规则情形中的一个。
实施方式可以包括一个或多个以下特征。
响应于标识将对每个测试情形生成输出的规则情形,存储或输出该规则规范是有效的指示。响应于标识对每个测试情形将生成输出的规则情形,存储或输出将生成输出的指示。接收测试情形的集合包括接收测试列的集合的表,每个测试列包含对于对应的一个测试情形的一个或多个潜在输入的值。对于每个测试情形以及对于该测试情形的所标识的规则情形,标识由所标识的规则情形将生成什么输出。对于每个测试情形以及对于该测试情形的所标识的规则情形,标识由作为促使所标识的规则情形生成输出的测试情形中的一个或多个输入值。还包括对于每个测试情形,为每个规则情形指示测试情形中的值使得规则情形的哪些关系得到满足以及未得到满足。
规则情形具有顺序,并且对于每个测试情形所标识的规则情形对应于满足潜在输入的每一个关系的顺序中的第一规则情形。接收包括规则情形的第二集合的第二规则规范,一个或多个规则情形包括第一规则规范的一个或多个输出与第二规则规范的对应输入的关系。对于每个测试情形,标识对给定的测试情形的输入值和第一规则规范的标识的规则情形的输出将生成输出的第二规则规范的规则情形中的一个。对于每个测试情形,生成将导致生成第二规则规范的输出的、输入和第一规则规范的输出与第二规则规范的输出之间的相互关系的图形显示。对于每个测试情形,指示将生成给定的测试情形的输入值的输出的每个规则情形。对于每个规则情形,指示多少测试情形具有将促使规则情形生成输出的潜在输入的值。
每个测试情形包括输出。确定由标识的规则情形生成的输出是否匹配测试情形中包括的输出,并且存储或交换确定的结果。生成包括每个测试情形的结果行的表,每个结果行指示对于给定的测试情形的输入值将由规则规范生成的输出。在每个结果行中,指示是否从被指示为规则规范的之前的版本的输出改变为将生成的输出。响应于用户与结果行的交互,在结果行中指示将生成输出的标识的规则情形。对于测试情形之一,生成包括对应于规则规范的每个规则情形的评估行的表,在表的每一评估行中,对于每个潜在的输入,指示测试情形中的潜在输入的值是否满足对应于评估行的规则情形中潜在输入的关系。在对应于测试情形的所标识的规则情形的表的评估行中,指示由该规则情形将生成的输出。
评估行具有对应于规则规范内规则情形的顺序的顺序,并且其中指示输出的评估行对应于潜在输入的每一个关系所满足的第一规则情形。指示对应于潜在输入的每一个关系所满足的规则情形的、将由测试情形在每个评估行中生成的输出。接收包括规则情形的第二集合的第二规则规范,指示将由每个规则规范生成的输出。生成包括每个测试情形的结果行的表,每个结果行指示对于给定的测试情形的输入值由规则规范生成的每个输出。响应于用户与结果行中所指示的输出的交互,指示哪一个规则情形将生成所指示的输出。所指示的规则情形来自第二规则规范,并且指示所指示的规则情形包括:指示来自第一规则规范的规则情形和满足所指示的规则情形的输入关系的规则情形的输出。接收测试情形的集合包括:从用户接收输入值的集合,将输入值的集合与规则规范的潜在输入值进行匹配,并且将输入值的集合存储到表的列中。对输入值的集合接收是响应于显示潜在的输入值的标识。
通常,在一方面,在具有由表示数据流的链接元素而连接的数据处理组件的基于图形的计算中的组件,该组件包括基于规则规范变换数据的变换,所述规则规范包括规则情形的集合,每个规则情形包括潜在输入和对应输出的关系,并且通过以下步骤来进行测试,在执行环境中在输入数据的集合上执行基于图形的计算、对输入数据以及由对输入数据的集合中的每一项数据的计算而产生的输出进行登记,并且在与执行环境分开的测试环境中,对于所登记的输入数据的集合中的每一项数据来标识对于给定的该项中的输入值将生成所登记的输出的规则情形之一。
在附图和以下的描述中阐述本发明的一个或多个实施例的细节。从该描述以及附图,和权利要求中本发明的其他特征、目的以及优点将显而易见。
附图说明
图1A是变换的示例。
图1B是图的示例。
图1C是变换的生成和更新的框图。
图2A是基于扩展页(spreadsheet)的规则条目(entry)的示例。
图2B是各个规则的示例。
图3是测试数据集合。
图4A是测试结果。
图4B和图4C是测试结果的细节。
图5和图7是流程图。
图6是变换代码的示例。
具体实施方式
可以将商业规则表示为可以使用的准则的集合,例如,用于将数据从一种格式转换为另一种格式,做出关于数据的确定,或者基于输入数据的集合生成新数据。例如,在图1A中,航班预定系统中的记录102指示乘客的姓名104、该乘客本年度已飞行多少英里106、该乘客的票的舱位等级108,以及他的座位所处的行110。商业规则指示应当使这样的乘客进入登机组1。通常商业规则对于人是容易理解的,即,“头等舱的乘客在组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。取决于该系统的架构和变换的目的以及该商业规则,可以将生成的变换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对应于规则情形,即,与可得到的数据值有关的准则的集合。如果对其中规则情形具有准则的每个触发列所记录的数据值满足触发准则,则将规则情形210n应用于给定的记录(例如,图1A中的102)。如果应用规则情形210n,则基于一个或者多个输出列212生成输出。可以将规则情形的所有输入关系都得到满足的规则情形称为“触发的”。每个输出列212对应于潜在的输出变量,可应用的行210n的对应的单元(cell)中的值为该变量确定输出(如果有)。如以下将讨论的,单元可能包含被分配给变量的值或者它可能包含为生成输出值必须要评估的值。尽管在图2A中仅仅示出了一个,但是可以存在多于一个的输出列。
可以存在若干不同类型的触发列,包括:对应于变量的列、包含表达式但是一旦被运算则如变量对待的列,以及仅仅包含表达式的列。基于仅仅包含数据的列,其他的列的类型包括仅仅包含数据的列和指定评估每一行的表达式的列。仅仅包含表达式的列比那些对应于变量或者被作为变量对待的列更简单。这样的列可以包含以下中的一项:
●表达式。如果该表达式的评估被评估为非零、非空值,则认为该条件为真。
●关键字“任何”,或者空字符串(string)。该条件总是为真。触发列中的每个空单元等效于明确包含关键字“任何”的单元。
●关键字“其他”。如果在包含“其他”的该单元之上没有一个单元为真,则该条件为真,该行中向左的所有单元是等同的。
●关键字“相同”。如果以上单元为真,则该条件为真。
对应于变量的列可以具有两种类型的单元。一种类型的单元是表达式单元。那些单元表现完全如同上述的仅仅包含表达式的列中的单元。然而,可以在表达式中使用关键字“this”来指代列变量。另一类型的单元是比较值。用于比较值的示范性的文法(grammar)如下:comparison_value::=compound_value(“or”compound_value)*compound_value::=simplc_value(“and”simple_value)*simple_value::=[“not”](value_expression|simple_function|membership_expr)value_expression::=[operator]value_elementoperator::=“>”|“<”|“>=”|“<=”|“!=”|“=”|“equals”value_element::=constant|constant|variable|“(“expression“)”simple_function::=“is_null”|“is_blank”|“is_valid”|“is_defined”|“is_bzero”membership_expr::=“in”“[“value_element((“,”|“to”|“or”)value_element)*“]”
其中“*”意味着该项重复零次或者多次。
可以使用任何合适的编程语言或者语法(syntax)。示例可以包括C、Java、DML,或者Prolog。根据操作符、函数、或者从属关系(membership)表达式将列变量与比较值进行比较。在图2A的示例中,前两列202和204包含具有“>=”操作符的比较值,从而如果该列的值大于或者等于对应的数,则满足准则。如果不存在操作符,如在“座位的舱位等级”列中,则假设“等于”。常数可以是在基础系统中使用的无论何种编程语言或者语法中的任何合法常数。如下所述,其他常数和变量是在规则集合内定义的商业项。表达式是在返回将与列变量比较的可兼容的数据类型的、使用的语言的任何合法表达式。在某些示例中,在括号中包含比较值内部的表达式以避免混淆。对于simple_function,将该函数应用于列变量,因此“is_null”关键字与表达式“is_null(this)”相同。
在图2A的示例中,第一行210a具有仅仅一个列202,其指示如果旅行者频繁飞行的英里的总数大于1,000,000,则应用规则情形而不管任何其他列可能具有的什么样的值。在该情形中,“登机组”输出该用户被置于组1的变量。同样,第二规则情形210b指示头等舱中的任何乘客在组1中。在某些示例中,依序评估规则,所以已经超过1,000,000英里的旅行者和头等舱票将在组1中,但是将仅仅触发第一规则情形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中示出的整个表。每个规则包含每个触发列的值和每个输出列的值(该值可以是空的,即,有效地被设置为“任意”)。当多个规则生成相同的输出时,对这些规则进行排序并且依序对这些规则进行考虑直到一个规则中的规则情形在输入触发并生成输出。如果没有规则情形处于规则触发,则处理产生相同输出的下一规则。如果没有任何规则中的情形触发输出,则使用默认的值。
在一些示例中,编辑器界面可以按图形标识包含表达式的单元(cell)。这将有助于用户理解按照其自身将被评估为真的或者假的表达式和返回与列变量比较的值的表达式之间的差别。当用户在键入(type)时,他可以通过例如在开始键入星号来指示要作为表达式单元特定的单元。
在一些示例中,值和表达式是DML表达式。可以支持完全的DML语言。将字段(field)和值的特殊的关键字和商业名称编码为DML表达式的预处理输出的字符串。注意,表达式不仅可以为变量使用逻辑(商业)名称,而且还可以指代实际的物理名称,尽管这可能干扰测试。
对于对应于输出变量的列,单元可以包含以下中之一:
●值。该值将被分配给输出变量
●表达式。该表达式的值将被分配给输出变量。如果该表达式评估为NULL,则字段取得该NULL值,除非输出字段是不可空的(non-nullable)。在这种情形中,生成错误。
●关键字“null”。如果输出字段是可空的,则给该字段分配NULL。否则,生成错误。
●空字符串。如果输出字段具有默认值,则分配默认值。否则,将该单元作为其包含关键字“null”对待。
●关键字“相同”。给输出字段分配之上的单元中计算的相同的值。
如果可能,则尽可能快地报告错误(即,在不可空的字段的输出列中置入“null”)。然而,一些错误直到测试时或者运行时才可以被报告。
除了表达式,可以允许用户对规则中的任何单元附加注释(comment)。可如附加到诸如Microsoft Excel之类的普通的电子表程序中单元的注释那样来显示这些注释。
在一些示例中,可以配置编辑器界面的规则使得比该界面需要的技术要求更严格地限制用户可以输入的内容。例如,可以配置该界面以仅仅允许某些类型的变量或者某些类型的表达式,以便提供更简单的、进一步限制(constrained)的用户界面。基于用户的角色或用户ID还可以配置该界面以来限制可以改变规则中的哪些单元。这样的限制可以通过管理员而应用到规则的集合。
无论按照表的行或者按照单独的规则创建,每个规则具有特定的一组属性。规则集合可以确定它们包括的这些规则的这些属性。这些属性可以包括名称、规则类型、描述和注释字段、输出变量的列表、输入变量的列表、主题(argument)的列表、触发列的列表、修改历史、测试数据集合、以及错误处理行为。名称是自解释的,并且用于在规则集合中列出规则。规则类型可以是例如“正常的”或“功能”。在一些示例中,规则类型是规则集合的特性(property)。输出变量的列表是由规则产生的变量或者由规则分配的值的集合。这可以从规则集合中继承(inherite),并且可以存在一个或多个输出。输入变量的列表标识规则需要以评估记录的所有变量,包括列的顶部的那些变量和在表达式内部使用的那些变量(例如,图2A中的规则210c中使用的“近年的频繁飞行的里程”,在表达式中使用,但没有其自身的列)。
在一些示例中,可以使用多个规则情形来生成单一输入记录的多个输出记录。这样的规则集合被称为归一化的(normalize)规则集合。在归一化的规则集合中,输出中的一个被标识为关键输出。当评估计算该关键输出的规则时,记录(note)输入所触发的规则情形和生成的输出。然后再次评估规则,禁止之前触发的规则情形,以查看是否任何其他的规则情形触发并产生输出。对此进行重复直到没有规则情形触发。可以将每个输出作为分开的输出记录而存储。在一些示例中,对规则情形分组,使得如果一个规则情形触发,则当对相同输入的下次迭代(iteration)时还禁止其组内的其他规则情形。
在一些示例中,通过行中的规则情形进行“与”操作而对列进行“或”操作,可以以与上述的相反的方式来评估规则。即,只有如果每一行触发(对行进行“与”操作),而对于每一行仅仅需要单个单元为真以触发(对列进行“或”操作)规则才产生输出。
对于功能规则仅仅呈现主题的列表。其标识被输入到规则的参数的名称和类型,并且可以是规则集合的特性。触发列的列表标识哪一列可以触发规则的应用。除了仅仅在图2A和图2B的示例中示出的输入变量之外,触发列可以对应于参数、查找变量、来自较早的规则的输出变量、所包括的(including)规则集合的输出变量、对于规则集合的参数,或者表达式。它们还可以包括来自功能规则,即,来自主题的输入变量。
修改历史包括修改的名称、日期,以及注释。在一些示例中,存在对于每个规则的一个修改历史,和对于测试集合的一个修改历史(以下讨论)。
错误处理确定从规则集合创建的变换怎样处理在评估规则时发生的错误。为了处理触发表达式中的错误,选项(option)是允许错误或者忽略错误,在选项允许错误的情况下,变换拒绝(reject)导致错误的记录,而选项忽略错误的情况等效于假定触发表达式为假并且继续前进到下一规则。对于输出表达式,可以通过以下来处理错误:允许该错误并且拒绝记录、忽略错误并且将输出设置为NULL,或者忽略规则中的该行并且继续前进到下一行。
测试数据
为了辅助评估规则集合是否按照预期来工作,可以包括测试数据集合。规则集合的测试数据集合是原型(prototypical)输入和期望的输出的集合,例如,如图3所示。该测试数据集合由如表400的扩展页组成,表400具有由规则引用的每个字段的一行402a-e以及每个输出的一行404(在该示例中,存在仅仅一个)。然后用户可以创建在测试数据的列406a-r中表示的测试情形和期望的结果。可以利用规则保存该测试数据。图3的示例包含可能的输入402a-e和作为关于图2A-图2B的规则的预期的输出404。对于频繁飞行里程和座位安排的各种组合406,其示出应当计算什么登机组404(存在比所示出的可能输入更多的组合)。在一些示例中,测试输入包括在每个查找中的值或每个变量。测试输入还可以包括每个参数的值以及作为引用当前的日期或时间、对于任何规则用作“现在”的值。为测试各个个体(unit),测试输入可以包括任何所包含的规则集合的值,使得在测试所包括的规则集合时不必要评估被包括的规则集合。
在一些示例中,基于用户动作由软件来确定个体测试表中的列402、404。当用户编辑规则时,解析该规则的细节并且生成所引用的输入变量的确定的(definitive)列表。该列表包括在列标题中使用的变量和在表达式中嵌入的变量。对每个变量、在表达式中嵌入的每个技术变量,以及每个查找表达式生成一列。在一些示例中,用户通过每次一个地(one at a time)提供测试情形来创建测试表400。例如,用户可以指定具有总共2,000,000频繁飞行里程、本年200,000英里、去年150,000英里、以及在第5行中的头等舱机票的乘客应当位于登机组1。软件确定行402a-e和行404中的哪一行对应于这些输入和输出并且在表400中创建对应的列406a。可以按照用户希望输入的测试情形的次数来对此进行重复。在一些情形中,软件可以向用户提供给出了每个潜在的输入或输出变量的界面,使得用户可以仅仅输入或选择值而无须知道什么变量需要它们。
然后用户可以填写测试情形并且执行测试。关于这一点,软件评估测试数据集合表的每一行的规则并且计算结果值。如果结果值与期望的值(由用户在对应于输出变量的列中输入的值)匹配,则给出该规则有效的指示,例如,可以以绿色示出该输出单元。如果结果值与期望的值不匹配,则对此做出指示,例如,可以以红色示出该单元并且显示期望的值和实际值。然后用户可以更新测试情形或调整(fix)该规则。当然可以使用其他用户界面机制。例如,除了将计算的输出与输入期望的输出进行比较,测试过程可以简单地显示计算的值是什么,并且让用户来评估是否正确。
在一些示例中,用户具有其可以用于生成测试数据的实际数据。商业规则的最终用户可以提供这样的数据给开发者以用于测试。为了处理用户没有实际的数据来测试的情形,软件可以提供简单的数据输入形式用于一次一个记录地输入测试数据。用户可以在输入数据集合中键入每个字段的值并且这些记录将被添加到所标识的测试数据集合。
在一些示例中,在输入规则时对其进行验证(validate),并且可以立即在界面上标识出不产生期望的输出的规则,类似于字处理器可以在输入词时标记拼错的词那样。
在一些示例中,在执行了测试之后,用户可以在测试数据集合表中选择任何行(测试情形)。如果选择了行,则将显示为该测试情形产生输出的规则表中对应的行。除了表达式,用户还可以向测试数据表中的任何单元附加注释。
更多关于规则集合的
如上所述的,根据规则集合中生成变换。规则集合可以具有以下属性:
名称、描述,以及注释-这有助于标识规则集合。依赖于后端的(back-end)实施方案,规则集合可以包括其在系统内的位置的标识。在一些示例中,规则集合的位置是项目(project)中的路径(path)。在一些示例中,可以在相关的(relational)数据库中组织规则集合并且由名称来定位规则集合。修改历史包括修改名称、日期,和登记(check-in)注释。
变换类型-其确定从规则集合生成什么类型的变换。如下所讨论的,可能的值包括重新格式化、结合(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)来消除输入和输出的歧义(disambiguate)。不同查找文件中的查找变量可以具有相同的名称。在这种情形中,使用诸如查找文件自身的名称之类的前缀将消除它们之间的歧义。
2.简单类型。在一些示例中,可以支持四种基本类型-字符串、数字、日期以及日期时间。这些对应于DML类型的字符串(int)、十进制(20)、日期(“YYYY-MM-DD”)以及日期时间(“YYYY-MM-DDHH24:MI: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)比较是允许的,并且软件将转译为“变量>=最小以及变量<=最大”。如果未指定最小,则跳过比较的一部分。同样的情形用于最大。可以以逗号(comma)分隔最小值和最大者来实际存储范围。
6.对于集合:逗号所分隔的值的列表。列表中的每个元素是常数或者表达式,如同以上证明的实际值。对于集合仅仅平等的比较是允许的,并且软件将转译为以“[值的矢量的列表]的变量成员”形式的表达式。
7.可选的描述和注释
当处理来自共享的规则集合的提升的变量时,也提升了常数。在示出共享的规则集合的输入和输出变量的表中,还示出了与这些变量相关联的常数。这些常数的默认的映射是所提升的信息的一部分,但是用户可以覆盖(override)常数值.
软件将检测何时因为不匹配的常数而存在变量的使用中可能的冲突。具体地,如果(1)将任何变量的值复制到另一变量,以及(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[0]”)。用户可以覆盖这个。例如,在归一化类型转换中,用户可以将技术名称改变为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)。如果选择逻辑实体,则软件将利用逻辑实体中的每个逻辑元素的一个变量来创建变量的表。该变量的商业名称将是该逻辑元素的display_name。如果逻辑元素具有验证规范,则还将使用先前的文档规则来创建常数。
最后,可以手动添加输入变量和输出变量,或者通过将它们加入到变量表或者通过在编辑规则的同时创建它们。例如,当用户将列加入到规则时,他选择应该为该列使用哪一个输入变量。但是他也可以选择“新的...”并且在线(on the fly)创建输入变量。然后软件将提示用户数据类型和可选的注释。没有技术名称需要被填写直到稍后。
软件需要按照顺序的变量的列表以允许编辑规则。然而,不是必须完成商业名称和技术名称之间的映射直到稍后。当用户准备针对外部测试文件来测试整个规则集合或者从规则集合实际创建变换时,才需要该映射。
被包括的规则集合
在一些示例中,可以共享规则集合。具体地,指定在另一规则集合内部包括被包括的规则集合使得该规则集合的逻辑成为所包括的规则集合生成的变换的一部分。
尽管被包括的规则集合通常具体被指定为共享,但也可以单独使用被包括的规则集合来创建变换。例如,用户可以创建用于计算筛选类型的变换的布尔输出的规则集合。但是同时,可以将该规则集合包括在另一变换中并且可以使用布尔输出(在所包括的规则集合中可用的、共享的规则集合的输出变量)来计算更复杂的输出。
被包括的规则集合类似于规则集合的其他类型。它们具有输入变量和输出变量。并且它们自身可以包括其他被包括的规则集合。但是对于被包括的规则集合中的输入和输出变量的处理与变换类型的规则集合的处理是不同的。在变换类型的规则集合中,将输入和输出变量映射到技术名称使得可以生成变换。但是在被包括的规则集合中,不需要将输入和输出变量映射到技术名称的需要(如果规则集合是共享的且用于生成变换,则为了生成变换的布置(deployment)而将输入和输出变量映射到技术名称)。
当用户将被包括的规则集合包括到另一规则集合中时,所包括的规则集合需要具有变量映射表来映射被包括的规则集合的输入和输出。在所包括的规则集合的上下文中,只有在共享的规则集合中输入变量和输出变量才是可见的。在共享的规则集合中包括的任何规则集合的任何变量没有暴露(expose)给所包括的规则集合。
在所包括的规则集合的上下文中,需要将共享规则集合的输入变量映射到所包括的规则集合的变量,或者使用这些变量的表达式。将在变量映射表中列出共享的规则集合的商业名称,但是这些名称将不可用于所包括的规则集合中的规则。替代地是,所包括的规则集合仅仅需要将共享的规则集合的每个输入变量(通过商业名称)匹配到所包括的规则集合中的表达式。
在输入变量、参数以及查找之前考虑要评估的被包括的规则集合,从而可以使用被包括规则集合的输出作为查找的关键字(key)。在一些示例中,评估的顺序是更灵活并且可以基于依赖性分析来自动地确定查找相对于被包括的规则集合的评估的顺序。因为在计算任何输出变量之前评估被包括的规则集合,因此在所包括的规则集合中没有输出变量可以被映射到被包括的规则集合的输入。如果不能利用简单的输入变量来进行向被包括的规则集合输入的映射,则可以替代地使用表达式。
只要在被包括的规则集合中的输入变量的可空,关于被包括的规则集合输入变量的映射可以是NULL,。还可以将映射留作空白。如果将映射留作空白,则将在变换生成的时间报告错误,如果并且仅仅如果在计算所包括的规则集合的输出中需要输入变量。在一些示例中,假定一切都是可空的,这简化了用户界面。
在所包括的规则集合的上下文中,还需要将共享的规则集合的输出变量映射到所包括的规则集合中的商业名称。该映射表是上述的映射表的反转。当映射共享的规则集合的输入变量时,该表将共享的规则集合的输入变量的商业名称映射到所包括的规则集合中的现有变量。但是当映射共享规则集合的输出变量时,所包括的规则集合具有指定共享的规则集合的输出的商业名称的表-将所包括的规则集合中的名称映射到共享的规则集合中的对应的名称。
需要输出变量映射来解决潜在的命名冲突。默认的映射是在所包括的规则集合和共享的规则集合两者中简单地使用相同的商业名称。但是共享的规则集合中的输出变量的名称可能与所包括的规则集合中已经定义的变量的商业名称相冲突,因此可以改变所包括的规则集合中所映射的名称。
不是来自共享的规则集合中每个输出都需要被映射。如果输出被留下而未被映射,则不能在所包括的规则集合中使用该输出,并且将忽略来自共享的规则集合的相应的逻辑。另一方面,应当映射来自共享的规则集合的所有的输入,虽然如果规则集合的设计者确信将不需要它们,则可以将它们映射到不感兴趣的变量。在一些示例中,系统自身可以确定那些输入真正需要被映射。
在一些示例中,通过商业名称而不是通过引用(reference)来完成映射表。当在另一规则集合中包括共享的规则集合时,所包括的规则集合得到来自共享的规则集合的输入和输出的复制。将这些名称与映射信息一起存储在所包括的规则集合中。可以改变得到的共享规则集合,促使添加、删除或者重命名一些输入或输出。
在从系统载入规则集合时,可以由所包括的规则集合来处理所包括的规则集合与被包括规则集合之间的引用完整性问题。从所包括的规则集合中删除从共享的规则集合中消失的输入变量。将被添加到共享规则集合中的输入变量添加到所包括的规则集合的映射表,但是保持为未映射。同样,将被添加到共享规则集合中的输出变量添加到所包括的规则集合的映射表,但是保持为未映射。如果从共享的规则集合删除输出变量,并且其不在包括规则集合中使用,则其只是从映射表删除,但是如果在所包括的规则集合中使用,则用户得到该变量不再可用的错误。
所包括的规则集合实际上存留(persist)来自共享的规则集合的冗余信息。具体地,在输入和输出变量映射表中,所包括的规则集合仅仅需要维持共享规则集合中的商业名称的列表连同所包括的规则集合中对应的命名。为了效率,所包括的规则集合还存留类型、默认值、描述和注释、所有复制的共享规则集合的输出。当编辑所包括的规则集合时,这些值是可读的/只读的,但是为了效率而被包括以用于生成报告和其他分析。
共享的规则集合映射表在被包括得的规则集合中还具有一个附加的条目(entry),其是附加的注释。这允许用户向被映射的值添加另一注释。
共享的规则集合的常数
在用于被包括规则集合的映射表中包括的是用于共享规则集合的输入和输出变量的常数。如同变量自身,由共享的规则集合使用的常数可能不得不被映射。对于输入变量,共享的规则集合可以内部比较字段与在其输入表中定义的常数。当在另一规则集合中包括共享的规则集合时,就用于其输入变量的常数复制到所包括的规则集合。然后用户可以覆盖所包括的规则集合的上下文中的值。通常,当用户定义共享规则集合输入变量与所包括的规则集合中的变量之间的映射时,两个变量之间的常数将匹配(match up)。如果不是这种情形,则用户将需要为由共享规则集合定义的任何常数值提供技术值。
查找文件
规则集合可选地具有一个或多个查找文件。规则集合中的每个查找文件包括以下信息:
1.查找文件的商业名称。
2.可选的描述和注释。
3.组成关键字的字段的商业名称的列表。当将查找文件添加到表达式时使用这些名称,从而用户见到如这样的:lookup(My Lookup File,<customer name key>,<account type 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)所触发的每个规则,即,如果更高优先级的规则情形还未满足其所有的输入条件时,满足其所有输入条件并且将产生输出的规则情形。在处理了测试数据之后,软件可以后处理(post-process)测试输出数据并且生成未被任何规则情形所触发的每个规则或规则情形的列表。可以将该信息覆盖(overlaid)在编辑器的规则的显示之上以迅速向用户示出哪些规则被触发或未被触发。从该信息,用户可以查看被其他规则遮蔽(obscure)的可能的规则,即,重叠的规则。还可以为每个规则情形示出计数(count)。在刚刚知道是否触发规则情形时计数可以是有用的,特别对于调整(tune)值以实现期望的输出的发布以及对于标识用于调节性能的最可能的规则情形是有用的。
变换生成
通过将每个规则集合转换为变换来在应用(图形)中评估商业规则。然后将该变换附属(attach)到图形中的组件上。这样的组件可以是包含以特定的方式被链接的用于执行变换的一组标准组件的子图形。然后可以与附加组件一起使用这样的子图形,例如使用关键字来结合和积累。
可以以多种方式从商业规则中生成变换代码。在其中未将变换的内部指定为用户编辑的示例中,生成处理可以导致难于理解(comprehend)的变换,但是该变换实施规则比逐一地应用规则更有效率。在一些示例中,如图6所示,可以使用简单的if-then-else(如果-则)链500来捕捉规则集合中的逻辑(作为参考而重复图2A的规则集合表200)。在链500中示出,对每个规则情形210a存在一个“if...then...(如果......则......)”子句502i。可以使用as-is这样的链,或者依赖于合适的计算资源的可用性以及该系统的用户的优先权还可以优化它们。在一些情形中,可以使用专用的计算资源或者其他技术来改进所生成的变换的性能。可以将怎样生成变换的一些细节存储在布置中。在多个图形中可以使用的规则集合可以对于其不同的可能的用户具有多个布置。规则集合还可以包含规则的超集(super set),在每个布置中只是需要它们中的一些,该布置标识当生成变换时使用哪些规则。
在一些示例中,如果规则包括作为小数的列,并且存在与该列匹配的大量的不同的值,则我们可以通过在所指示的列上写入“switch”语句分支来改进变换的性能。例如,考虑这个规则:
  航班号   座位的行   登记组(输出)
  1   <10   1
  1   2
  2   <15   1
  2   2
  航班号   座位的行   登记组(输出)
  3   1
  4   1
  5   <10   1
  5   <20   2
  5   3
可以以两种方式生成该规则的变换。如同这样:
if(NUM==1and ROW<10)then BG=1
else if (NUM==1)then BG=2
if(NUM==2and ROW<15)then BG=1
else if(NUM==2)then BG=2
else if...
或者如同这样:
Switch(NUM)
case 1:if(ROW<10)then BG=1else BG=2
case 2:if(ROW<15)then BG=1else BG=2
我们可以使用的另一技术是在存储器中的查找文件。如果该规则具有众多的常数值,具有少量(如果有)表达式,则替代if then else逻辑,我们可以只是使用查找表。在这种情形中,查找表是该规则的一部分(没有分开保存)。例如,考虑该规则:
  出发城市   目的地城市   服务舱位   表达式   频繁飞行里程
  BOS   LAX   头等舱   6000
  BOS   LAX   商务舱   3000
  BOS   LAX   经济舱   Is Using Miles=yes   0
  BOS   LAX   经济舱   else   3000
  BOS   CHI   头等舱   2000
  BOS   CHI   经济舱   1000
  BOS   NYC   头等舱   1500
  BOS   NYC   商务舱   1000
  出发城市   目的地城市   服务舱位   表达式   频繁飞行里程
  BOS   NYC   经济舱   500
利用以下信息通过建立存储器内的查找表来处理该规则:
  出发   目的地   舱位   过期   里程
  BOS   LAX   1   0   6000
  BOS   LAX   2   0   3000
  BOS   LAX   3   1   3000
  BOS   CHI   1   0   2000
  BOS   CHI   2   0   1000
  BOS   NYC   1   0   1500
  BOS   NYC   2   0   1000
  BOS   NYC   3   0   500
则该变换如同这样:
int expr=lookup(from,dest,class).expr
int miles=lookup(from,dest,class).miles
if(expr==1and is_using_miles)miles=0
return miles;
每个规则集合具有布置表。该布置表将名称映射到关于该布置的配置的细节。布置表中每个条目包含以下信息:
1.布置名称。在规则集合内必须是唯一的任意字符串。
2.输入数据集合名称。如果在输入变量表中存在所列出的多个输入数据集合,则布置表中的每个条目指示哪些输入数据集合被用于该布置。
3.输出数据集合名称。如果在输出变量表中存在所列出的多个输出数据集合,则布置表中的每个条目指示哪些输出数据集合被用于该布置。
4.每个被包括的规则集合的布置名称。对于每个被包括的规则集合,我们需要指示应当哪些布置用于所包括集合的每个对应布置。
5.组件和要生成的变换文件的目标位置
在一些示例中,总是存在被命名为默认的至少一个布置。这是在没有指定其他布置时使用的布置(deployment)。
在一个示范性实施例中,存在变换生成的基础。首先,软件将仅仅输出在规则集合中计算的输出的规则。在变换中利用通配符来处理所有其他的输出。通常,仅仅是被内部使用的输出变量促使在所生成的变换中创建局部变量。这就是说,如果必要,所生成的变换可以包括更多的局部变量以避免重复的计算(例如,如果对于速度胜于空间的优化)。
图7示出了怎样在所生成的变换内评估规则集合。对于每个输出(702),依序评估有关的规则。对于生成不相交(disjoint)的输出的规则,变换生成器基于依赖性分析来决定规则的评估顺序。不允许循环性并且将循环性报告为错误。如果两个或多个规则生成相同的输出,则它们的执行顺序与它们在规则集合中被列出的顺序相同。在每个规则(704)内,从上到下依序评估评估规则情形。对于每个规则情形(706),可以以未限定的顺序来评估(708)每个规则的触发列(例如,软件可以不保证在单一的规则情形内评估的顺序)。只要发现其中所有的触发都为真(非零/假以及非空)的一个规则情形,就使用对应的输出值(716)。只要规则情形评估为假,则继续该处理(718、712、720、722)。如果对于给定的输出没有规则触发(720),则变换显式地将输出值设置为NULL或者合适的默认值(724)。
依赖于变换类型,存在以下变换的不同:
●重新格式化-输入被称为“in”,并且输入变量可以具有如同“in.field”的技术名称。输出被称为“out”,并且输出变量可以具有如同“out.field”的技术名称。
●结合-两个输入被称为“in0”和“in1”。输出被称为“out”,并且通配符规则假定in0被复制到“out”。当生成之间时可以设置所有的参数。
规则集合可以具有输入的多个集合,一个集合用于对结合的每一个输入。规则集合还将指定结合类型,输入是否应当是非欺骗的(de-depued),以及字段的商业名称用于到结合的关键字(在一些示例中,这必须在每个输入集合中呈现)。同样,可以允许用户指定被用作输入筛选的每个输入的表达式。
●积累-该输入被称作“in”并且输出被称作“out”。在积累类型的的规则集合中,允许用户使用合计函数(在其他变换类型中不支持)。如果用户创建其技术名称为“in_select”或者“output_select”的输出变量,则利用计算这些输出的规则的逻辑将“in_select”和/或“output_select”函数添加到该变换。这两个函数的输入被称作“in”(即便out_select通常命名其参数“out”)。如同在结合类型中,当生成组件是可以设置所有的参数。
●筛选-输出两个预定义常数之一。对于筛选类型的变换的唯一的输出变量是类型组件“select”,其被传递到输出的是非零和非空。在一些示例中,在子图形中将其实施为重新格式化的组件。
还可以实施另外的变换类型:
●扫描-扫描函数取得被命名为“temp”和“in”的两个输入,并且产生被命名为“out”的输出。规则集合中的规则可以使用来自temp和in两者记录的字段。这可以由输入变量的技术名称来确定。(例如,可以将技术名称设置为字符串“temp.field”或者“in.field”)。
对于变换的临时变量(“temp”)的记录格式包含由规则集合生成的每个输出。通过软件自动地创建初始化函数来以临时记录格式初始化每个字段初始化为它们的默认值。还通过软件来自动地创建结束(finalize)函数;该函数简单地将临时记录复制到输出并且添加通配符规则。如同积累情形,如果具有这些技术名称的变量是在输出变量表中,扫描类型的变换还支持创建in_select函数和output_select函数。
●归一化-归一化函数取得两个输入,“in”和“index”,并且产生被命名为“out”的输出。索引(index)输入不是记录,相反如果用户想要在规则中使用索引,则他们创建被映射到索引的技术名称的输入变量(还可以在各种DML表达式中使用索引变量)。软件将具有其经过的、如上所述的规则的长度。
归一化类型的规则集合还支持被命名为“in_select”和“output_select”的输出变量,如同积累类型的规则集合一样。
●分类-规则具有N个输出并且变换决定应当使用哪一个输出用于每个记录。对于该组件,软件创建out::classify(in)函数。输出是指示应当使用哪一个(可能存在多于一个的)输出端口的单一的整数值。输出0意味着第0个端口,输出1意味着第一端口,等等。
用于分类类型的变换的唯一的输出变量是“select”类型的组件,其将是输出端口的索引(基于零)。这类似于筛选,除了对输出使用N个值而不是两个值。
●函数-函数类型的规则集合可以被转变为DML变换文件,但是不是作为组件变换。相反,当将函数类型的规则集合转变为变换时,设计要被包括在其他变换中的所构建的变换文件。每个输出变量被转变为DML函数。这些函数的输入依赖于规则的类型。对于函数类型的规则,输入是在表中列出的顺序中的规则的输入。对于非函数类型的规则,每个输出函数取得被命名为in的单一输入,其是具有对应于输入变量的所有字段的记录。
当使用规则集合来生成将依次(in turn)成为图形一部分的变换时,图形组件包括规则集合的名称和布置。然后图形开发者可以变焦规则集合而不是组件中所生成的变换。对规则集合的改变促使重新生成变换。
其他特征和变型可以包括生成关于在特定规则集合中使用的规则的报告,更精细颗粒的许可模型,例如,该模型允许一些用户编辑规则而不是添加输入。对每个输出可以实施内部规则依赖树(dependency tree)。规则或者规则集合可以具有合法日期或者过期的日期。单一的输入记录可以产生多个输出,例如,如果满足多个规则的准则,则它们都可以操作而不是仅仅是第一个操作。可以提供对矢量输出的支持。例如,用户可以能够在编辑中指定他们自己的有效性函数,来进一步保护或限制商业用户。
可以使用在计算机上执行的软件来实施上述的商业规则管理方法。例如,软件形成在一个或多个编程的或可编程的计算机系统(其可以是各种体系,诸如分布式、客户机/服务器,或网格式(grid))上执行的一个或多个计算机程序中的过程,所述计算机系统的每一个包括至少一个处理器、至少一个数据存储系统(包括易失性的和非易失性存储器和/或存储元件)、至少一个输入设备或端口,以及至少一个输出设备或端口。该软件可以形成例如,提供与设计和计算图形配置有关的其他服务的较大程序的一个或多个模块。可以将图形中的节点和元素实施为在计算机可读的介质中存储的数据结构或者适合于在数据仓库(repository)中存储的数据模型的其他经组织的数据。
可以在由通用或专用的可编程的计算机或通过网络向执行软件的计算机上传递的(以可传播的信号编码的)、在可读的介质(诸如CD-ROM)上提供该软件。可以在专用的计算机上执行所有的功能,或者使用专用的硬件,诸如,协处理器。可以以分布的方式来实施该软件,其中由不同的计算机来执行由软件指定的不同部分的计算。每个这样的计算机程序优先地存储在或者被下载到由通用的或专用的可编程的计算机可读的存储介质或者存储设备(诸如固态存储器或者固态介质,或者磁介质或者光学介质)上,用于在由计算机系统读取该存储介质或者存储设备时配置和操作计算机来执行在此描述的过程。还可以将本发明的系统考虑为将其实施为被配置有计算机程序的计算机可读的存储介质,其中这样配置存储介质使得计算机系统以特定的和预定的方式来操作以执行在此描述的功能。
已描述了本发明的许多实施例。然而,要理解可以做出各种修改而不脱离本发明的精神和范围。例如,上述的一些步骤可以是顺序独立的,由此可以以不同于所述的顺序来执行。
要理解前述的旨在阐述而不在限制本发明的范围,本发明的范围由所附的权利要求来限定。例如,许多上述的功能步骤可以以不同的顺序来执行,而实际不影响整个的处理。其他的实施例在之后的权利要求书的范围之内。

Claims (55)

1.一种用于指定计算系统中功能组件的行为的方法,包括:
提供用户界面,用于创建具有至少一个输入列和至少一个输出列的表,其中每个输入列与输入变量相关联,每个输出列与输出变量相关联,
在表的至少一行中,
在各自的输入列中接收关于输入值的一个或多个条件,至少一行中的条件标识输入变量的潜在值的多于一个的集合,以及
在各自的输出列中接收一个或多个输出值,
由此定义规则规范的规则情形;
基于该规则规范生成用于变换数据的函数,以及
将该函数与功能组件相关联。
2.如权利要求1所述的方法,其中所述关于输入值的一个或多个条件包括具有等于阈值的值、具有阈值之上的值、具有阈值之下的值、具有属于值的集合的值、具有与样式匹配的值、具有与另一输入的值的关系、具有与另一规则规范的输出的值的关系、或者具有与存储器中值的关系中的一个或多个。
3.如权利要求1所述的方法,其中所述一个或多个输出值包括以下中的一个或多个或者其组合:输入的值、预定的值,或者根据一个或多个输入的值计算的值。
4.如权利要求1所述的方法还包括:
接收包括测试列的集合的测试表,每个测试列包含用于一个或多个输入变量的值,以及
对于每个测试列,标识在给定的测试列的输入值的情况下将生成输出的规则规范表的行,以及
向用户输出对每个测试列所标识的行的标识。
5.如权利要求4所述的方法还包括:
对于每个测试列,生成包括结果行的结果表,每个结果行指示对给定的测试列的输入值将生成的输出。
6.如权利要求5所述的方法还包括:在每个结果行中,指示将生成的输出是否从对于规则规范的之前版本指示的输出被改变。
7.如权利要求5所述的方法还包括:响应于与结果行的用户交互,在该结果行中指示规则规范中的哪一行将生成输出。
8.如权利要求5所述的方法还包括:
生成包括对应于规则规范的每一行的评估行的评估表,
在该表的每个评估行中,对每个潜在的输入,指示该潜在输入的第一测试行中的值是否满足该潜在输入的关系,并且
在对应于规则规范的行的评估行中,指示将生成的输出,其中所述规范的行对给定的第一测试列的输入值将生成该输出。
9.如权利要求8所述的方法,其中评估行具有顺序,该顺序对应于规则规范的行的顺序,并且其中指示输出的评估行对应于规则规范的第一行,对于该规则规范的第一行,满足了潜在输入的每一个关系。
10.如权利要求8所述的方法还包括:指示与满足了潜在输入的每一个关系的规则规范的行对应的、在每一个评估行中将生成的输出。
11.如权利要求5所述的方法还包括:
生成包括对应于规则规范的每一行的评估行的评估表,以及
在每个评估行中,指示多少测试列具有满足规则规范的对应行中的关系的输入。
12.如权利要求5所述的方法,其中每个测试列还包含预期的输出值,所述方法还包括:
每个结果行指示对于给定的对应测试列的输入值将生成的输出是否与该测试列中预期的输出匹配。
13.如权利要求I所述的方法还包括:
对每个测试列生成包括结果行的表,每个结果行指示对给定的测试列的输入值、由规则规范之一中的行生成的每个输出。
14.如权利要求1所述的方法还包括:
对于对给定的第一测试列的输入值将生成的输出,生成将导致该输出的生成的、规则规范的输入和输出之间的相互关系的图形显示。
15.如权利要求4所述的方法,其中接收测试列的表包括:
从用户接收输入值的集合,
将输入值的集合与规则规范的潜在输入值进行匹配,并且将输入值的集合存储到表的列中。
16.如权利要求15所述的方法,其中对输入值的集合的接收响应于显示潜在输入值的标识。
17.如权利要求4所述的方法还包括
响应于确定规则规范的集合中的每个规则规范将生成至少一个输出,确定规则规范的该集合是有效的。
18.如权利要求1所述的方法还包括
接收对规则规范表中的值的改变,
确认所改变的规则规范是有效的,
基于所编辑的规则规范生成新的函数,
去关联第一函数与功能组件,并且
关联新的函数与功能组件。
19.如权利要求1所述的方法还包括
接收对规则规范表中的值的改变,
确认所改变的规则规范是有效的,
等待要被执行的计算,
当计算要求该功能组件时,基于所编辑的规则规范生成新的函数,并且
关联新的函数与功能组件。
20.如权利要求1所述的方法,其中生成所述函数包括:
将规则规范中的多个规则情形中的每一个转换为逻辑表达式以形成多个逻辑表达式,并且
将多个逻辑表达式编译为计算机可执行的代码。
21.如权利要求20所述的方法,其中编译多个逻辑表达式包括以下的一个或多个:组合表达式、优化各个表达式,以及优化表达式的组。
22.如权利要求20所述的方法,其中编译多个逻辑表达式包括将所述表达式与适合于在计算中使用的组件相关联。
23.一种用于指定计算系统中功能组件的行为的系统,该系统包括:
提供用户界面的部件,所述用户界面创建具有至少一个输入列和至少一个输出列的表,其中每个输入列与输入变量相关联,并且每个输出列与输出变量相关联,
用于接收的部件,其在表的至少一行中,接收
i.在各自的输入列中关于输入值的一个或多个条件,至少一行中的条件标识输入变量的潜在值的多于一个的集合,以及
ii.在各自的输出列中的一个或多个输出值,
iii.由此定义规则规范的规则情形;
处理器,被配置为:
iv.基于该规则规范生成用于变换数据的函数,
v.关联该函数与功能组件。
24.一种计算机程序,被存储在计算机可读介质上,指定计算系统中功能组件的行为,该计算机程序包括用于促使计算机进行以下操作的指令:
提供用户界面,用于创建具有至少一个输入列和至少一个输出列的表,其中每个输入列与输入变量相关联,并且每个输出列与输出变量相关联,至少一行中的条件标识输入变量的潜在值的多于一个的集合,
在表的至少一行中,接收
vi.在各自的输入列中的关于输入值的一个或多个条件,至少一行中的条件标识输入变量的潜在值的多于一个的集合,
vii.以及在各自的输出列中接收一个或多个输出值,
viii.由此定义规则规范的规则情形;
基于该规则规范生成用于变换数据的函数,
关联该函数与功能组件。
25.一种用于测试计算的方法,包括
接收包括规则情形的集合的规则规范,每个规则情形包括潜在输入和对应输出的关系,至少一个规则情形包括由潜在输入的多于一个的集合所满足的关系,
接收测试情形的集合,每个测试情形包含一个或多个潜在输入的值,并且
对于每个测试情形,标识对给定的测试情形的输入值将生成输出的规则情形中的一个。
26.如权利要求25所述的方法,还包括
响应于对于每个测试情形标识将生成输出的规则情形,存储或输出将生成的输出的指示。
27.如权利要求25所述的方法,其中接收测试情形的集合包括
接收包括测试列的集合的表,每个测试列包含对于测试情形中对应的一个的一个或多个潜在输入的值。
28.如权利要求25所述的方法,还包括
对于每个测试情形以及对于该测试情形所标识的规则情形,指示由所标识的规则情形将生成什么输出。
29.如权利要求25所述的方法,还包括
对于每个测试情形以及对于该测试数据集合所标识的规则情形,将测试情形中的一个或多个输入值标识为促使所标识的规则情形生成输出。
30.如权利要求29所述的方法,还包括
对于每个测试情形,为每个规则情形指示测试情形中的值满足了该规则情形的哪些关系以及未满足哪些。
31.如权利要求25所述的方法,其中所述规则情形具有顺序,并且对于每个测试情形所标识的规则情形对应于规则规范的第一行,对于该规则规范的第一行,满足了潜在输入的每一个关系。
32.如权利要求25所述的方法,还包括
接收包括规则情形的第二集合的第二规则规范,一个或多个规则情形包括第一规则规范的一个或多个输出与第二规则规范的对应输入的关系。
33.如权利要求32所述的方法,还包括
对于每个测试情形,标识对给定的测试情形的输入值和第一规则规范的所标识的规则情形的输出、将生成输出的第二规则规范的规则情形中的一个。
34.如权利要求33所述的方法,还包括
对于每个测试情形,生成将导致生成第二规则规范的输出的、第一规则规范与第二规则规范的输入和输出之间的相互关系的图形显示。
35.如权利要求25所述的方法,还包括
对于每个测试情形,指示对于给定的测试情形的输入值将生成输出的每个规则情形。
36.如权利要求25所述的方法,还包括
对于每个规则情形,指示多少测试情形具有将促使该规则情形生成输出的潜在输入的值。
37.如权利要求25所述的方法,其中每个测试情形包括输出,所述方法还包括确定由标识的规则情形生成的输出是否匹配测试情形中包括的输出,并且存储或传达确定的结果。
38.如权利要求25所述的方法,还包括
生成包括每个测试情形的结果行的表,每个结果行指示对于给定的测试情形的输入值将由规则规范生成的输出。
39.如权利要求38所述的方法,还包括在每个结果行中,指示将生成的输出是否从对于规则规范的之前版本指示的输出被改变。
40.如权利要求38所述的方法,还包括响应于与结果行的用户交互,在该结果行中指示将生成输出的所标识的规则情形。
41.如权利要求38所述的方法,还包括
对于测试情形之一,生成包括对应于规则规范的每个规则情形的评估行的表,
在表的每一评估行中,对于每个潜在的输入,指示对于测试情形中该潜在输入的值是否满足对应于该评估行的规则情形中该潜在输入的关系。
42.如权利要求41所述的方法,还包括
在对应于对测试情形的所标识的规则情形的表的评估行中,指示将由该规则情形生成的输出。
43.如权利要求42所述的方法,其中
评估行具有对应于规则规范内规则情形的顺序的顺序,并且
其中指示输出的评估行对应于第一规则情形,对于该第一规则情形潜在输入的每一个关系被满足。
44.如权利要求41所述的方法,还包括
在每个评估行中指示将生成的输出对应于规则情形,对于该规则情形由测试情形满足潜在输入的每一个关系。
45.如权利要求25所述的方法,其中
接收包括规则情形的第二集合的第二规则规范,
对于每个测试情形,显示结果行,该结果行指示对于给定的测试情形的输入值由第一或第二规则规范生成的每个输出,以及
响应于与结果行中所指示的输出的用户交互,指示来自第二规则规范的规则情形的输出,指示所指示的规则情形包括:指示来自第一规则规范的规则情形和满足所指示的规则情形的输入关系的规则情形的输出。
46.如权利要求25所述的方法,其中接收测试情形的集合包括:
从用户接收输入值的集合,
将输入值的集合与规则规范的潜在输入值进行匹配,以及
将输入值的集合存储到表的列中。
47.如权利要求46所述的方法,其中对输入值的集合的接收响应于显示潜在的输入值的标识。
48.一种用于测试计算的系统,该系统包括
接收包括规则情形的集合的规则规范的部件,每个规则情形包括潜在输入和对应输出的关系,至少一个规则情形包括由潜在输入的多于一个的集合所满足的关系,
接收测试情形的集合的部件,每个测试情形包含一个或多个潜在输入的值,以及
处理器,被配置为:对每个测试情形,标识对给定的测试情形的输入值将生成输出的规则情形中的一个。
49.一种用于测试计算的计算机程序,其被存储在计算机可读的介质上,该计算机程序包括用于促使计算机进行以下操作的指令:
接收包括规则情形的集合的规则规范,每个规则情形包括潜在输入和对应输出的关系,至少一个规则情形包括由潜在输入的多于一个的集合所满足的关系,
接收测试情形的集合,每个测试情形包含一个或多个潜在输入的值,以及
对于每个测试情形,标识对给定的测试情形的输入值将生成输出的规则情形中的一个。
50.一种用于测试基于图形的计算中的组件的方法,该基于图形的计算中的组件具有由表示数据流的链接元素而连接的数据处理组件,所述组件包括用于基于规则规范变换数据的变换,所述规则规范包括规则情形的集合,每个规则情形包括潜在输入和对应输出的关系,至少一个规则情形包括由潜在输入的多于一个的集合所满足的关系,所述方法包括:
在执行环境中在输入数据的集合上执行基于图形的计算;
登记输入数据以及由对输入数据的集合中的每一项数据的计算而产生的输出;以及
在与执行环境分开的测试环境中,对于所登记的输入数据的集合中的每一项数据,标识对于给定的该项中的输入值将生成所登记的输出的规则情形之一。
51.一种用于测试基于图形的计算中的组件的系统,该基于图形的计算中的组件具有由表示数据流的链接元素而连接的数据处理组件,所述组件包括基于规则规范用于变换数据的变换,所述规则规范包括规则情形的集合,每个规则情形包括潜在输入和对应输出的关系,至少一个规则情形包括由潜在输入的多于一个的集合所满足的关系,所述系统包括:
执行环境,其被配置为:
ix.在输入数据的集合上执行基于图形的计算;以及
x.登记输入数据以及由对输入数据的集合中的每一项数据的计算而产生的输出;以及
与执行环境分开的测试环境,并且其被配置为:对于所登记的输入数据的集合中的每一项数据,标识对于给定的该项中的输入值将生成所登记的输出的规则情形之一。
52.一种计算机程序,其被存储在计算机可读的介质上,用于测试基于图形的计算中的组件,该基于图形的计算中的组件具有由表示数据流的链接元素而连接的数据处理组件,所述组件包括用于基于规则规范变换数据的变换,所述规则规范包括规则情形的集合,每个规则情形包括潜在输入和对应输出的关系,至少一个规则情形包括由潜在输入的多于一个的集合所满足的关系,该计算机程序包括用于促使计算机进行以下操作的指令:
在执行环境,
xi.在输入数据的集合上执行基于图形的计算;以及
xii.登记输入数据以及由对输入数据的集合中的每一项数据的计算而产生的输出;以及
在与执行环境分开的测试环境中,对于所登记的输入数据的集合中的每一项数据,标识对于给定的该项中的输入值将生成所登记的输出的规则情形之一。
53.一种用于指定计算系统中功能组件的行为的方法,包括:
接收包含用于定义规则情形的逻辑表达式的集合的规则规范,由两个或多个逻辑表达式来定义该规则情形中的至少一个,
生成用于基于所述规则规范变换数据的函数,以及
关联所述函数与功能组件。
54.根据权利要求1的方法,还包括
确定一个或多个输出值是否对应于错误条件,以及
在功能组件运行之前,生成向用户报告的错误。
55.根据权利要求54的方法,其中所述错误条件对应于用于不可为空的相应的输出列的空输出值。
CN200880011618A 2007-04-10 2008-03-27 编辑和汇编商业规则 Pending CN101702942A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310126429.0A CN103218229B (zh) 2007-04-10 2008-03-27 管理对数据存储系统中的数据应用的规则的方法和系统

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/733,434 US8069129B2 (en) 2007-04-10 2007-04-10 Editing and compiling business rules
US11/733,434 2007-04-10
PCT/US2008/058360 WO2008124319A1 (en) 2007-04-10 2008-03-27 Editing and compiling business rules

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201310126429.0A Division CN103218229B (zh) 2007-04-10 2008-03-27 管理对数据存储系统中的数据应用的规则的方法和系统

Publications (1)

Publication Number Publication Date
CN101702942A true CN101702942A (zh) 2010-05-05

Family

ID=39535137

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201310126429.0A Active CN103218229B (zh) 2007-04-10 2008-03-27 管理对数据存储系统中的数据应用的规则的方法和系统
CN200880011618A Pending CN101702942A (zh) 2007-04-10 2008-03-27 编辑和汇编商业规则

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201310126429.0A Active CN103218229B (zh) 2007-04-10 2008-03-27 管理对数据存储系统中的数据应用的规则的方法和系统

Country Status (8)

Country Link
US (5) US8069129B2 (zh)
EP (5) EP2521026A1 (zh)
JP (3) JP5444208B2 (zh)
KR (3) KR101560307B1 (zh)
CN (2) CN103218229B (zh)
AU (1) AU2008237503A1 (zh)
CA (4) CA3015741C (zh)
WO (1) WO2008124319A1 (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103069385A (zh) * 2010-06-15 2013-04-24 起元技术有限责任公司 动态加载基于图的计算
CN104919445A (zh) * 2012-12-10 2015-09-16 起元技术有限责任公司 变换生成系统
US9158797B2 (en) 2005-06-27 2015-10-13 Ab Initio Technology Llc Managing metadata for graph-based computations
CN106133675A (zh) * 2013-09-27 2016-11-16 起元科技有限公司 评估应用于数据的规则
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
CN107209763A (zh) * 2014-10-20 2017-09-26 起元科技有限公司 指定和应用数据的规则
US9886319B2 (en) 2009-02-13 2018-02-06 Ab Initio Technology Llc Task managing application for performing tasks based on messages received from a data processing application initiated by the task managing application
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
CN110892375A (zh) * 2017-06-06 2020-03-17 起元技术有限责任公司 用于规则编辑、模拟、版本控制和业务流程管理的集成系统
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
US10901702B2 (en) 2013-12-05 2021-01-26 Ab Initio Technology Llc Managing interfaces for sub-graphs
CN112700758A (zh) * 2021-01-08 2021-04-23 吟飞科技(江苏)有限公司 基于灯光显示的打击乐垫控制器编辑方法
CN112789598A (zh) * 2018-10-10 2021-05-11 茨特里克斯系统公司 提供镜像saas应用程序会话的计算机系统

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7777717B2 (en) * 2006-04-05 2010-08-17 Research In Motion Limited Handheld electronic device and method for performing spell checking during text entry and for integrating the output from such spell checking into the output from disambiguation
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
CA2698265C (en) * 2007-09-20 2017-08-29 Craig W. Stanfill Managing data flows in graph-based computations
US8234155B2 (en) * 2007-11-30 2012-07-31 Sap Ag Method and system incorporating business rules and price optimization for financial system
US20090182689A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Rule-based dynamic operation evaluation
US9449298B2 (en) * 2008-05-13 2016-09-20 Emc Corporation Managing complex dependencies in a file-based team environment
DK2297178T3 (da) * 2008-05-27 2014-09-01 Genzyme Corp Peptidanaloger af alpha-melanocytstimulerende hormon
US9892009B2 (en) * 2008-06-04 2018-02-13 Oracle International Corporation System and method for supporting a sliding window for testing an event processing system
US10102091B2 (en) 2008-06-04 2018-10-16 Oracle International Corporation System and method for supporting a testing framework for an event processing system using multiple input event streams
WO2010002919A1 (en) * 2008-06-30 2010-01-07 Ab Initio Software Llc Data logging in graph-based computations
US20120102421A1 (en) * 2010-10-22 2012-04-26 Bigmachines, Inc. Methods and apparatus for specifying and applying business rules in a product configurator
CN102272752B (zh) 2008-11-12 2015-07-08 起元技术有限责任公司 管理和自动链接数据对象
JP5257016B2 (ja) * 2008-11-21 2013-08-07 富士通株式会社 更新関数検証プログラム,更新関数検証方法及び情報処理装置
WO2010065507A1 (en) * 2008-12-02 2010-06-10 Ab Initio Software Llc Data maintenance system
JP5525541B2 (ja) * 2008-12-02 2014-06-18 アビニシオ テクノロジー エルエルシー データ管理システム内のデータセットのインスタンスのマッピング
US9589066B2 (en) * 2009-01-26 2017-03-07 International Business Machines Corporation System, method, and computer program product for generating a representative view for a multipage compilation of information
AU2015203863C1 (en) * 2009-01-30 2017-03-09 Ab Initio Technology Llc Processing data using vector fields
AU2010208112B2 (en) * 2009-01-30 2015-05-28 Ab Initio Technology Llc Processing data using vector fields
WO2010093933A1 (en) * 2009-02-13 2010-08-19 Ab Initio Technology Llc Communicating with data storage systems
US10102398B2 (en) 2009-06-01 2018-10-16 Ab Initio Technology Llc Generating obfuscated data
KR20150040384A (ko) 2009-06-10 2015-04-14 아브 이니티오 테크놀로지 엘엘시 테스트 데이터의 생성
US8205113B2 (en) * 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
AU2010295547B2 (en) * 2009-09-16 2015-05-07 Ab Initio Technology Llc Mapping dataset elements
US10845962B2 (en) 2009-12-14 2020-11-24 Ab Initio Technology Llc Specifying user interface elements
US20110173591A1 (en) * 2010-01-13 2011-07-14 Target Brands, Inc. Unit Test Generator
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
US8661454B2 (en) * 2010-01-26 2014-02-25 Target Brands, Inc. System and method for receiving and transmitting event information
US8370809B2 (en) * 2010-03-18 2013-02-05 Salesforce.Com, Inc. System, method and computer program product for automated test case generation and scheduling
WO2021099839A1 (en) 2019-11-18 2021-05-27 Roy Mann Collaborative networking systems, methods, and devices
WO2021024040A1 (en) * 2019-08-08 2021-02-11 Mann, Roy Digital processing systems and methods for automatic relationship recognition in tables of collaborative work systems
US11410129B2 (en) 2010-05-01 2022-08-09 Monday.com Ltd. Digital processing systems and methods for two-way syncing with third party applications in collaborative work systems
WO2021161104A1 (en) 2020-02-12 2021-08-19 Monday.Com Enhanced display features in collaborative network systems, methods, and devices
US20110320438A1 (en) * 2010-06-29 2011-12-29 Alcatel-Lucent Canada, Inc. Rule summary
CA2814835C (en) * 2010-10-25 2019-01-08 Ab Initio Technology Llc Managing data set objects in a dataflow graph that represents a computer program
WO2012094496A1 (en) * 2011-01-07 2012-07-12 Ab Initio Technology Llc Flow analysis instrumentation
KR101872748B1 (ko) 2011-01-14 2018-06-29 아브 이니티오 테크놀로지 엘엘시 데이터 콜렉션에 대한 변경 관리 방법
US9116759B2 (en) 2011-02-18 2015-08-25 Ab Initio Technology Llc Restarting data processing systems
US9021299B2 (en) 2011-02-18 2015-04-28 Ab Initio Technology Llc Restarting processes
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
US8805771B2 (en) * 2011-09-19 2014-08-12 International Business Machines Corporation Contextual feedback of rules proximity based upon co-occurence history in a collaborative rule editing system
US20130332241A1 (en) * 2011-09-29 2013-12-12 James Taylor System and Method for Decision-Driven Business Performance Measurement
AU2012340429B2 (en) 2011-11-15 2016-12-01 Ab Initio Technology Llc Data clustering based on candidate queries
JP2015502620A (ja) * 2011-12-21 2015-01-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 矛盾するルールを伴うケースの検出
US9330117B2 (en) * 2012-06-08 2016-05-03 24/7 Customer, Inc. Business rules manager
JP6338579B2 (ja) * 2012-07-24 2018-06-06 アビニシオ テクノロジー エルエルシー データモデルにおけるエンティティのマッピング
US9032362B2 (en) * 2012-09-10 2015-05-12 Sap Se System and method for generating high performance calculators for calculation graphs
US10489360B2 (en) 2012-10-17 2019-11-26 Ab Initio Technology Llc Specifying and applying rules to data
US20140114939A1 (en) * 2012-10-19 2014-04-24 Salesforce.Com, Inc. System, method and computer program product for determining issues between rules
US20140122377A1 (en) * 2012-10-29 2014-05-01 InRule Technology, Inc. System and method for applying a business rule management system to a customer relationship management system
US9575950B2 (en) * 2012-12-11 2017-02-21 Smartorg, Inc. Systems and methods for managing spreadsheet models
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
US8972947B2 (en) * 2013-01-09 2015-03-03 Apple Inc. Data presentation in integrated development environments
US9892026B2 (en) 2013-02-01 2018-02-13 Ab Initio Technology Llc Data records selection
US9811233B2 (en) 2013-02-12 2017-11-07 Ab Initio Technology Llc Building applications for configuring processes
WO2014151789A1 (en) * 2013-03-15 2014-09-25 Trans Union Llc System and method for developing business rules for decision engines
US20150006225A1 (en) * 2013-06-28 2015-01-01 Shreevathsa S Project management application with business rules framework
JP2015011685A (ja) * 2013-07-02 2015-01-19 株式会社プリマジェスト ビジネスルール管理システム及びビジネスルール管理方法
JP6000213B2 (ja) * 2013-09-19 2016-09-28 三菱電機株式会社 コード生成システム、コード生成方法及びコード生成プログラム
WO2015085291A1 (en) 2013-12-06 2015-06-11 Ab Initio Technology Llc Source code translation
EP3084611A1 (en) 2013-12-18 2016-10-26 AB Initio Technology LLC Data generation
US11487732B2 (en) 2014-01-16 2022-11-01 Ab Initio Technology Llc Database key identification
WO2015137641A2 (ko) * 2014-03-11 2015-09-17 (주)이노룰스 계층적인 룰 구조를 가지고 있는 비즈니스 룰 관리 시스템 및 그 표현 방법
US10769122B2 (en) 2014-03-13 2020-09-08 Ab Initio Technology Llc Specifying and applying logical validation rules to data
JP6488317B2 (ja) 2014-03-14 2019-03-20 アビニシオ テクノロジー エルエルシー キー指定される実体の属性のマッピング
US9563845B1 (en) * 2014-06-05 2017-02-07 Amazon Technologies, Inc. Rule evaluation based on precomputed results
EP3191962B1 (en) 2014-07-18 2019-12-11 AB Initio Technology LLC Managing parameter sets
US9996528B2 (en) * 2014-07-24 2018-06-12 Seal Software Ltd. Advanced clause groupings detection
AU2015312006B2 (en) 2014-09-02 2020-03-19 Ab Initio Technology Llc Managing invocation of tasks
CN107077364B (zh) 2014-09-02 2021-06-04 起元科技有限公司 基于特定数据端口连接的识别使用图组件的自动聚类的基于图的程序规范的编译
SG11201701631QA (en) 2014-09-02 2017-03-30 Ab Initio Technology Llc Executing graph-based program specifications
CN106687919B (zh) 2014-09-02 2020-10-09 起元科技有限公司 用于控制多个组件的执行的方法、系统和计算机可读介质
CN106605209B (zh) 2014-09-02 2020-05-12 起元科技有限公司 控制数据处理任务
KR102356771B1 (ko) 2014-09-08 2022-01-27 아브 이니티오 테크놀로지 엘엘시 데이터 구동 테스트 프레임워크
US9626393B2 (en) 2014-09-10 2017-04-18 Ab Initio Technology Llc Conditional validation rules
US11100513B2 (en) 2014-10-10 2021-08-24 Paymation, Inc. Dynamic financial management system, method and device
US10055333B2 (en) 2014-11-05 2018-08-21 Ab Initio Technology Llc Debugging a graph
US10176234B2 (en) * 2014-11-05 2019-01-08 Ab Initio Technology Llc Impact analysis
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
EP3109763A1 (en) * 2015-06-24 2016-12-28 Tata Consultancy Services Limited Method and system for generating functional test cases for software systems
US10007594B2 (en) 2015-07-21 2018-06-26 International Business Machines Corporation Proactive cognitive analysis for inferring test case dependencies
US11720571B2 (en) 2015-08-17 2023-08-08 Comcast Cable Communications, Llc Unified description scheme for controlling and operating network connected devices
US10742739B2 (en) 2015-08-18 2020-08-11 Comcast Cable Communications, Llc Platform for controlling and operating network connected devices
US20170063611A1 (en) * 2015-08-28 2017-03-02 Stringify Inc. User Configuration Mechanism for Internet-of-Things (IOT)
US10127264B1 (en) 2015-09-17 2018-11-13 Ab Initio Technology Llc Techniques for automated data analysis
KR102492871B1 (ko) * 2015-12-15 2023-01-30 삼성전자주식회사 사용자 단말장치, 서버, 및 그 어플리케이션 실행 방법
US20170177446A1 (en) 2015-12-21 2017-06-22 Ab Initio Technology Llc Search and retrieval data processing system for computing near real-time data aggregations
EP3394739B1 (en) 2015-12-21 2020-11-11 AB Initio Technology LLC Sub-graph interface generation
WO2017123849A1 (en) 2016-01-14 2017-07-20 Ab Initio Technology Llc Recoverable stream processing
JP6604892B2 (ja) * 2016-04-08 2019-11-13 株式会社日立製作所 ルールテスト装置およびルールテスト方法
US10929281B1 (en) * 2016-05-20 2021-02-23 Jpmorgan Chase Bank, N.A. Systems and methods for testing of data transformations
KR101919489B1 (ko) * 2016-07-28 2019-02-08 (주)아이티아이즈 신용평가 시스템에서의 룰 매니저 방법 및 시스템, 그리고 이 방법을 실행시키기 위한 프로그램을 저장한 기록매체
US10127144B2 (en) 2016-10-24 2018-11-13 Cisco Technology, Inc. Automated testing of code modules against individually relevant data sets
KR101908556B1 (ko) * 2017-01-03 2018-10-17 (주)비아이매트릭스 갱신 레코드를 자동 추출하는 스프레드시트 기반 데이터베이스 자동 갱신 시스템
US10831509B2 (en) 2017-02-23 2020-11-10 Ab Initio Technology Llc Dynamic execution of parameterized applications for the processing of keyed network data streams
US11947978B2 (en) 2017-02-23 2024-04-02 Ab Initio Technology Llc Dynamic execution of parameterized applications for the processing of keyed network data streams
US10839351B1 (en) * 2017-09-18 2020-11-17 Amazon Technologies, Inc. Automated workflow validation using rule-based output mapping
US11423083B2 (en) 2017-10-27 2022-08-23 Ab Initio Technology Llc Transforming a specification into a persistent computer program
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
GB201804904D0 (en) * 2018-03-27 2018-05-09 Palantir Technologies Inc Code correction
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
US11436359B2 (en) 2018-07-04 2022-09-06 Monday.com Ltd. System and method for managing permissions of users for a single data type column-oriented data structure
US11263533B2 (en) * 2018-07-12 2022-03-01 Sap Portals Israel Ltd. Dynamic configurable rule representation
SG11202012622WA (en) * 2018-07-19 2021-01-28 Ab Initio Technology Llc Publishing to a data warehouse
WO2020243514A1 (en) * 2019-05-31 2020-12-03 Paymation, Inc. A dynamic financial management system, method and device
EP3748518A1 (en) * 2019-06-06 2020-12-09 Siemens Aktiengesellschaft Designing and building an automation system to perform rule-based transformations on complex technical systems
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
US20210065016A1 (en) * 2019-08-27 2021-03-04 Sap Se Automatic generation of computing artifacts for data analysis
CN110632878B (zh) * 2019-10-08 2022-06-28 上海宝阶智能科技有限公司 一种异构嵌入式表格化处理及执行动作流程的方法和装置
US11727323B2 (en) 2019-11-18 2023-08-15 Monday.Com Digital processing systems and methods for dual permission access in tables of collaborative work systems
JP2023511631A (ja) 2020-01-28 2023-03-20 アビニシオ テクノロジー エルエルシー 計算グラフを生成するためのエディタ
US11210285B2 (en) 2020-03-06 2021-12-28 Ab Initio Technology Llc Generation of optimized logic from a schema
IL297858A (en) 2020-05-01 2023-01-01 Monday Com Ltd Digital processing systems and methods for improved networking and collaborative work management systems, methods and devices
US11829953B1 (en) 2020-05-01 2023-11-28 Monday.com Ltd. Digital processing systems and methods for managing sprints using linked electronic boards
US11277361B2 (en) 2020-05-03 2022-03-15 Monday.com Ltd. Digital processing systems and methods for variable hang-time for social layer messages in collaborative work systems
US11221727B1 (en) 2020-09-08 2022-01-11 Avaya Management L.P. Visual interlocking block based programming method and system
US20220138026A1 (en) * 2020-11-04 2022-05-05 International Business Machines Corporation Sharing data structure values between software applications
US11531452B2 (en) 2021-01-14 2022-12-20 Monday.com Ltd. Digital processing systems and methods for group-based document edit tracking in collaborative work systems
US11783269B1 (en) * 2021-02-05 2023-10-10 Palantir Technologies Inc. Systems and methods for rule management
WO2022177904A1 (en) 2021-02-16 2022-08-25 Ab Initio Technology Llc Dynamic execution of parameterized applications for the processing of keyed network data streams
US11954458B2 (en) * 2022-04-26 2024-04-09 Accenture Global Solutions Limited Decision logic translation system and method
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01277939A (ja) 1988-04-30 1989-11-08 Meidensha Corp 推論トレース方式
JPH01296354A (ja) * 1988-05-25 1989-11-29 Hitachi Ltd ルール型推論のデバッグ方式
JPH02275539A (ja) 1989-04-17 1990-11-09 Fuji Xerox Co Ltd デバッグ処理方式
JPH03116330A (ja) * 1989-09-29 1991-05-17 Nippon Telegr & Teleph Corp <Ntt> 表形式知識デバッグ方式
JPH0782439B2 (ja) * 1990-01-26 1995-09-06 インターナショナル・ビジネス・マシーンズ・コーポレイション 推論エンジンの実行監視方法及び装置
JPH04352029A (ja) * 1991-05-29 1992-12-07 Hitachi Ltd ソースプログラム自動生成装置
JPH07334371A (ja) * 1994-06-10 1995-12-22 Fujitsu Ltd 推論装置
US5615359A (en) 1994-06-23 1997-03-25 Candle Distributed Solutions, Inc. Data server with data probes employing predicate tests in rule statements
US5734886A (en) * 1994-11-16 1998-03-31 Lucent Technologies Inc. Database dependency resolution method and system for identifying related data files
US5832497A (en) * 1995-08-10 1998-11-03 Tmp Worldwide Inc. Electronic automated information exchange and management system
US5848393A (en) * 1995-12-15 1998-12-08 Ncr Corporation "What if . . . " function for simulating operations within a task workflow management system
US5966072A (en) * 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
JPH11215127A (ja) * 1998-01-26 1999-08-06 Fujitsu Ltd 交換ネットワークの運用データ作成装置
US6782374B2 (en) * 1998-12-22 2004-08-24 Accenture Global Services Gmbh System, method and article of manufacturing for a runtime program analysis tool for a simulation engine
US6477520B1 (en) * 1999-02-22 2002-11-05 Yatra Corporation Adaptive travel purchasing optimization system
US6728879B1 (en) * 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
JP2001100999A (ja) * 1999-09-30 2001-04-13 Mitsubishi Electric Corp ルールベースシステム
US8332740B2 (en) 2000-01-19 2012-12-11 Graham John D Systems and method for management of intangible assets
JP2001331362A (ja) 2000-03-17 2001-11-30 Sony Corp ファイル変換方法、データ変換装置及びファイル表示システム
JP2001282580A (ja) * 2000-03-28 2001-10-12 Ntt Comware Corp プログラム試験装置、試験用プログラム作成装置、試験用プログラム作成方法及び情報記録媒体
US7215637B1 (en) 2000-04-17 2007-05-08 Juniper Networks, Inc. Systems and methods for processing packets
US6865566B2 (en) 2000-05-09 2005-03-08 Fair Isaac Corporation Approach for re-using business rules
US7164422B1 (en) * 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
JP2002157262A (ja) * 2000-11-20 2002-05-31 Hitachi Ltd 分類ルール定義支援方法
US7020869B2 (en) 2000-12-01 2006-03-28 Corticon Technologies, Inc. Business rules user interface for development of adaptable enterprise applications
US20030120593A1 (en) * 2001-08-15 2003-06-26 Visa U.S.A. Method and system for delivering multiple services electronically to customers via a centralized portal architecture
JP2003099855A (ja) * 2001-09-20 2003-04-04 Mitsubishi Electric Information Systems Corp 会員カード装置、会員カード処理方法、会員カード処理プログラム、及び、会員カード処理プログラムを記録した記録媒体
JP2003208307A (ja) * 2002-01-16 2003-07-25 Hitachi Software Eng Co Ltd ソースプログラム生成システム
US7107285B2 (en) * 2002-03-16 2006-09-12 Questerra Corporation Method, system, and program for an improved enterprise spatial system
US20040008140A1 (en) 2002-04-15 2004-01-15 Sengupta Louise C. Frequency agile, directive beam patch antennas
CA2482956A1 (en) * 2002-04-19 2003-10-30 Computer Associates Think, Inc. System and method for providing inferencing services
US8417678B2 (en) 2002-07-30 2013-04-09 Storediq, Inc. System, method and apparatus for enterprise policy management
AU2003265335A1 (en) 2002-07-30 2004-02-16 Deepfile Corporation Method and apparatus for managing file systems and file-based data storage
US8612404B2 (en) 2002-07-30 2013-12-17 Stored Iq, Inc. Harvesting file system metsdata
EP1543472A2 (en) * 2002-08-09 2005-06-22 Corticon Technologies, Inc. Rule engine
US7676387B2 (en) * 2002-10-31 2010-03-09 Computer Sciences Corporation Graphical display of business rules
US20040085357A1 (en) * 2002-10-31 2004-05-06 Childress Allen B. Method of generating a graphical display of a business rule and associated business rule elements
US20040210661A1 (en) * 2003-01-14 2004-10-21 Thompson Mark Gregory Systems and methods of profiling, matching and optimizing performance of large networks of individuals
JP2004227396A (ja) * 2003-01-24 2004-08-12 Nippon Steel Corp プログラムテスト支援装置、コンピュータプログラム、及びコンピュータ読み取り可能な記憶媒体
EP1629358A4 (en) * 2003-06-04 2009-11-04 Fair Isaac Corp RELATIONAL LOGIC MANAGEMENT SYSTEM
BRPI0412400A (pt) 2003-07-08 2006-09-05 Us Lynx Llc sistema automatizado de publicação que facilita a edição e a responsabilidade colaborativas através de arquitetura de documento virtual
JP2005038253A (ja) 2003-07-16 2005-02-10 Nec Electronics Corp テスト方法、テストシステム、及び、プログラム
WO2005022417A2 (en) 2003-08-27 2005-03-10 Ascential Software Corporation Methods and systems for real time integration services
ATE515746T1 (de) 2003-09-15 2011-07-15 Ab Initio Technology Llc Datenprofilierung
JP2005122509A (ja) * 2003-10-17 2005-05-12 Hitachi Ltd 階層構造データ分析方法、分析装置および分析プログラム
US7631296B2 (en) * 2004-04-30 2009-12-08 Microsoft Corporation Rules framework for definition and execution of end-user rules logic
JP2005321892A (ja) * 2004-05-06 2005-11-17 Nec Corp プログラムテスト支援装置及びプログラムテスト支援方法
US20060112061A1 (en) * 2004-06-24 2006-05-25 Masurkar Vijay B Rule based engines for diagnosing grid-based computing systems
US7899833B2 (en) 2004-11-02 2011-03-01 Ab Initio Technology Llc Managing related data objects
US7426688B2 (en) 2004-11-02 2008-09-16 Hewlett-Packard Development Company, L.P. Embedded spreadsheet commands
US7428520B2 (en) * 2004-11-15 2008-09-23 Becton, Dickinson And Company Graphical user interface for use with open expert system
US7461042B2 (en) 2004-11-17 2008-12-02 Long Jeffrey G Method, system, and program for defining and managing complex contingent rules, and exceptions thereto, in a rule-based computer system
US8468125B2 (en) 2005-04-12 2013-06-18 International Business Machines Corporation Automatically moving multidimensional data between live datacubes of enterprise software systems
US7401061B2 (en) * 2005-06-14 2008-07-15 Lehman Brothers Inc. Attribute engine
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US20070021995A1 (en) * 2005-07-20 2007-01-25 Candemir Toklu Discovering patterns of executions in business processes
CN101291624B (zh) 2005-10-18 2011-10-19 皇家飞利浦电子股份有限公司 用于pet/spect成像的病人扫描时间优化
GB0617449D0 (en) * 2006-09-06 2006-10-18 Ibm An apparatus for providing a visual representation of a sub-set of a visual program
US7836004B2 (en) 2006-12-11 2010-11-16 International Business Machines Corporation Using data mining algorithms including association rules and tree classifications to discover data rules
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
US8595231B2 (en) 2007-04-26 2013-11-26 International Business Machines Corporation Ruleset generation for multiple entities with multiple data values per attribute
US7610294B2 (en) 2007-05-31 2009-10-27 International Business Machines Corporation Multidimensional data cube validation
US8347207B2 (en) 2007-07-16 2013-01-01 International Business Machines Corporation Automatically moving annotations associated with multidimensional data between live datacubes
US8190562B2 (en) 2007-10-31 2012-05-29 Microsoft Corporation Linking framework for information technology management
US8645434B2 (en) 2008-03-18 2014-02-04 Apple Inc. Techniques for schema production and transformation
US8073801B1 (en) * 2008-05-30 2011-12-06 The Decision Model Licensing, LLC Business decision modeling and management system and method
US8429614B2 (en) 2008-06-23 2013-04-23 International Business Machines Corporation Method and apparatus of effective functional test data generation for web service testing
AU2010208112B2 (en) 2009-01-30 2015-05-28 Ab Initio Technology Llc Processing data using vector fields
US8725660B2 (en) 2009-07-30 2014-05-13 Hewlett-Packard Development Company, L.P. Applying non-linear transformation of feature values for training a classifier
US8301413B2 (en) 2009-10-30 2012-10-30 Bank Of America Corporation Testing analytics tool
WO2011053891A2 (en) 2009-10-31 2011-05-05 Rutgers, The State University Of New Jersey Virtual flow pipelining processing architecture
US20110255789A1 (en) 2010-01-15 2011-10-20 Copanion, Inc. Systems and methods for automatically extracting data from electronic documents containing multiple layout features
US8438533B2 (en) 2010-04-26 2013-05-07 Sag Ag Performance-related decision support for compositions of process modeling environments
US9298687B2 (en) 2010-11-29 2016-03-29 Red Hat, Inc. Automatic spreadsheet formula output validation
US20120209800A1 (en) 2011-02-11 2012-08-16 Microsoft Corporation Business rules

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158797B2 (en) 2005-06-27 2015-10-13 Ab Initio Technology Llc Managing metadata for graph-based computations
US9886319B2 (en) 2009-02-13 2018-02-06 Ab Initio Technology Llc Task managing application for performing tasks based on messages received from a data processing application initiated by the task managing application
US10528395B2 (en) 2009-02-13 2020-01-07 Ab Initio Technology Llc Task managing application for performing tasks based on messages received from a data processing application initiated by the task managing application
CN103069385A (zh) * 2010-06-15 2013-04-24 起元技术有限责任公司 动态加载基于图的计算
CN103069385B (zh) * 2010-06-15 2016-12-28 起元技术有限责任公司 用于动态加载基于图的计算的系统和方法
US9753751B2 (en) 2010-06-15 2017-09-05 Ab Initio Technology Llc Dynamically loading graph-based computations
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US10817503B2 (en) 2012-12-10 2020-10-27 Ab Initio Technology Llc System for transform generation
CN104919445A (zh) * 2012-12-10 2015-09-16 起元技术有限责任公司 变换生成系统
CN104919445B (zh) * 2012-12-10 2022-01-11 起元技术有限责任公司 变换生成系统
US10540436B2 (en) 2013-09-27 2020-01-21 Ab Initio Technology Llc Evaluating rules applied to data
CN106133675A (zh) * 2013-09-27 2016-11-16 起元科技有限公司 评估应用于数据的规则
CN106133675B (zh) * 2013-09-27 2019-11-08 起元科技有限公司 评估应用于数据的规则
US10901702B2 (en) 2013-12-05 2021-01-26 Ab Initio Technology Llc Managing interfaces for sub-graphs
CN107209763A (zh) * 2014-10-20 2017-09-26 起元科技有限公司 指定和应用数据的规则
CN107209763B (zh) * 2014-10-20 2021-04-09 起元科技有限公司 指定和应用数据的规则
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
CN110892375A (zh) * 2017-06-06 2020-03-17 起元技术有限责任公司 用于规则编辑、模拟、版本控制和业务流程管理的集成系统
CN110892375B (zh) * 2017-06-06 2024-03-19 起元技术有限责任公司 用于规则编辑、模拟、版本控制和业务流程管理的系统
CN112789598A (zh) * 2018-10-10 2021-05-11 茨特里克斯系统公司 提供镜像saas应用程序会话的计算机系统
CN112700758A (zh) * 2021-01-08 2021-04-23 吟飞科技(江苏)有限公司 基于灯光显示的打击乐垫控制器编辑方法

Also Published As

Publication number Publication date
US20120066549A1 (en) 2012-03-15
CA3070176A1 (en) 2008-10-16
US9589232B2 (en) 2017-03-07
EP3454205A1 (en) 2019-03-13
US20120059784A1 (en) 2012-03-08
EP2958016A1 (en) 2015-12-23
KR101560307B1 (ko) 2015-10-14
CA3015741A1 (en) 2008-10-16
CN103218229B (zh) 2018-06-08
WO2008124319A1 (en) 2008-10-16
CA2679990A1 (en) 2008-10-16
CA3070176C (en) 2022-07-19
KR20130055683A (ko) 2013-05-28
CA2868236A1 (en) 2008-10-16
KR101738651B1 (ko) 2017-05-22
US8380651B2 (en) 2013-02-19
JP2010524134A (ja) 2010-07-15
US9002770B2 (en) 2015-04-07
CN103218229A (zh) 2013-07-24
US8386408B2 (en) 2013-02-26
US20130007584A1 (en) 2013-01-03
CA2679990C (en) 2018-10-16
JP2014059891A (ja) 2014-04-03
JP6216757B2 (ja) 2017-10-18
JP2016029582A (ja) 2016-03-03
EP2958016B1 (en) 2020-10-14
KR20170003723A (ko) 2017-01-09
EP2135160A1 (en) 2009-12-23
EP2138934A1 (en) 2009-12-30
KR20100015478A (ko) 2010-02-12
JP5444208B2 (ja) 2014-03-19
KR101864673B1 (ko) 2018-06-05
CA2868236C (en) 2023-05-23
EP3454205B1 (en) 2021-05-05
EP2521026A1 (en) 2012-11-07
JP5827296B2 (ja) 2015-12-02
US8069129B2 (en) 2011-11-29
CA3015741C (en) 2023-05-02
AU2008237503A1 (en) 2008-10-16
US20150213366A1 (en) 2015-07-30
US20080256014A1 (en) 2008-10-16

Similar Documents

Publication Publication Date Title
CN101702942A (zh) 编辑和汇编商业规则
CN102138139B (zh) 基于图的计算中的数据日志记录
CN107135663A (zh) 影响分析
AU2021201067B2 (en) Editing and compiling business rules
AU2016202201B2 (en) Editing and compiling business rules

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20100505