IP Library Granted Patent US 8,069,129
Granted Patent B2
US 8,069,129 · App. 11/733,434 · Granted Nov 29, 2011

Editing and compiling business rules

Assignee: Ab Initio Technology LLC
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,069,129
App. No.
11/733,434
Granted
Nov 29, 2011
Kind
B2
Abstract

A component in a graph-based computation having data processing components connected by linking elements representing data flows is updated by receiving a rule specification, generating a transform for transforming data based on the rule specification, associating the transform with a component in the graph-based computation, and in response to determining that a new rule specification has been received or an existing rule specification has been edited, updating the transform associated with the component in the graph-based computation according to the new or edited rule specification. A computation is tested by receiving a rule specification including a set of rule cases, receiving a set of test cases, each test case containing a value for one or more of the potential inputs, and for each test case, identifying one of the rule cases that will generate an output given the input values of the test case.

Claims (117)

1. A method for specifying the behavior of a functional component in a computation system, including:

providing a user interface for creating a table having at least one input column and at least one output column, wherein each input column is associated with an input variable and each output column is associated with an output variable;

in at least one row of the table,

receiving one or more conditions on input values in respective input columns, the conditions in the at least one row identifying more than one set of potential values of the input variables, and

receiving one or more output values in respective output columns,

thereby defining a rule case of a rule specification;

generating a function for transforming data based on the rule specification;

associating the function with the functional component;

receiving a test table including a set of test columns, each test column containing a value for one or more of the input variables;

for each test column, identifying a row of the rule specification that will generate an output given the input values of the test column; and

outputting to a user the identification of the identified row for each test column.

2. The method of claim 1 in which the one or more conditions on input values include one or more of: having a value equal to a threshold, having a value above a threshold, having a value below a threshold, having a value belonging to a set of values, having a value matching a pattern, having a relationship to a value of another input, having a relationship to a value of an output of another rule specification, or having a relationship to a value in a memory.

3. The method of claim 1 in which the one or more output values include one or more or a combination of values of the inputs, a pre-determined value, or a value computed from one or more of the values of the inputs.

4. The method of claim 1 also including

generating a results table including a results row for each test column, each results row indicating an output that will be generated given the input values of the test column.

5. The method of claim 4 also including, in each results row, indicating whether the output that will be generated is changed from an output that was indicated for a previous version of the rule specification.

6. The method of claim 4 also including, in response to a user interaction with a results row, indicating which row of the rule specification will generate the output in that results row.

7. The method of claim 4 also including

generating an evaluation table including an evaluation row corresponding to each row of the rule specification,

in each evaluation row of the table, for each potential input, indicating whether the value in a first test column for that potential input satisfied the relationship for that potential input, and

in an evaluation row corresponding to the row of the rule specification that will generate an output given the input values of the first test column, indicating the output that will be generated.

8. The method of claim 7 in which the evaluation rows have an order corresponding to an order of the rows of the rule specification, and the evaluation row in which the output is indicated corresponds to the first row of the rule specification for which each of the relationships for the potential inputs is satisfied.

9. The method of claim 7 also including indicating an output that will be generated in each evaluation row corresponding to a row of the rule specification for which each of the relationships for the potential inputs is satisfied.

10. The method of claim 4 also including

generating an evaluation table including an evaluation row corresponding to each row of the rule specification, and

in each evaluation row, indicating how many test columns have inputs that satisfy the relationships in the corresponding row of the rule specification.

11. The method of claim 4 in which each test column also contains an expected output value, the method also including

each results row indicating whether the output that will be generated given the input values of the corresponding test column match the expected output in that test column.

12. The method of claim 1 also including

generating a table including a results row for each test column, each results row indicating each output generated by a row in one of the rule specifications given the input values of the test column.

13. The method of claim 1 also including

for an output that will be generated given the input values of a first test column, generating a graphical display of interrelationships between inputs and outputs of rule specifications that will result in the generation of that output.

14. The method of claim 1 in which receiving the table of test columns includes

receiving from a user a set of input values,

matching the set of input values to the potential input values of the rule specification, and

storing the set of input values to a column of the table.

15. The method of claim 14 in which the receiving of a set of input values is in response to displaying identifications of the potential input values.

16. The method of claim 1 also including

in response to determining that each rule specification in a set of rule specifications will generate at least one output, determining that the set of rule specifications is valid.

17. The method of claim 1 in which generating the function includes

converting each of a plurality of rule cases in the rule specification to a logical expression to form a plurality of logical expressions, and

compiling the plurality of logical expressions into computer-executable code.

18. The method of claim 17 in which compiling the plurality of logical expressions includes one or more of combining expressions, optimizing individual expressions, and optimizing groups of expressions.

19. The method of claim 17 in which compiling the plurality of logical expressions includes associating the expressions with components suitable for use in the computation.

20. The method of claim 1 also including

determining whether the one or more output values correspond to an error condition, and

generating an error for reporting to a user before the functional component is run.

21. The method of claim 20 in which the error condition corresponds to a null output value for a respective output column that is not nullable.

22. A system, for specifying the behavior of a functional component in a computation system, the system including:

means for providing a user interface for creating a table having at least one input column and at least one output column, wherein each input column is associated with an input variable and each output column, is associated with an output variable;

the user interface receiving, in at least one row of the table,

one or more conditions on input values in respective input columns, the conditions in the at least one row identifying more than one set of potential values of the input variables, and

one or more output values in respective output columns,

thereby defining a rule case of a rule specification,

a processor configured to

generate a function for transforming data based on the rule specification,

associate the function with the functional component,

receive a test table including a set of test columns, each test column containing a value for one or more of the input variables,

for each test column, identify a row of the rule specification that will generate an output given the input values of the test column, and

output to a user the identification of the identified row for each test column.

23. The system of claim 22 , the processor further configured to

generate a results table including a results row for each test column, each results row indicating an output that will be generated given the input values of the test column.

24. The system of claim 23 , the processor further configured to

generate an evaluation table including an evaluation row corresponding to each row of the rule specification,

in each evaluation row of the table, for each potential input, indicate whether the value in a first test column for that potential input satisfied the relationship for that potential input, and

in an evaluation row corresponding to the row of the rule specification that will generate an output given the input values of the first test column, indicate the output that will be generated.

25. The system of claim 24 in which the evaluation rows have an order corresponding to an order of the rows of the rule specification, and the evaluation row in which the output is indicated corresponds to the first row of the rule specification for which each of the relationships for the potential inputs is satisfied.

26. The system of claim 24 , the processor further configured to indicate an output that will be generated in each evaluation row corresponding to a row of the rule specification for which each of the relationships for the potential inputs is satisfied.

27. The system of claim 23 , the processor further configured to

generate an evaluation table including an evaluation row corresponding to each row of the rule specification, and

in each evaluation row, indicate how many test columns have inputs that satisfy the relationships in the corresponding row of the rule specification.

28. The system of claim 23 in which each test column also contains an expected output value, each results row indicating whether the output that will be generated given the input values of the corresponding test column match the expected output in that test column.

29. The system of claim 22 , the processor further configured to

generate a table including a results row for each test column, each results row indicating each output generated by a row in one of the rule specifications given the input values of the test column.

30. The system of claim 22 , the processor further configured to,

for an output that will be generated given the input values of a first test column, generate a graphical display of interrelationships between inputs and outputs of rule specifications that will result in the generation of that output.

31. The system of claim 22 in which receiving the table of test columns includes

receiving from a user a set of input values,

matching the set of input values to the potential input values of the rule specification, and

storing the set of input values to a column of the table.

32. The system of claim 22 in which generating the function includes

converting each of a plurality of rule cases in the rule specification to a logical expression to form a plurality of logical expressions, and

compiling the plurality of logical expressions into computer-executable code.

33. A computer program, stored on a storage medium, specifying the behavior of a functional component in a computation system, the computer program including instructions for causing a computer to:

provide a user interface for creating a table having at least one input column the conditions in the at least one row identifying more than one set of potential values of the input variables, and at least one output column, wherein each input column is associated with an input variable and each output column, is associated with an output variable;

receive, in at least one row of the table,

one or more conditions on input values in respective input columns, the conditions in the at least one row identifying more than one set of potential values of the input variables,

and receive one or more output values in respective output columns,

thereby defining a rule case of a rule specification,

generate a function for transforming data based on the rule specification,

associate the function with the functional component,

receive a test table including a set of test columns, each test column containing a value for one or more of the input variables,

for each test column, identify a row of the rule specification that will generate an output given the input values of the test column, and

output to a user the identification of the identified row for each test column.

34. The computer program of claim 33 , further including instructions for causing a computer to

generate a results table including a results row for each test column, each results row indicating an output that will be generated given the input values of the test column.

35. The computer program of claim 34 , further including instructions for causing a computer to

generate an evaluation table including an evaluation row corresponding to each row of the rule specification,

in each evaluation row of the table, for each potential input, indicate whether the value in a first test column for that potential input satisfied the relationship for that potential input, and

in an evaluation row corresponding to the row of the rule specification that will generate an output given the input values of the first test column, indicate the output that will be generated.

36. The computer program of claim 35 in which the evaluation rows have an order corresponding to an order of the rows of the rule specification, and the evaluation row in which the output is indicated corresponds to the first row of the rule specification for which each of the relationships for the potential inputs is satisfied.

37. The computer program of claim 35 , further including instructions for causing a computer to indicate an output that will be generated in each evaluation row corresponding to a row of the rule specification for which each of the relationships for the potential inputs is satisfied.

38. The computer program of claim 34 , further including instructions for causing a computer to

generate an evaluation table including an evaluation row corresponding to each row of the rule specification, and

in each evaluation row, indicate how many test columns have inputs that satisfy the relationships in the corresponding row of the rule specification.

39. The computer program of claim 34 in which each test column also contains an expected output value, each results row indicating whether the output that will be generated given the input values of the corresponding test column match the expected output in that test column.

40. The computer program of claim 33 , further including instructions for causing a computer to

generate a table including a results row for each test column, each results row indicating each output generated by a row in one of the rule specifications given the input values of the test column.

41. The computer program of claim 33 , further including instructions for causing a computer to,

for an output that will be generated given the input values of a first test column, generate a graphical display of interrelationships between inputs and outputs of rule specifications that will result in the generation of that output.

42. The computer program of claim 33 in which receiving the table of test columns includes

receiving from a user a set of input values,

matching the set of input values to the potential input values of the rule specification, and

storing the set of input values to a column of the table.

43. The computer program of claim 33 in which generating the function includes

converting each of a plurality of rule cases in the rule specification to a logical expression to form a plurality of logical expressions, and

compiling the plurality of logical expressions into computer-executable code.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2009
From: AB INITIO SOFTWARE LLC
To: ARCHITECTURE LLC
Reel/Frame 022460/0496 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2009
From: ARCHITECTURE LLC
To: AB INITIO TECHNOLOGY LLC
Reel/Frame 022460/0546 →
CHANGE OF NAME Recorded Feb 23, 2009
From: AB INITIO SOFTWARE CORPORATION
To: AB INITIO SOFTWARE LLC
Reel/Frame 022288/0828 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2007
From: GOULD, JOEL; WHOLEY, III, JOSEPH SKEFFINGTON; PERKINS, TIMOTHY
To: AB INITIO SOFTWARE CORPORATION
Reel/Frame 020202/0896 →
Continuity (1)
Related Publication 20080256014A1 · Oct 16, 2008