Nova Patents
CA2889884C

System for transform generation

Abstract

This specification describes technologies relating to generating transforms based on rule sets. In general, one aspect described in this specification can be embodied in methods that include receiving a rule set including execution cases, where at least one execution case in the rule set includes one or more trigger conditions and a specification of an output that is to be generated when the one or more trigger conditions are all satisfied. The methods may further include generating a control structure including a sequence of rows corresponding to one or more execution cases in the rule set. Each row may include a sequence of one or more trigger conditions and information specifying the output for a corresponding execution case. For at least one of the trigger conditions, when the trigger condition is failed, the control structure may direct processing to skip at least one row in the sequence of rows.

CA2889884C, drawing sheet 1
Sheet 1 of 11

Term

7.2 yearsleft in the term

Expires 9 December 2033.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

60 claims: 44 independent, 16 dependent

  1. 1
    A method, performed by one or more data processing apparatus, for encoding a rule set for transforming data, including:receiving a rule set including a sequence of execution cases, at least one execution case in the sequence of the execution cases including one or more trigger conditions and a specification of an output that is to be generated when the one or more trigger conditions are all satisfied;generating a control structure including a sequence of rows corresponding to one or more execution cases in the rule set, each row including: a sequence of one or more trigger conditions and information specifying the output for a corresponding execution case, wherein the generated control structure is configured to direct processing to continue at a different row when one of the trigger conditions is failed and wherein the generated control structure is configured such that,, for at least one of the trigger conditions in the control structure, when the at least one of the trigger conditions is failed, the control structure will direct processing to skip at least one remaining row in the sequence of rows that has the failed trigger condition;and storing or transmitting the control structure.
  2. 4
    The method of any one of claims 1 to 3, in which the sequence of trigger conditions in a row is a sequence of portions of code that each direct processing to a trigger condition in a list of unique trigger conditions from the rule set
  3. 5
    The method of any one of claims 1 to 4, in which the information specifying the output in a row is a portion of code that directs processing to an output expression in a list of unique outputs from the rule set.
  4. 6
    The method of any one of claims 1 to 5, further including:sorting 1he sequence of trigger conditions for a row based on a different row to which processing will be directed when a trigger condition in the sequence fails during processing of data.
  5. 7
    The method of any one of claims 1 to 5, further including:sorting the sequence of trigger conditions for a row based on execution times for the trigger conditions.
  6. 9
    The method of any one of claims 1 to 5, further including:sorting the sequence of trigger conditions for a row based on failure rates for the trigger conditions.
  7. 11
    The method of any one of claims 1 to 10, wherein a row of the control structure further includes a portion of code that directs processing to a different row of Ihe control structure that is to be processed next when all of the trigger conditions for the row are satisfied.
  8. 12
    The method of any one of claims 1 to 11, wherein the rule set is specified through a graphical user interface.
  9. 13
    The method of any one of claims 1 to 12, wherein at least two trigger conditions for an execution case in the rule set are combined and represented by a single trigger condition in the control structure.
  10. 14
    The method of any one of claims 1 to 13, wherein at least two outputs for different execution cases in the rule set are combined and represented by a single output expression in a row of the control structure.
  11. 15
    The method of any one of claims 1 to 14, wherein the control structure is an acyclic directed graph with nodes corresponding to the trigger conditions and output expressions in the rows of the control structure.
  12. 16
    A computer-readable medium storing software for encoding a rule set for transforming data, the software including executable instructions for causing a computing system to:-40CA 2889884 2020-01-27 81787819 receive a rule set including a sequence of execution cases, at least one execution, case in the sequence of the execution cases including one or more trigger conditions and a specification of an output that is to be generated when the one or more trigger conditions are all satisfied;generate a control structure including a sequence of rows corresponding to one or more execution cases in the rule set, each row including: a sequence of one or more trigger conditions and infonnation specifying the output for a corresponding execution case, wherein the generated control structure is configured to, during future processing to transform input data, direct processing to continue at a different row when one of the trigger conditions is failed and wherein the generated control structure is configured such that, for at least one of the trigger conditions in the control structure, when the at least one of the trigger conditions is foiled, the control structure will direct processing to skip at least one remaining row in the sequence of rows that has the failed trigger condition;and store or transmit the control structure.
  13. 19
    The medium of any one of claims 16 to 18, in which the sequence of trigger conditions in a row is a sequence of portions of code that each direct processing to a trigger condition in a list of unique trigger conditions from the rule set. -41 CA 2889884 2020-01-27 81787819
  14. 20
    The medium of any one of claims 16 to 19, in which the information specifying the output in a row is a portion of code that directs processing to an output expression in a list of unique outputs from the rule set
  15. 21
    The medium of any one of claims 16 to 20, including instructions for causing a computing system to:sort the sequence of trigger conditions for a row based on a different row to which processing will be directed when a trigger condition in the sequence fails during processing of data
  16. 22
    The medium of any one of claims 16 to 20, including instructions for causing a computing system to:sort the sequence of trigger conditions for a row based on execution times for the trigger conditions.
  17. 24
    The medium of any one of claims 16 to 23, including instructions for causing a computing system to:sort the sequence of trigger conditions for a row based on failure rates for the trigger conditions. -42CA 2889884 2020-01-27 81787819
  18. 26
    The medium of any one of claims 16 to 25, wherein a row of the control structure further includes a portion of code that directs processing to a different row of the control structure that is to be processed next when all of the trigger conditions for the row are satisfied.
  19. 27
    The medium of any one of claims 16 to 26, wherein the rule set is specified through a graphical user interface.
  20. 28
    The medium of any one of claims 16 to 27, wherein at least two trigger 20 conditions for an execution case in the rule set are combined and represented by a single trigger condition in the control structure.
  21. 29
    The medium of any one of claims 16 to 28, wherein at least two outputs for different execution cases in the rule set are combined and represented by a single output 25 expression in a row of the control structure.
  22. 30
    The medium of any one of claims 16 to 29, wherein the control structure is an acyclic directed graph with nodes corresponding to the trigger conditions and output expressions in the rows of the control structure. -43CA 2889884 2020-01-27 81787819
  23. 31
    A computing system for encoding a rule set for transforming data, the computing system including:an input device or port configured to receive a rule set including a sequence of execution cases, at least one execution case in the sequence of the execution cases including one or more trigger conditions and a specification of an output that is to be generated when the one or more trigger conditions are all satisfied;and at least one processor configured to perform operations, the operations including generating a control structure including a sequence of rows corresponding to one or more execution cases in the rule set, each row including: a sequence of one or more trigger conditions and information specifying the output for a corresponding execution case, wherein the generated control structure is configured to, during future processing to transform input data, direct processing to continue at a different row when one of the trigger conditions is failed and wherein the generated control structure is configured such that, for at least one of the trigger conditions in the control structure, when the at least one of the trigger conditions is foiled, the control structure will direct processing to skip at least one remaining row in the sequence of rows that has the failed trigger condition;and an output device or port configured to transmit the control structure.
  24. 34
    The system of any one of claims 31 to 33, in which the sequence of trigger conditions in a row is a sequence of portions of code that each direct processing to a trigger condition in a list of unique trigger conditions from the rule set.
  25. 35
    The system of any one of claims 31 to 34, in which the information specifying the output in a row is a portion of code that directs processing to an output expression in a list of unique outputs from the rule set
  26. 36
    The system of any one of claims 31 to 35, in which the operations further include:sorting the sequence of trigger conditions for a row based on a different row to which processing will be directed when a trigger condition in the sequence fails during processing of data.
  27. 37
    The system of any one of claims 31 to 35, in which the operations further include:sorting the sequence of trigger conditions for a row based on execution times for the trigger conditions.
  28. 39
    The system of any one of claims 31 to 35, in which the operations further include:-45CA 2889884 2020-01-27 81787819 sorting the sequence of trigger conditions for a row based on failure rates for the trigger conditions.
  29. 41
    The system of any one of claims 31 to 40, wherein a row of the control structure further includes a portion of code that directs processing to a different row of the control structure that is to be processed next when all of the trigger conditions for the row are satisfied.
  30. 42
    The system of any one of claims 31 to 41, wherein the rule set is specified through a graphical user interface.
  31. 43
    The system of any one of claims 31 to 42, wherein at least two trigger conditions for an execution case in the rule set are combined and represented by a single trigger condition in the control structure.
  32. 44
    The system of any one of claims 31 to 43, wherein at least two outputs for different execution cases in the rule set are combined and represented by a single output expression in a row of the control structure.
  33. 45
    The system of any one of claims 31 to 44, wherein the control structure is an acyclic directed graph with nodes corresponding to the trigger conditions and output expressions in the rows of the control structure. -46CA 2889884 2020-01-27 81787819
  34. 46
    A computing system for encoding a rule set for transforming data, the computing system including:an input device or port configured to receive a rule set including a sequence of execution cases, at least one execution case in the sequence of the execution cases including one or more trigger conditions and a specification of an output that is to be generated when the one or more trigger conditions are all satisfied;means for generating a control structure including a sequence of rows corresponding to one or more execution cases in the rule set, each row including: a sequence of one or more trigger conditions and information specifying the output for a corresponding execution case, wherein the generated control structure is configured to, during future processing to transform input data, direct processing to continue at a different row when one of the trigger conditions is failed and wherein the generated control structure is configured such that, for at least one of the trigger conditions in the control structure, when 1he at least one of the trigger conditions is failed, the control structure will direct processing to skip at least one remaining row in the sequence of rows that has the failed trigger condition;and a data storage system configured to store the control structure.
  35. 49
    The system of any one of claims 46 to 48, in which the sequence of trigger conditions in a row is a sequence of portions of code that each direct processing to a trigger condition in a list of unique trigger conditions from the rule set
  36. 50
    The system of any one of claims 46 to 49, in which the information specifying the output in a row is a portion of code that directs processing to an output expression in a list of unique outputs from the rule set.
  37. 51
    The system of any one of claims 46 to 50, including:means for sorting the sequence of trigger conditions for a row based on a different row to which processing will be directed when a trigger condition in the sequence fails during processing of data.
  38. 52
    The system of any one of claims 46 to 50, including:means for sorting the sequence of trigger conditions for a row based on execution times for the trigger conditions.
  39. 54
    The system of any one of claims 46 to 50, including:means for sorting the sequence of trigger conditions for a row based on failure rates for the trigger conditions. -48CA 2889884 2020-01-27 81787819
  40. 56
    The system of any one of claims 46 to 55, wherein a row of the control structure further includes a portion of code that directs processing to a different row of the control structure that is to be processed next when all of the trigger conditions for the row are satisfied.
  41. 57
    The system of any one of claims 46 to 56, wherein the rule set is specified through a graphical user interface.
  42. 58
    The system of any one of claims 46 to 57, wherein at least two trigger conditions for an execution case in the rule set are combined and represented by a single trigger condition in the control structure.
  43. 59
    The system of any one of claims 46 to 58, wherein at least two outputs for different execution cases in the rule set are combined and represented by a single output expression in a row of the control structure.
  44. 60
    The system of any one of claims 46 to 59, wherein the control structure is an acyclic directed graph with nodes corresponding to the trigger conditions and output expressions in the rows of the control structure.
Independent claims44