DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This Office Action is in response to amendments filed on June 25, 2026.
Claims 1-20 are pending.
Claims 1-2, 4-5, 9-10 and 17-18 have been amended.
Response to Amendment
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(d):
(d) REFERENCE IN DEPENDENT FORMS.—Subject to subsection (e), a claim in dependent form shall contain a reference to a claim previously set forth and then specify a further limitation of the subject matter claimed. A claim in dependent form shall be construed to incorporate by reference all the limitations of the claim to which it refers.
The following is a quotation of pre-AIA 35 U.S.C. 112, fourth paragraph:
Subject to the following paragraph [i.e., the fifth paragraph of pre-AIA 35 U.S.C. 112], a claim in dependent form shall contain a reference to a claim previously set forth and then specify a further limitation of the subject matter claimed. A claim in dependent form shall be construed to incorporate by reference all the limitations of the claim to which it refers.
Claims 4 and 18 are rejected under 35 U.S.C. 112(d) or pre-AIA 35 U.S.C. 112, 4th paragraph, as being of improper dependent form for failing to further limit the subject matter of the claim upon which it depends, or for failing to include all the limitations of the claim upon which it depends. Claims 4 and 18 state "remove the one or more processing rules from the data file to generate the updated data file" which does not further limit claims 1 and 17 respectively. Claims 1 and 17 already state that the "generation of the updated data file comprises removal of the one or more processing rules". Applicant may cancel the claim(s), amend the claim(s) to place the claim(s) in proper dependent form, rewrite the claim(s) in independent form, or present a sufficient showing that the dependent claim(s) complies with the statutory requirements.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-4, 6 and 17-19 are rejected under 35 U.S.C. 103 as being unpatentable over Chikkala et al. (US 2021/0200665) in view of Chintagunta et al. (US 2020/0159622) and in further view of Kidron et al. (US 2015/0262128).
With respect to Claim 1, Chikkala et al. disclose:
one or more memories; (see Figure 5; memory 514)
and one or more processors, communicatively coupled to the one or more memories, configured to: (see Figure 5; processor 512)
receive a data file including a set of processing rules for processing a dataset (rules 124 (data file) may correspond to business rules or decision-making rules and expressions for service provider server 110 that provide deterministic outcomes or outputs based on the input for variables of attributes 126 that make up rules 124. Thus, one of rules 124 may be associated with a risk practice, a business practice, an online marketplace platform, a benefit conferrable to users of the service provider system, an advertising strategy, or a promotional program (a set of processing rules for processing a dataset). Each one of rules 124 provides a specific decision based on the input for a user, account, transaction, or other available input data. For example, one of rules 124 may provide a product, an advertisement, a benefit, a risk evaluation, a loan or credit determination, an account establishment determination, an authentication process, or other outcome provided by the services of service provider server 130 (a set of processing rules for processing a dataset), Paragraph 24; a rule for testing in a transaction processor system is received (data file), Paragraph 54)
extract a set of conditional variables from the set of processing rules included in the data file; (variables and a Boolean expression for a rule are determined, which may correspond to the coded expression for the rule that provides an outcome or output based on input data for each of the variables that make up the Boolean expression. Each of these variables is associated with a particular logical statement or Boolean condition that evaluates to be TRUE or FALSE depending on the input data for the variable (e.g., an integer, a specific value, a denomination type, a country of residence, a transaction type or class, etc.) (set of conditional variables), Paragraph 55)
determine a set of possible values for the set of conditional variables; (all of the other variables in the Boolean expression have their values set so that the selected variable is the output of the Boolean expression (determine a set of possible values). In this regard, when a variable is selected, that variable becomes the determining reference variable for the Boolean expression. Therefore, that variable should now be the determining factor of whether the Boolean expression evaluates to be TRUE of FALSE, Paragraphs 56-57)
generate a set of test cases, wherein a test case, of the set of test cases, represents a combination of a plurality of values, of the set of possible values, for the set of conditional variables; (all of the other variables in the Boolean expression have their values set so that the selected variable is the output of the Boolean expression (combination of a plurality of values). In this regard, when a variable is selected, that variable becomes the determining reference variable for the Boolean expression. Therefore, that variable should now be the determining factor of whether the Boolean expression evaluates to be TRUE of FALSE (generating a set of test cases), Paragraphs 56-57)
evaluate, using the set of test cases, the set of processing rules to identify one or more error cases associated with one or more processing rules of the set of processing rules; (a test result is generated for the variable and the values of the other variables. This allows a tester of the rule to view the outcome of a particular variable for the rule and whether that variable is properly functioning within the rule with the other variables (e.g., based on the desired outcome of the rule) (error case if the rule is not properly functioning) , Paragraph 58)
transmit information identifying the one or more processing rules, (This allows a tester of the rule to view the outcome of a particular variable for the rule and whether that variable is properly functioning within the rule with the other variables (e.g., based on the desired outcome of the rule), Paragraph 58)
Chikkala et al. do not disclose:
wherein the one or more processing rules include a first processing rule that is only triggered when a second processing rule is triggered;
generate an updated data file that includes a reduced amount of data relative to the data file, wherein generation of the updated data file comprises removal of the one or more processing rules;
and transmit the updated data file.
However, Chintagunta et al. disclose:
generate an updated data file that includes a reduced amount of data relative to the data file, wherein generation of the updated data file comprises removal of the one or more processing rules (removing rules from a configuration file (data file) to generated a modified configuration file (updated data file), Paragraph 32; removing rules from a file inherently means there is less data in the file)
and transmit the updated data file. (see Figure 2; utilizing (transmit) the modified configuration file by the software application, Paragraph 46)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Chintagunta et al. into the teaching of Chikkala et al. to include generating an updated data file that includes a reduced amount of data relative to the data file, wherein generation of the updated data file comprises removal of the one or more processing rules and transmitting the updated data file in order to allow a software application to continue executing after encountering a failure. (Chintagunta et al., Abstract, lines 5-10)
Chikkala et al. and Chintagunta et al. do not disclose:
wherein the one or more processing rules include a first processing rule that is only triggered when a second processing rule is triggered
However, Kidron et al. disclose:
wherein the one or more processing rules include a first processing rule that is only triggered when a second processing rule is triggered (Alternatively or in addition, in some examples, causing a display of the business rule can include causing a display of a dependency of the business rule on another business rule. In some examples, such a dependency can be displayed as textual language. For example, "action Y needs to be performed prior to performing action X"., Paragraph 18)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Kidron et al. into the teaching of Chikkala et al. and Chintagunta et al. to include wherein the one or more processing rules include a first processing rule that is only triggered when a second processing rule is triggered in order to be able to create dependencies between different business rules and/or ensure that business rules are executed in a particular order.
With respect to Claim 2, all the limitations of Claim 1 have been addressed above; and Chikkala et al. further disclose:
wherein the one or more processors, to evaluate the set of processing rules, are configured to:
insert, for a particular test case of the set of test cases, a particular set of values associated with the particular test case; (all of the other variables in the Boolean expression have their values set so that the selected variable is the output of the Boolean expression (combination of a plurality of values). In this regard, when a variable is selected, that variable becomes the determining reference variable for the Boolean expression. Therefore, that variable should now be the determining factor of whether the Boolean expression evaluates to be TRUE of FALSE (generating a set of test cases), Paragraphs 56-57)
identify, for the set of processing rules, a subset of processing rules for which the
particular set of values are applicable; (a rule (subset of processing rules) for testing in a transaction processor system is received. The rule corresponds to some coded expression that evaluates to provide a specific output based on the input data from the system. This input data (particular set of values are applicable) may depend on the application, process, or operation utilizing the rule, as well as the specific input scenario (e.g., a user, item, and merchant within a transaction for electronic processing. For example, a rule may assert whether a transaction is allowed to be processed based on correct input data (e.g., credit card, amount, shipping/billing address, etc.), Paragraph 54)
and store, for the subset of processing rules, an indicator that the particular test case included the particular set of values is applicable to the subset of processing rules. (Thereafter, at step 412, the rule testing operation iterates through all other variables testing in a similar manner to generate (store) a full set of test results (indicator). This allows a tester of the rule to view the outcome of a particular variable for the rule and whether that variable is properly functioning within the rule with the other variables (e.g., based on the desired outcome of the rule)., Paragraph 58)
With respect to Claim 3, all the limitations of Claim 1 have been addressed above; and Chikkala et al. further disclose:
wherein the one or more processors, to evaluate the set of processing rules, are configured to:
detect an error case, of the one or more error cases, based on a quantity of instances of a particular processing rule, of the one or more processing rules, being executed satisfying a threshold. (a test result (quantity of instances of a particular processing rule) is generated for the variable and the values of the other variables. This allows a tester of the rule to view the outcome of a particular variable for the rule and whether that variable is properly functioning within the rule with the other variables (e.g., based on the desired outcome of the rule), Paragraph 58)
With respect to Claim 4, all the limitations of Claim 1 have been addressed above; and Chikkala et al. and Kidron et al. do not disclose:
wherein the one or more processors, to generate the updated data file, are configured to:
remove the one or more processing rules from the data file to generate the updated data file.
However, Chintagunta et al. disclose:
wherein the one or more processors, to generate the updated data file, are configured to:
remove the one or more processing rules from the data file to generate the updated data file. (removing rules from a configuration file (data file) to generated a modified configuration file, Paragraph 32)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Chintagunta et al. into the teaching of Chikkala et al. and Kidron et al. to include removing the one or more processing rules from the data file to generate the updated data file in order to allow a software application to continue executing after encountering a failure. (Chintagunta et al., Abstract, lines 5-10)
With respect to Claim 6, all the limitations of Claim 1 have been addressed above; and Chikkala et al. further disclose:
wherein the one or more processors, to determine the set of possible values, are configured to:
determine a relationship between a first conditional variable, of the set of conditional variables, and a second conditional variable, of the set of conditional variables; (all of the other variables in the Boolean expression (second conditional variable) have their values set so that the selected variable (first conditional variable) is the output of the Boolean expression (determine a relationship). In this regard, when a variable is selected, that variable becomes the determining reference variable for the Boolean expression. Therefore, that variable should now be the determining factor of whether the Boolean expression evaluates to be TRUE of FALSE. For example, if A is selected in the above example, the other variables' values are set so that only when A is greater than or equal to 5 (thereby making the corresponding Boolean condition TRUE) does the Boolean expression of the rule evaluate to be TRUE, and vice versa for when A is less than 5 (e.g., the Boolean expression now evaluates to be FALSE based on the values set for the rest of the variables)., Paragraph 57)
and determine a group of possible values for the second conditional variable based on the relationship between the first conditional variable and the second conditional variable. (all of the other variables in the Boolean expression (second conditional variable) have their values set (determine a group of possible values) so that the selected variable (first conditional variable) is the output of the Boolean expression (determine a relationship). In this regard, when a variable is selected, that variable becomes the determining reference variable for the Boolean expression. Therefore, that variable should now be the determining factor of whether the Boolean expression evaluates to be TRUE of FALSE. For example, if A is selected in the above example, the other variables' values are set so that only when A is greater than or equal to 5 (thereby making the corresponding Boolean condition TRUE) does the Boolean expression of the rule evaluate to be TRUE, and vice versa for when A is less than 5 (e.g., the Boolean expression now evaluates to be FALSE based on the values set for the rest of the variables)., Paragraph 57)
With respect to Claim 17, Chikkala et al. disclose:
receiving, by a rule evaluation system, a data file including a set of processing rules for processing a dataset; (rules 124 (data file) may correspond to business rules or decision-making rules and expressions for service provider server 110 that provide deterministic outcomes or outputs based on the input for variables of attributes 126 that make up rules 124. Thus, one of rules 124 may be associated with a risk practice, a business practice, an online marketplace platform, a benefit conferrable to users of the service provider system, an advertising strategy, or a promotional program (a set of processing rules for processing a dataset). Each one of rules 124 provides a specific decision based on the input for a user, account, transaction, or other available input data. For example, one of rules 124 may provide a product, an advertisement, a benefit, a risk evaluation, a loan or credit determination, an account establishment determination, an authentication process, or other outcome provided by the services of service provider server 130 (a set of processing rules for processing a dataset), Paragraph 24; a rule for testing in a transaction processor system is received (data file) at a rule testing framework, Paragraph 54)
extracting, by the rule evaluation system, a set of conditional variables from the set of processing rules included in the data file; (variables and a Boolean expression for a rule are determined, which may correspond to the coded expression for the rule that provides an outcome or output based on input data for each of the variables that make up the Boolean expression. Each of these variables is associated with a particular logical statement or Boolean condition that evaluates to be TRUE or FALSE depending on the input data for the variable (e.g., an integer, a specific value, a denomination type, a country of residence, a transaction type or class, etc.) (set of conditional variables), Paragraph 55; utilizing a rule testing framework, see Figure 1, Paragraphs 23-24)
determining, by the rule evaluation system, a set of possible values for the set of
conditional variables; (all of the other variables in the Boolean expression have their values set so that the selected variable is the output of the Boolean expression (determine a set of possible values). In this regard, when a variable is selected, that variable becomes the determining reference variable for the Boolean expression. Therefore, that variable should now be the determining factor of whether the Boolean expression evaluates to be TRUE of FALSE, Paragraphs 56-57)
generating, by the rule evaluation system, a set of test cases, wherein a test case, of the set of test cases, represents a combination of a plurality of values, of the set of possible values, for the set of conditional variables; (all of the other variables in the Boolean expression have their values set so that the selected variable is the output of the Boolean expression (combination of a plurality of values). In this regard, when a variable is selected, that variable becomes the determining reference variable for the Boolean expression. Therefore, that variable should now be the determining factor of whether the Boolean expression evaluates to be TRUE of FALSE (generating a set of test cases), Paragraphs 56-57)
evaluating, by the rule evaluation system and using the set of test cases, the set of processing rules to identify one or more error cases associated with one or more processing rules of the set of processing rules, (a test result is generated for the variable and the values of the other variables. This allows a tester of the rule to view the outcome of a particular variable for the rule and whether that variable is properly functioning within the rule with the other variables (e.g., based on the desired outcome of the rule) (error case if the rule is not properly functioning) , Paragraph 58)
and providing, by the rule evaluation system, output identifying a result of evaluating the set of processing rules. (This allows a tester of the rule to view the outcome of a particular variable for the rule and whether that variable is properly functioning within the rule with the other variables (e.g., based on the desired outcome of the rule), Paragraph 58)
Chikkala et al. do not disclose:
wherein the one or more processing rules include a first processing rule that is only triggered when a second processing rule is triggered;
generating, by the rule evaluation system, an updated data file that includes a reduced amount of data relative to the data file, wherein generation of the updated data file comprises removal of the one or more processing rules;
However, Chintagunta et al. disclose:
generating, by the rule evaluation system, an updated data file that includes a reduced amount of data relative to the data file, wherein generation of the updated data file comprises removal of the one or more processing rules (removing rules from a configuration file (data file) to generated a modified configuration file (updated data file), Paragraph 32; removing rules from a file inherently means there is less data in the file)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Chintagunta et al. into the teaching of Chikkala et al. to include generating, by the rule evaluation system, an updated data file that includes a reduced amount of data relative to the data file, wherein generation of the updated data file comprises removal of the one or more processing rules in order to allow a software application to continue executing after encountering a failure. (Chintagunta et al., Abstract, lines 5-10)
Chikkala et al. and Chintagunta et al. do not disclose:
wherein the one or more processing rules include a first processing rule that is only triggered when a second processing rule is triggered
However, Kidron et al. disclose:
wherein the one or more processing rules include a first processing rule that is only triggered when a second processing rule is triggered (Alternatively or in addition, in some examples, causing a display of the business rule can include causing a display of a dependency of the business rule on another business rule. In some examples, such a dependency can be displayed as textual language. For example, "action Y needs to be performed prior to performing action X"., Paragraph 18)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Kidron et al. into the teaching of Chikkala et al. and Chintagunta et al. to include wherein the one or more processing rules include a first processing rule that is only triggered when a second processing rule is triggered in order to be able to create dependencies between different business rules and/or ensure that business rules are executed in a particular order.
With respect to Claim 18, all the limitations of Claim 17 have been addressed above; and Chikkala et al. and Kidron et al. do not disclose:
wherein providing the output comprises:
removing one or more processing rules, of the set of processing rules, from the data file to generate the updated data file;
and transmitting the updated data file.
However, Chintagunta et al. disclose:
wherein providing the output comprises:
removing one or more processing rules, of the set of processing rules, from the data file to generate the updated data file; (removing rules from a configuration file (data file) to generated a modified configuration file, Paragraph 32)
and transmitting the updated data file. (see Figure 2; utilizing (transmit) the modified configuration file by the software application, Paragraph 46)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Chintagunta et al. into the teaching of Chikkala et al. and Kidron et al.to include wherein providing the output comprises removing one or more processing rules, of the set of processing rules, from the data file to generate the updated data file and transmitting the updated data file in order to allow a software application to continue executing after encountering a failure. (Chintagunta et al., Abstract, lines 5-10)
With respect to Claim 19, all the limitations of Claim 17 have been addressed above; and Chikkala et al. further disclose:
wherein providing the output comprises:
executing a subset of processing rules, of the set of processing rules, on the dataset based on evaluating the set of processing rules; (implement/executing the rule in production after the rule has been tested, Paragraph 25; service applications 130 may implement one or more rules to provide these services (subset of processing rules), which may also provide for rule-based validation when providing processes to users, Paragraph 28)
and providing the output to identify the result of executing the subset of processing rules. (one of rules 124 may provide a product, an advertisement, a benefit, a risk evaluation, a loan or credit determination, an account establishment determination, an authentication process, or other outcome provided by the services of service provider server 130 (providing an output), Paragraph 24)
Claim 5 is rejected under 35 U.S.C. 103 as being unpatentable over Chikkala et al. (US 2021/0200665) in view of Chintagunta et al. (US 2020/0159622) in view of Kidron et al. (US 2015/0262128) and in further view of Nayak et al. (US 2012/0209800).
With respect to Claim 5, all the limitations of Claim 1 have been addressed above; and Chikkala et al., Chintagunta et al. and Kidron et al. do not disclose:
wherein the one or more processors, to evaluate the set of processing rules, are configured to:
determine that a group of one or more values, of the set of possible values, is applicable to both the first processing rule and the second processing rule; and
detect an error case, of the one or more error cases, for the first processing rule and the second processing rule based on determining that the group of one or more values is applicable to both the first processing rule and the second processing rule.
However, Nayak et al. disclose:
wherein the one or more processors, to evaluate the set of processing rules, are configured to:
determine that a group of one or more values, of the set of possible values, is applicable to both the first processing rule and the second processing rule; (Are the rules deterministic? In other words, does a set of conditions (group of one or more values) map to one and only one set of one or more actions (applicable to two rules). For example, a decision table like table 400 illustrated in FIG. 4 may not pass validation if two rows of the table have the exact same conditions only while having different actions. For example, if the first row (first processing rule) includes the conditions that the customer's age is less than 18 and the customer is not married (group of one or more values) and the second row (second processing rule) also includes those same conditions, the decision table may not pass validation as two different discounts may be associated with the same set of conditions. (first/second processing rules), Paragraph 52)
and detect an error case, of the one or more error cases, for the first processing rule and the second processing rule based on determining that the group of one or more values is applicable to both the first processing rule and the second processing rule. (Are the rules deterministic? In other words, does a set of conditions (group of one or more values) map to one and only one set of one or more actions (applicable to two rules). For example, a decision table like table 400 illustrated in FIG. 4 may not pass validation (detect error case) if two rows of the table have the exact same conditions only while having different actions. For example, if the first row (first processing rule) includes the conditions that the customer's age is less than 18 and the customer is not married (group of one or more values) and the second row (second processing rule) also includes those same conditions, the decision table may not pass validation as two different discounts may be associated with the same set of conditions. (first/second processing rules), Paragraph 52)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Nayak et al. into the teaching of Chikkala et al., Chintagunta et al. and Kidron et al. to include determine that a group of one or more values, of the set of possible values, is applicable to both the first processing rule and the second processing rule; and detect an error case, of the one or more error cases, for the first processing rule and the second processing rule based on determining that the group of one or more values is applicable to both the first processing rule and the second processing rule in order to ensure that a set of conditions map to one and only one set of one or more actions and do not cause a conflict. (Nayak et al., Paragraph 52)
Claims 7 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Chikkala et al. (US 2021/0200665) in view of Chintagunta et al. (US 2020/0159622) in view of Kidron et al. (US 2015/0262128) in view of Singla (US 2024/0089293) and in further view of Itsuki et al. (US 5,212,768).
With respect to Claim 7, all the limitations of Claim 1 have been addressed above; and Chikkala et al., Chintagunta et al. and Kidron et al. further disclose:
and wherein the one or more processors, to determine the set of possible values, are configured to:
determine a plurality of sets of possible values for the plurality of [rules]. (Chikkala et al., During processing rule implementation and/or testing for rules (plurality of rules) currently implemented in production systems, different values for the variables and attributes of the rule (determine a plurality of sets of possible values) may be required to be tested to ensure proper rule functioning, Abstract, lines 3-6)
Chikkala et al., Chintagunta et al. and Kidron et al. do not disclose:
wherein the one or more processors are further configured to:
divide the data file into a plurality of sub-files based on at least one conditional variable, of the set of conditional variables;
However, Singla discloses:
wherein the one or more processors are further configured to:
divide the data file into a plurality of [sub-rules] based on at least one conditional variable, of the set of conditional variables; (The RUM 114 may split the rule (data file) into two or more experimental rules (sub-files) that contain conditions based on subsets of the sets of attributes associated with the true positive and false positive alerts (at least one conditional variable), Paragraphs 75-76)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Singla into the teaching of Chikkala et al., Chintagunta et al. and Kidron et al. to include divide the data file into a plurality of sub-files based on at least one conditional variable, of the set of conditional variables in order to help reduce the number of false positive alerts. (Singla, Paragraph 75)
Chikkala et al., Chintagunta et al., Kidron et al. and Singla do not disclose:
[sub-rules] are stored in sub-files
However, Itsuki et al. disclose:
[sub-rules] are stored in sub-files (rules file can be divided into a plurality of files such as rule files 920,…,930, Column 1, lines 30-33)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Itsuki et al. into the teaching of Chikkala et al., Chintagunta et al., Kidron et al. and Singla to include [sub-rules] are stored in sub-files in order to better organize a set of rules.
Claim 20 is a method claim corresponding to the system claim above (Claim 7) and, therefore, is rejected for the same reasons set forth in the rejection of Claim 7.
Claim 8 is rejected under 35 U.S.C. 103 as being unpatentable over Chikkala et al. (US 2021/0200665) in view of Chintagunta et al. (US 2020/0159622) in view of Kidron et al. (US 2015/0262128) in view of Singla (US 2024/0089293) in view of Itsuki et al. (US 5,212,768) and in further view of Saurabh et al. (US 8,930,380).
With respect to Claim 8, all the limitations of Claim 7 have been addressed above; and Chikkala et al., Chintagunta et al., Kidron et al., Singla and Itsuki et al. further disclose:
wherein the one or more processors, to evaluate the set of processing rules, are configured to:
evaluate a first subset of processing rules of a first sub-file, of the plurality of sub-files, [and] evaluating a second subset of processing rules of a second sub-file of the plurality of sub-files. (Chikkala et al., During processing rule implementation and/or testing for rules (plurality of sub-files) currently implemented in production systems, different values for the variables and attributes of the rule (first/second subset of processing rules) may be required to be tested to ensure proper rule functioning, Abstract, lines 3-6; through the combination of Chikkala et al., Chintagunta et al., Kidron et al., Singla and Itsuki et al. disclose dividing a rule into two or more rules (first/second sub-file))
Chikkala et al., Chintagunta et al., Kidron et al., Singla and Itsuki et al. do not disclose:
evaluating in parallel
However, Saurabh et al. disclose:
evaluating in parallel (rules are evaluated in parallel, Paragraph 13, lines 18-19)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Saurabh et al. into the teaching of Chikkala et al., Chintagunta et al., Kidron et al., Singla and Itsuki et al. to include evaluating in parallel in order to reducing evaluation processing time and optimize resource utilization.
Claims 9-11 and 15-16 are rejected under 35 U.S.C. 103 as being unpatentable over Chikkala et al. (US 2021/0200665) in view of Nayak et al. (US 2012/0209800) in view of Chintagunta et al. (US 2020/0159622) and in further view of Kidron et al. (US 2015/0262128).
With respect to Claim 9, Chikkala et al. disclose:
receive a new processing rule for inclusion in a data file, (the rule may be required to be rolled out and implemented in an existing or new production system. (new processing rule), Paragraph 25) wherein the data file includes a set of processing rules for processing a dataset; (rules 124 (data file) may correspond to business rules or decision-making rules and expressions for service provider server 110 that provide deterministic outcomes or outputs based on the input for variables of attributes 126 that make up rules 124. Thus, one of rules 124 may be associated with a risk practice, a business practice, an online marketplace platform, a benefit conferrable to users of the service provider system, an advertising strategy, or a promotional program (a set of processing rules for processing a dataset). Each one of rules 124 provides a specific decision based on the input for a user, account, transaction, or other available input data. For example, one of rules 124 may provide a product, an advertisement, a benefit, a risk evaluation, a loan or credit determination, an account establishment determination, an authentication process, or other outcome provided by the services of service provider server 130 (a set of processing rules for processing a dataset), Paragraph 24)
extract a set of conditional variables from the new processing rule; (variables and a Boolean expression for a rule (set of processing rules including in the data file and the new processing rule) are determined, which may correspond to the coded expression for the rule that provides an outcome or output based on input data for each of the variables that make up the Boolean expression. Each of these variables is associated with a particular logical statement or Boolean condition that evaluates to be TRUE or FALSE depending on the input data for the variable (e.g., an integer, a specific value, a denomination type, a country of residence, a transaction type or class, etc.) (set of conditional variables), Paragraph 55)
determine a set of possible values for the set of conditional variables; (all of the other variables in the Boolean expression have their values set so that the selected variable is the output of the Boolean expression (determine a set of possible values). In this regard, when a variable is selected, that variable becomes the determining reference variable for the Boolean expression. Therefore, that variable should now be the determining factor of whether the Boolean expression evaluates to be TRUE of FALSE, Paragraphs 56-57)
generate a set of test cases, wherein a test case, of the set of test cases, represents a combination of a plurality of values, of the set of possible values, for the set of conditional variables; (all of the other variables in the Boolean expression have their values set so that the selected variable is the output of the Boolean expression (combination of a plurality of values). In this regard, when a variable is selected, that variable becomes the determining reference variable for the Boolean expression. Therefore, that variable should now be the determining factor of whether the Boolean expression evaluates to be TRUE of FALSE (generating a set of test cases), Paragraphs 56-57)
evaluate, using the set of test cases, the new processing rule to identify one or more error cases associated with the new processing rule; (a test result is generated for the variable and the values of the other variables. This allows a tester of the rule to view the outcome of a particular variable for the rule and whether that variable is properly functioning within the rule with the other variables (e.g., based on the desired outcome of the rule) (error case if the rule is not properly functioning) , Paragraph 58)
and selectively add the new processing rule to the data file based on evaluating. (once testing has been completed and the rule is determined to be properly functioning, the business rule(s) are deployed, updated or revised (selectively add the new processing rule based on the evaluation), Paragraph 17)
Chikkala et al. do not disclose:
extract a set of conditional variables from the set of processing rules included in the data file and the new processing rule;
evaluate, using the set of test cases, the set of processing rules and the new processing rule to identify one or more errors associated with the new processing rule, wherein the one or more processing rules associated with the one or more error cases include a first processing rule that is only triggered when a second processing rule is triggered;
generate an updated data file that includes a reduced amount of data relative to the data file, wherein generation of the updated data file comprises removal of the one or more processing rules;
and selectively add the new processing rule to the updated data file based on evaluating the set of processing rules.
However, Nayak et al. disclose:
extract a set of conditional variables from the set of processing rules included in the data file and the new processing rule; (determine a set of conditions for a first row (new processing rule) and second row (set of processing rules), Paragraph 52)
evaluate, using the set of test cases, the set of processing rules and the new processing rule to identify one or more error cases associated with the new processing rule; (Are the rules deterministic? In other words, does a set of conditions (group of one or more values) map to one and only one set of one or more actions (applicable to two rules). For example, a decision table like table 400 illustrated in FIG. 4 may not pass validation if two rows of the table (evaluate the set of processing rules and the new processing rule to identify one or more error cases) have the exact same conditions only while having different actions. For example, if the first row (new processing rule) includes the conditions that the customer's age is less than 18 and the customer is not married (group of one or more values) and the second row (set of processing rules) also includes those same conditions, the decision table may not pass validation as two different discounts may be associated with the same set of conditions., Paragraph 52)
and selectively add the new processing rule to the updated data file based on evaluating the set of processing rules. (based on whether the validation passes, the rules are kept (selectively added) or changes need to be made, Paragraph 52)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Nayak et al. into the teaching of Chikkala et al. to include extract a set of conditional variables from the set of processing rules included in the data file and the new processing rule, evaluate, using the set of test cases, the set of processing rules and the new processing rule to identify one or more errors associated with the new processing rule and selectively add the new processing rule to the updated data file based on evaluating the set of processing rules in order to ensure that a set of conditions map to one and only one set of one or more actions and do not cause a conflict. (Nayak et al., Paragraph 52)
Chikkala et al. and Nayak et al. do not disclose:
wherein the one or more processing rules associated with the one or more error cases include a first processing rule that is only triggered when a second processing rule is triggered;
generate an updated data file that includes a reduced amount of data relative to the data file, wherein generation of the updated data file comprises removal of the one or more processing rules;
However, Chintagunta et al. disclose:
generate an updated data file that includes a reduced amount of data relative to the data file, wherein generation of the updated data file comprises removal of the one or more processing rules (removing rules from a configuration file (data file) to generated a modified configuration file (updated data file), Paragraph 32; removing rules from a file inherently means there is less data in the file)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Chintagunta et al. into the teaching of Chikkala et al. and Nayak et al. to include generate an updated data file that includes a reduced amount of data relative to the data file, wherein generation of the updated data file comprises removal of the one or more processing rules in order to allow a software application to continue executing after encountering a failure. (Chintagunta et al., Abstract, lines 5-10)
Chikkala et al., Nayak et al. and Chintagunta et al. do not disclose:
wherein the one or more processing rules associated with the one or more error cases include a first processing rule that is only triggered when a second processing rule is triggered;
However, Kidron et al. disclose:
wherein the one or more processing rules include a first processing rule that is only triggered when a second processing rule is triggered (Alternatively or in addition, in some examples, causing a display of the business rule can include causing a display of a dependency of the business rule on another business rule. In some examples, such a dependency can be displayed as textual language. For example, "action Y needs to be performed prior to performing action X"., Paragraph 18)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Kidron et al. into the teaching of Chikkala et al., Nayak et al. and Chintagunta et al. to include wherein the one or more processing rules associated with the one or more error cases include a first processing rule that is only triggered when a second processing rule is triggered in order to be able to create dependencies between different business rules and/or ensure that business rules are executed in a particular order.
With respect to Claim 10, all the limitations of Claim 9 have been addressed above; and Chikkala et al. further disclose:
evaluate the dataset using the updated data file based on adding the new processing rule to the updated data file; (implement/executing the rule in production after the rule has been tested (updated data file), Paragraph 25; service applications 130 may implement one or more rules to provide these services (new processing rule), which may also provide for rule-based validation when providing processes to users, Paragraph 28)
and transmit an output identifying a result of evaluating the dataset. (one of rules 124 may provide a product, an advertisement, a benefit, a risk evaluation, a loan or credit determination, an account establishment determination, an authentication process, or other outcome provided by the services of service provider server 130 (transmit an output), Paragraph 24)
With respect to Claim 11, all the limitations of Claim 9 have been addressed above; and Chikkala et al., Chintagunta et al. and Kidron et al. further disclose:
identify a combination of values, that are applicable to any processing rule, of the set of processing rules and the new processing rule; (Chikkala et al., all of the other variables in the Boolean expression have their values set so that the selected variable is the output of the Boolean expression (determine a combination of values). In this regard, when a variable is selected, that variable becomes the determining reference variable for the Boolean expression. Therefore, that variable should now be the determining factor of whether the Boolean expression evaluates to be TRUE of FALSE, Paragraphs 56-57)
and detect an error case for the combination of values. (Chikkala et al., a test result is generated for the variable and the values of the other variables. This allows a tester of the rule to view the outcome of a particular variable for the rule and whether that variable is properly functioning within the rule with the other variables (e.g., based on the desired outcome of the rule) (error case) , Paragraph 58)
Chikkala et al., Chintagunta et al. and Kidron et al. do not disclose:
identify a combination of values that is not applicable
However, Nayak et al. disclose:
identify a combination of values that is not applicable (Are there gaps in the conditions? For example, if the customer's age in the decision table of table 400 did not provide conditions for ages greater than or equal to 45, what discount to give customers with ages greater than or equal to 45 would be undefined (combination of values that are not applicable). This undefined behavior may be undesirable in some implementations and may be checked for during validation., Paragraph 53)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Nayak et al. into any/all the rules taught by Chikkala et al., Chintagunta et al. and Kidron et al. to include identify a combination of values that is not applicable in order to determine if there are any gaps in the conditions during validation of the rules. (Nayak et al., Paragraph 53)
With respect to Claim 15, all the limitations of Claim 9 have been addressed above; and Chikkala et al. further disclose:
wherein the one or more instructions, that cause the system to determine the set of possible values, cause the system to:
determine a subset of possible values for each processing rule of the set of processing rules and the new processing rule; (if A is selected in the above example, the other variables' values are set so that only when A is greater than or equal to 5 (thereby making the corresponding Boolean condition TRUE) does the Boolean expression of the rule evaluate to be TRUE, and vice versa for when A is less than 5 (e.g., the Boolean expression now evaluates to be FALSE based on the values set for the rest of the variables) (subset of possible values), Paragraph 57; iteratively testing a set of business rules (each processing rule including the new processing rule), Paragraphs 13 and 58)
generate a set of combinations of the subset of possible values; (setting all of the other variable’s values in the Boolean expression (set of combinations of the subset of possible values), Paragraph 57; iterates through all other variables testing in a similar manner to generate a full set of test results. This allows a tester of the rule to view the outcome of a particular variable for the rule and whether that variable is properly functioning within the rule with the other variables (e.g., based on the desired outcome of the rule) (a set of combinations of the subset of possible values), Paragraph 58)
and add the set of combinations to the set of possible values for the set of processing rules. (iterates through all other variables (add the set of combinations) testing in a similar manner to generate a full set of test results. This allows a tester of the rule to view the outcome of a particular variable for the rule and whether that variable is properly functioning within the rule with the other variables (e.g., based on the desired outcome of the rule), Paragraph 58)
With respect to Claim 16, all the limitations of Claim 9 have been addressed above; and Chikkala et al., Chintagunta et al. and Kidron et al. further disclose:
wherein the one or more instructions, that cause the system to determine the set of possible values, cause the system to:
determine the set of possible values for the new processing rule; (Chikkala et al., all of the other variables in the Boolean expression have their values set so that the selected variable is the output of the Boolean expression (determine a set of possible values). In this regard, when a variable is selected, that variable becomes the determining reference variable for the Boolean expression. Therefore, that variable should now be the determining factor of whether the Boolean expression evaluates to be TRUE of FALSE, Paragraphs 56-57)
generate a set of combinations of the set of possible values; (Chikkala et al., all of the other variables in the Boolean expression have their values set so that the selected variable is the output of the Boolean expression (determine a set of possible values). In this regard, when a variable is selected, that variable becomes the determining reference variable for the Boolean expression. Therefore, that variable should now be the determining factor of whether the Boolean expression evaluates to be TRUE of FALSE, Paragraphs 56-57)
and add the set of combinations to the set of possible values. (Chikkala et al., all of the other variables in the Boolean expression have their values set so that the selected variable is the output of the Boolean expression (determine a set of possible values). In this regard, when a variable is selected, that variable becomes the determining reference variable for the Boolean expression. Therefore, that variable should now be the determining factor of whether the Boolean expression evaluates to be TRUE of FALSE, Paragraphs 56-57)
Chikkala et al., Chintagunta et al. and Kidron et al. do not disclose:
determine the set of possible values for the set of processing rules
However, Nayak et al. disclose:
determine the set of possible values for the set of processing rules; (determine a set of conditions (possible values) for a first row and second row (set of processing rules), Paragraph 52; Are the rules deterministic? In other words, does a set of conditions (group of one or more values) map to one and only one set of one or more actions (applicable to two rules). For example, a decision table like table 400 illustrated in FIG. 4 may not pass validation if two rows of the table (evaluate the set of processing rules and the new processing rule to identify one or more error cases) have the exact same conditions only while having different actions. For example, if the first row (new processing rule) includes the conditions that the customer's age is less than 18 and the customer is not married (group of one or more values) and the second row (set of processing rules) also includes those same conditions, the decision table may not pass validation as two different discounts may be associated with the same set of conditions., Paragraph 52)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Nayak et al. into the teaching of Chikkala et al., Chintagunta et al. and Kidron et al. to include determining the set of possible values for the set of processing rules in order to ensure that a set of conditions map to one and only one set of one or more actions and do not cause a conflict. (Nayak et al., Paragraph 52)
Claims 12 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Chikkala et al. (US 2021/0200665) in view of Nayak et al. (US 2012/0209800) in view of Chintagunta et al. (US 2020/0159622) in view of Kidron et al. (US 2015/0262128) and in further view of Sproule (US 2004/0133876).
With respect to Claim 12, all the limitations of Claim 9 have been addressed above; and Chikkala et al., Nayak et al., Chintagunta et al. and Kidron et al. further disclose:
wherein the one or more instructions, that cause the system to evaluate the set of processing rules and the new processing rule, cause the system to:
detect an error case, of the one or more error cases, relating to the new processing rule. (Chikkala et al., a test result is generated for the variable and the values of the other variables. This allows a tester of the rule to view the outcome of a particular variable for the rule and whether that variable is properly functioning within the rule with the other variables (e.g., based on the desired outcome of the rule) (error case if the rule is not properly functioning) , Paragraph 58)
Chikkala et al., Nayak et al., Chintagunta et al. and Kidron et al. do not disclose:
detect an error case, of the one or more error cases, relating to an ordering of the set of processing rules and the new processing rule.
However, Sproule discloses:
detect an error case, of the one or more error cases, relating to an ordering of the set of processing rules and the new processing rule. (the system is unable to determine a correction execution order of business rules due to conditional logic and gives a warning to an engineer, Paragraph 602)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Sproule into the teaching of Chikkala et al., Nayak et al., Chintagunta et al. and Kidron et al. to include detect an error case, of the one or more error cases, relating to an ordering of the set of processing rules and the new processing rule in order to allow a user to rewrite the rules in question in order to remove any ambiguities. (Sproule, Paragraph 602, lines 9-11)
With respect to Claim 14, all the limitations of Claim 9 have been addressed above; and Chikkala et al., Nayak et al., Chintagunta et al. and Kidron et al. do not disclose:
wherein the one or more instructions, that cause the system to evaluate the set of processing rules and the new processing rule, cause the system to:
evaluate the set of processing rules and the new processing rule based on a prioritization of the set of processing rules and the new processing rule.
However, Sproule discloses:
wherein the one or more instructions, that cause the system to evaluate the set of processing rules and the new processing rule, cause the system to:
evaluate the set of processing rules and the new processing rule based on a prioritization of the set of processing rules and the new processing rule. (The order in which business rules are executed is determined by Visual Enterprise (prioritization) based on the dependencies of each business rule. For a business rule to be processed correctly it is important to execute that rule only after executing all rules on which the rule is dependent, Paragraph 589)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Sproule into the teaching of Chikkala et al., Nayak et al., Chintagunta et al. and Kidron et al. to include evaluate the set of processing rules and the new processing rule based on a prioritization of the set of processing rules and the new processing rule in order to process business rules correctly without errors. (Sproule, Paragraph 589)
Claim 13 is rejected under 35 U.S.C. 103 as being unpatentable over Chikkala et al. (US 2021/0200665) in view of Nayak et al. (US 2012/0209800) in view of Chintagunta et al. (US 2020/0159622) in view of Kidron et al. (US 2015/0262128) and in further view of Ghosh et al. (US 2013/0204657).
With respect to Claim 13, all the limitations of Claim 9 have been addressed above; and Chikkala et al., Nayak et al., Chintagunta et al. and Kidron et al. further disclose:
wherein the one or more instructions, that cause the system to evaluate the set of processing rules and the new processing rule, cause the system to:
detect an error case, of the one or more error cases, relating to the new processing rule. (Chikkala et al., a test result is generated for the variable and the values of the other variables. This allows a tester of the rule to view the outcome of a particular variable for the rule and whether that variable is properly functioning within the rule with the other variables (e.g., based on the desired outcome of the rule) (error case if the rule is not properly functioning) , Paragraph 58)
Chikkala et al., Nayak et al., Chintagunta et al. and Kidron et al. do not disclose:
detect an error case, of the one or more error cases, relating to a redundancy between the set of processing rules and the new processing rule.
However, Ghosh et al. disclose:
detect an error case, of the one or more error cases, relating to a redundancy between the set of processing rules and the new processing rule. (identifying potential fault (detect an error case) in business rules based on inconsistency, contradiction, circularity, subsumption, redundancy and incompleteness, Paragraph 40)
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Ghosh et al. into the teaching of Chikkala et al., Nayak et al., Chintagunta et al. and Kidron et al. to include detect an error case, of the one or more error cases, relating to a redundancy between the set of processing rules and the new processing rule in order to be able to integrated a set of rules associated with a set of business processes that are consistent and do not interact to produce errors or other undesirable results. (Ghosh et al., Paragraph 40)
Response to Arguments
Applicant’s arguments, see Page 14, filed June 25, 2026, with respect to §112(b) rejection of claims 9-16 and §101 rejection of claims 1-20 have been fully considered and are persuasive. The §112(b) rejection of claims 9-16 and the §101 rejection of claims 1-20 have been withdrawn.
Applicant’s arguments with respect to the §102 and §103 rejections of claims 1-20 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to LANNY N UNG whose telephone number is (571)270-7708. The examiner can normally be reached Mon-Thurs 6:30am-3:30pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Bradley Teets can be reached at 571-272-3338. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/LANNY N UNG/ Primary Examiner, Art Unit 2197