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 .
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-14 and 19 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claim 1 recites the limitation "by the at least one processor" in lines 6-7. There is insufficient antecedent basis for this limitation in the claim. For the remainder of the examiner, “by the at least one processor” will be interpreted as “by at least one processor”.
Claim 19 recites “The system of claim 11”, which render the claim indefinite because claim 11 recites a method and not a system. However, it appears to the examiner that claim 19 was intended to depend from claim 15, which does recite a system. Therefore, for the remainder of the examination, claim 19 will be understood to depend from claim 15.
Claims 2-14 are rejected for incorporating, and failing to correct, the deficiency noted above regarding claim 1.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 15-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claim 8, 9, 13, 15, 16, and 18 of U.S. Patent No. 11,521,101 (the ‘101 patent). Although the claims at issue are not identical, they are not patentably distinct from each other because claims 15-20 are anticipated by claims 8, 9, 13, 15, 16, and 18 of the ‘101 patent, as indicated in the table below.
Claims 1-14 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-12 of U.S. Patent No. 11,521,101 (the ‘101 patent) in view of Lamanna et al., U.S. Patent Application Publication No. 2012/0158768 (herein Lamanna). Claims 1-12 of the ‘101 patent teach all limitations of claims 1-14, as indicated in the table below, except that claim 1 of the ‘101 doesn’t teach that the creating a modified directed acyclic graph based on the grouping by determining redundant branch conditions of the directed acyclic graph based on the identified similarities. Lamanna teaches creating a modified directed acyclic graph based on the grouping by determining redundant branch conditions of the directed acyclic graph based on the identified similarities [Node that can be merged (i.e. representing redundant branch conditions) are determined based on the similarity identification. See Lamanna at paragraphs 48-49]. Creating such a directed acyclic graph produces one that is compact and simplifies execution [Lamanna at paragraph 49]. Therefore, it would have been obvious to a person of ordinary skill in the art to modify the invention of claim 1 of the ‘101 patent to further creating a modified directed acyclic graph based on the grouping by determining redundant branch conditions of the directed acyclic graph based on the identified similarities, as taught by Lamanna, in order to create a directed acyclic graph that is compact and simplifies execution.
Instant Application (No. 17/972,460)
U.S. Patent No. 11,521,101
1. A computer implemented method for efficient execution of one or more rules in a ruleset, the method comprising:
transforming a ruleset into a directed acyclic graph by converting at least one of an input type of the ruleset or a default output type of the ruleset to a different type, the directed acyclic graph comprising a plurality of nodes and a plurality of branches;
identifying similarities across the plurality of branches;
grouping, by the at least one processor, branches of the directed acyclic graph based on the identified similarities; and
creating a modified directed acyclic graph based on the grouping by determining redundant branch conditions of the directed acyclic graph based on the identified similarities;
selecting a method of processing a group of the modified acyclic graph based on an aspect the group.
1. A computer implemented method comprising:
transforming, by at least one processor, a ruleset into a directed acyclic graph, the directed acyclic graph comprising a plurality of nodes and a plurality of branches;
identifying, by the at least one processor, similarities across the plurality of branches;
grouping, by the at least one processor, branches of the directed acyclic graph based on the identified similarities;
creating, by the at least one processor, a modified directed acyclic graph based on the grouping; and
selecting, by the at least one processor, a method of processing a group of the modified acyclic graph based on an aspect of the group,
the transforming comprising at least one of: converting an incompatible input type of the ruleset into a compatible input type or converting a default output type of the ruleset into a specific output type.
2. The method of claim 1, wherein processing a group of the modified acyclic graph is based on an aspect the group, and the plurality of branches comprises one or more branch conditions identifying properties of nodes associated with a given branch.
2. The method of claim 1, wherein the plurality of branches comprises a plurality of branch conditions identifying properties of nodes associated with a given branch.
3. The method of claim 1, wherein the identifying comprises: comparing a first condition of a first branch with a second condition of a second branch; and determining, based on the comparing, whether the first branch condition and the second branch condition satisfy a similarity threshold.
3. The method of claim 1, wherein the identifying comprises: comparing a first condition of a first branch with a second condition of a second branch; and determining, based on the comparing, whether the first branch condition and the second branch condition satisfy a similarity threshold.
4. The method of claim 3, wherein the comparing is based on a variable or a property in which the first branch and/or the second branch are formed on.
4. The method of claim 3, wherein the comparing is based on a variable or a property in which the first branch and/or the second branch are formed on.
5. The method of claim 4, wherein the comparing is further based on special values included in the first branch and/or the second branch.
5. The method of claim 4, wherein the comparing is further based on special values included in the first branch and/or the second branch.
6. The method of claim 1, wherein the grouping comprises: determining that a first branch and a second branch of the plurality of branches satisfy a similarity threshold; and combining, in response to satisfying the similarity threshold, the first branch with the second branch.
6. The method of claim 1, wherein the grouping comprises: determining that a first branch and a second branch of the plurality of branches satisfy a similarity threshold; and combining, in response to satisfying the similarity threshold, the first branch with the second branch.
7. The method of claim 6, wherein the modified directed acyclic graph comprises the combined branch.
7. The method of claim 6, wherein the modified directed acyclic graph comprises the combined branch.
8. The method of claim 1, wherein creating the modified directed acyclic graph comprises: combining, by the at least one processor, branches comprising the redundant branch conditions; and generating, by the at least one processor, the modified directed acyclic graph with the combined branches.
8. The method of claim 1, wherein creating the modified directed acyclic graph comprises: determining, by the at least one processor, redundant branch conditions of the directed acyclic graph based on the identified similarities; combining, by the at least one processor, branches comprising the redundant branch conditions; and generating, by the at least one processor, the modified directed acyclic graph with the combined branches.
9. The method of claim 1, wherein selecting a method of processing comprises selecting a hash-based method, a binary search method, a sequential method, and/or a Boolean split method.
9. The method of claim 1, wherein selecting a method of processing comprises selecting a hash-based method, a binary search method, a sequential method, and/or a Boolean split method.
10. The method of claim 1, further comprising transforming the modified directed acyclic graph into a program that is based on a concurrent, class-based, object-oriented computer programming language.
10. The method of claim 1, further comprising transforming the modified directed acyclic graph into a program that is based on a concurrent, class-based, object-oriented computer programming language.
11. The method of claim 10, where the transforming comprises: converting an incompatible input type of the ruleset into a compatible input type.
1. A computer implemented method comprising:
… the transforming comprising at least one of: converting an incompatible input type of the ruleset into a compatible input type or converting a default output type of the ruleset into a specific output type.
12. The method of claim 10, where the transforming comprises: converting a default output type of the ruleset into a specific output type.
1. A computer implemented method comprising:
… the transforming comprising at least one of: converting an incompatible input type of the ruleset into a compatible input type or converting a default output type of the ruleset into a specific output type.
13. The method of claim 1, further comprising: serializing the modified directed acyclic graph into an array of bytes; compressing the array of bytes; encoding the compressed array of bytes into an array of characters; and embedding the array of characters into a string literal value.
11. The method of claim 1, further comprising: serializing the modified directed acyclic graph into an array of bytes; compressing the array of bytes; encoding the compressed array of bytes into an array of characters; and embedding the array of characters into a string literal value.
14. The method of claim 13, further comprising: decoding the array of characters into the compressed array of bytes; de-compressing the array of bytes; and de-serializing the array of bytes into the modified directed acyclic graph.
12. The method of claim 11, further comprising: decoding the array of characters into the compressed array of bytes; de-compressing the array of bytes; and de-serializing the array of bytes into the modified directed acyclic graph.
15. A system comprising:
at least one programmable processor; and
a machine-readable medium storing instructions that, when executed by the at least one processor, cause the at least one programmable processor to perform operations comprising:
transforming a ruleset into a directed acyclic graph, the directed acyclic graph comprising a plurality of nodes and a plurality of branches;
identifying similarities across the plurality of branches;
grouping branches of the directed acyclic graph based on the identified similarities;
creating a modified directed acyclic graph based on the grouping;
selecting a method of processing a group of the modified acyclic graph based on an aspect of the group.
13. A system comprising:
at least one processor; and
a machine-readable medium storing instructions that, when executed by the at least one processor, cause the at least one programmable processor to perform operations comprising:
transforming, by the least one processor, a ruleset into a directed acyclic graph, the directed acyclic graph comprising a plurality of nodes and a plurality of branches;
identifying, by the at least one processor, similarities across the plurality of branches;
grouping, by the at least one processor, branches of the directed acyclic graph based on the identified similarities;
creating, by the at least one processor, a modified directed acyclic graph based on the grouping; and
selecting, by the at least one processor, a method of processing a group of the modified acyclic graph based on an aspect of the group,
the transforming comprising at least one of: converting an incompatible input type of the ruleset into a compatible input type or converting a default output type of the ruleset into a specific output type.
16. The system of claim 15, wherein the identifying comprises: comparing a first condition of a first branch with a second condition of a second branch; determining, based on the comparing, whether the first branch condition and the second branch condition satisfy a similarity threshold; and combining, in response to satisfying the similarity threshold, the first branch with the second branch.
15. The system of claim 13, wherein the identifying comprises: comparing a first condition of a first branch with a second condition of a second branch; and determining, based on the comparing, whether the first branch condition and the second branch condition satisfy a similarity threshold.
17. The system of claim 16, wherein the comparing is based on a variable or a property in which the first branch and/or the second branch are formed on.
16. The system of claim 15, wherein the comparing is based on a variable or a property in which the first branch and/or the second branch are formed on.
18. The system of claim 15, wherein creating the modified directed acyclic graph comprises:
determining redundant branch conditions of the directed acyclic graph based on the identified similarities; combining branches comprising the redundant branch conditions; and generating the modified directed acyclic graph with the combined branches.
8. The method of claim 1, wherein creating the modified directed acyclic graph comprises: determining, by the at least one processor, redundant branch conditions of the directed acyclic graph based on the identified similarities; combining, by the at least one processor, branches comprising the redundant branch conditions; and generating, by the at least one processor, the modified directed acyclic graph with the combined branches.
19. The system of claim 11, wherein selecting a method of processing comprises selecting a hash-based method, a binary search method, a sequential method, and/or a Boolean split method.
9. The method of claim 1, wherein selecting a method of processing comprises selecting a hash-based method, a binary search method, a sequential method, and/or a Boolean split method
20. A non-transitory computer program product storing instructions that, when executed by at least one programmable processor, cause at least one programmable processor to perform operations comprising:
graph transforming a ruleset into a directed acyclic graph, the directed acyclic comprising a plurality of nodes and a plurality of branches;
identifying similarities across the plurality of branches;
grouping branches of the directed acyclic graph based on the identified similarities;
creating a modified directed acyclic graph based on the grouping;
selecting a method of processing a group of the modified acyclic graph based on an aspect of the group.
18. A non-transitory computer program product storing instructions that, when executed by at least one processor, cause the processor to perform operations comprising:
transforming, by the least one processor, a ruleset into a directed acyclic graph, the directed acyclic graph comprising a plurality of nodes and a plurality of branches;
identifying, by the at least one processor, similarities across the plurality of branches;
grouping, by the at least one processor, branches of the directed acyclic graph based on the identified similarities;
creating, by the at least one processor, a modified directed acyclic graph based on the grouping; and
selecting, by the at least one processor, a method of processing a group of the modified acyclic graph based on an aspect of the group,
the transforming comprising at least one of: converting an incompatible input type of the ruleset into a compatible input type or converting a default output type of the ruleset into a specific output type.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-9, 11, 12 and 15-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Claim 1, Eligibility Step 1: Claim 1 recites a method (i.e., a process) and, therefore, falls within one or more statutory categories.
Claim 1, Eligibility Step 2A, Prong One: Claim 1 recites: transforming a ruleset into a directed acyclic graph by converting at least one of an input type of the ruleset or a default output type of the ruleset to a different type, the directed acyclic graph comprising a plurality of nodes and a plurality of branches; identifying similarities across the plurality of branches; grouping, by the at least one processor, branches of the directed acyclic graph based on the identified similarities; creating a modified directed acyclic graph based on the grouping by determining redundant branch conditions of the directed acyclic graph based on the identified similarities; and selecting a method of processing a group of the modified acyclic graph based on an aspect the group. Each of these limitations, as drafted, is a process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for recitation of generic computer components. That is, other than the grouping limitation reciting “by the at least one processor” nothing in these limitations precludes the step from practically being performed in the mind. For example, the transforming limitation encompasses the user mentally transforming, possibly with the use of pen and paper, the rules of a ruleset into a directed acyclic graph including changing an input type (e.g., Boolean type) to a different type (e.g., category type). The identifying limitation encompasses the user thinking that branches that are conditional upon the same variable are similar. The grouping limitation encompasses the user thinking that the determined similar branches should be grouped together. The creating limitation encompasses the user thinking that a branch that was determined similar to another branch and is also dependent upon that branch could be eliminated from the graph (i.e., there is a redundant branch condition). The selecting limitation encompasses the user thinking a particular processing method should be used based on the number of determined similar branches. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly claim 1 recites an abstract idea.
Claim 1, Eligibility Step 2A, Prong Two: This judicial exception is not integrated into a practical application. In particular, the claim only recites “by the at least one processor”. The processor is recited at a high-level of generality such that it amounts to no more than mere instructions to apply the exception using generic computer components. Accordingly, this element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 1 is directed to an abstract idea.
Claim 1, Eligibility Step 2B: Claim 1 does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the element of a processor to perform the grouping limitation amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 1 is not patent eligible.
Claim 2 depends from claim 1 and further recites that processing a group of the modified acyclic graph is based on an aspect the group, and the plurality of branches comprises one or more branch conditions identifying properties of nodes associated with a given branch. These limitations modify the processing a group and the branches of the directed acyclic graph discussed above regarding claim 1 and, as drafted, remains a process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind, but for the recitation in claim 1 of generic computer components. For example, this claim still encompasses user thinking that processing method should be used based on the number of determined similar branches (i.e., an aspect of the group) and that branches that are conditional upon the same variable are similar. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 2 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 2 does not recite any additional elements behind those already discussed above regarding claim 1 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements do not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 2 is directed to an abstract idea. Claim 2 does not recite any additional elements beyond those already discussed above regarding claim 1 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 2 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 2 is not patent eligible.
Claim 3 depends from claim 1 and further recites the identifying comprises: comparing a first condition of a first branch with a second condition of a second branch; and determining, based on the comparing, whether the first branch condition and the second branch condition satisfy a similarity threshold. This limitation modifies the identifying similarities step discussed above regarding claim 1 and, as drafted, remains a process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind, but for the recitation in claim 1 of generic computer components. For example, this claim still encompasses user thinking that branches that are conditional upon the same variable are similar. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 3 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 3 does not recite any additional elements behind those already discussed above regarding claim 1 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 3 is directed to an abstract idea. Claim 3 does not recite any additional elements beyond those already discussed above regarding claim 1 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 3 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 3 is not patent eligible.
Claim 4 depends from claim 3 and further recites that the comparing is based on a variable or a property in which the first branch and/or the second branch are formed on. This limitation modifies the identifying similarities step discussed above regarding claims 1 and 3 and, as drafted, remains a process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind, but for the recitation in claim 1 of generic computer components. For example, this claim still encompasses user thinking that branches that are conditional upon the same variable are similar. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 4 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 4 does not recite any additional elements behind those already discussed above regarding claim 1 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 4 is directed to an abstract idea. Claim 4 does not recite any additional elements beyond those already discussed above regarding claim 1 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 4 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 4 is not patent eligible.
Claim 5 depends from claim 4 and further recites that the comparing is further based on special values included in the first branch and/or the second branch. This limitation modifies the identifying similarities step discussed above regarding claims 1, 3, and 4 and, as drafted, remains a process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind, but for the recitation in claim 1 of generic computer components. For example, this claim still encompasses user thinking that branches that are conditional upon the same variable are similar. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 5 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 5 does not recite any additional elements behind those already discussed above regarding claim 1 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 5 is directed to an abstract idea. Claim 5 does not recite any additional elements beyond those already discussed above regarding claim 1 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 5 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 5 is not patent eligible.
Claim 6 depends from claim 1 and further recites that the grouping comprises: determining that a first branch and a second branch of the plurality of branches satisfy a similarity threshold; and combining, in response to satisfying the similarity threshold, the first branch with the second branch. This limitation modifies the grouping step discussed above regarding claims 1 and, as drafted, remains a process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind, but for the recitation in claim 1 of generic computer components. For example, this claim encompasses the user thinking that the determined similar branches should be grouped together. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 6 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 6 does not recite any additional elements behind those already discussed above regarding claim 1 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 6 is directed to an abstract idea. Claim 6 does not recite any additional elements beyond those already discussed above regarding claim 1 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 6 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 6 is not patent eligible.
Claim 7 depends from claim 1 and further recites that the modified directed acyclic graph comprises the combined branch. This limitation modifies the creating step discussed above regarding claims 1 and, as drafted, remains a process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind, but for the recitation in claim 1 of generic computer components. For example, this claim encompasses the user thinking that a branch that was determined similar to another branch and is also dependent upon that branch could be eliminated from the graph – thereby combining the branches. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 7 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 7 does not recite any additional elements behind those already discussed above regarding claim 1 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 7 is directed to an abstract idea. Claim 7 does not recite any additional elements beyond those already discussed above regarding claim 1 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 7 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 7 is not patent eligible.
Claim 8 depends from claim 1 and further recites that creating the modified directed acyclic graph comprises: combining branches comprising the redundant branch conditions; and generating the modified directed acyclic graph with the combined branches. These limitations modify the creating step discussed above regarding claim 1 and, as drafted, remain a process that, under its broadest reasonable interpretation, covers performance of the limitations in the mind, but for the same generic computer components as claim 1. For example, this claim encompasses the user thinking that a branch that was determined similar to another branch and is also dependent upon that branch could be eliminated from the graph – thereby combining the branches. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 8 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 8 does not recite any additional elements behind those already discussed above regarding claim 1 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 8 is directed to an abstract idea. Claim 8 does not recite any additional elements beyond those already discussed above regarding claim 1 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 8 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 8 is not patent eligible.
Claim 9 depends from claim 1 and further recites that selecting a method of processing comprises selecting a hash-based method, a binary search method, a sequential method, and/or a Boolean split method. These limitations modify the selecting step discussed above regarding claim 1 and, as drafted, remain a process that, under its broadest reasonable interpretation, covers performance of the limitations in the mind, but for the same generic computer components as claim 1. For example, this claim encompasses the thinking one of a hash-based method, a binary search method, a sequential method, and/or a Boolean split method of processing should be used based on the number of determined similar branches. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 9 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 9 does not recite any additional elements behind those already discussed above regarding claim 1 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 8 is directed to an abstract idea. Claim 9 does not recite any additional elements beyond those already discussed above regarding claim 1 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 9 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 9 is not patent eligible.
Claim 11 depends from claim 1 and further recites that transforming comprises: converting an incompatible input type of the ruleset into a compatible input type. These limitations modify the transforming limitation discussed above regarding claim 1 and, as drafted, remain a process that, under its broadest reasonable interpretation, covers performance of the limitations in the mind, but for the same generic computer components as claim 1. For example, this claim encompasses the user mentally transforming, possibly with the use of pen and paper, the rules of a ruleset into a directed acyclic graph including changing an incompatible input type (e.g., category type) to a compatible input type (e.g., Boolean type). If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 11 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 11 does not recite any additional elements behind those already discussed above regarding claim 1 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements do not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 11 is directed to an abstract idea. Claim 11 does not recite any additional elements beyond those already discussed above regarding claim 1 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 11 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 11 is not patent eligible.
Claim 12 depends from claims 1 and 10 and further recites that transforming comprises: converting a default output type of the ruleset into a specific output type. These limitations modify the transforming limitation discussed above regarding claim 1 and, as drafted, remain a process that, under its broadest reasonable interpretation, covers performance of the limitations in the mind, but for the same generic computer components as claim 1. For example, this claim encompasses the user mentally transforming, possibly with the use of pen and paper, the rules of a ruleset into a directed acyclic graph including changing a default output type (e.g., Boolean type) to a particular output type (e.g., category type). If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 12 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 12 does not recite any additional elements behind those already discussed above regarding claim 1 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements do not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 12 is directed to an abstract idea. Claim 12 does not recite any additional elements beyond those already discussed above regarding claim 1 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 12 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 12 is not patent eligible.
Claim 15, Eligibility Step 1: Claim 15 recites a system comprising a processor (i.e., a machine) and, therefore, fails within one or more statutory categories.
Claim 15, Eligibility Step 2A, Prong One: Claim 15 recites: transforming a ruleset into a directed acyclic graph, the directed acyclic graph comprising a plurality of nodes and a plurality of branches; identifying similarities across the plurality of branches; grouping branches of the directed acyclic graph based on the identified similarities; creating a modified directed acyclic graph based on the grouping; and selecting a method of processing a group of the modified acyclic graph based on an aspect the group. Each of these limitations, as drafted, is a process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for recitation of generic computer components. That is, other than reciting “at least one programmable processor; and a machine-readable medium storing instructions that, when executed by the at least one processor, cause the at least one programmable processor to perform operations comprising” nothing in these limitations precludes the step from practically being performed in the mind. For example, the transforming limitation encompasses the user mentally transforming, possibly with the use of pen and paper, the rules of a ruleset into a directed acyclic graph. The identifying limitation encompasses the user thinking that branches that are conditional upon the same variable are similar. The grouping limitation encompasses the user thinking that the determined similar branches should be grouped together. The creating limitation encompasses the user thinking that a branch that was determined similar to another branch and is also dependent upon that branch could be eliminated from the graph. The selecting limitation encompasses the user thinking a particular processing method should be used based on the number of determined similar branches. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly claim 15 recites an abstract idea.
Claim 15, Eligibility Step 2A, Prong Two: The judicial exception is not integrated into a practical application. In particular, the claim only recites “at least one programmable processor; and a machine-readable medium storing instructions that, when executed by the at least one processor, cause the at least one programmable processor to perform operations comprising”. The processor and machine readable medium are recited at a high-level of generality (i.e., as a generic programmable processor and generic machine readable medium containing instructions to perform the step) such that it amounts to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements do not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 15 is directed to an abstract idea.
Claim 15, Eligibility Step 2B: Claim 15 does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the elements of a programmable processor and machine readable medium to perform all the steps amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 15 is not patent eligible.
Claim 16 depends from claim 15 and further recites the identifying comprises: comparing a first condition of a first branch with a second condition of a second branch; determining, based on the comparing, whether the first branch condition and the second branch condition satisfy a similarity threshold; and combining, in response to satisfying the similarity threshold, the first branch with the second branch. These limitations were discussed above regarding claims 3 and 6 and modify the identifying and creating steps discussed above regarding claim 15 and, as drafted, remain a process that, under its broadest reasonable interpretation, covers performance of the limitations in the mind (see discussion of claims 3 and 6 above), but for the same generic computer components as claim 15. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 16 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 16 does not recite any additional elements behind those already discussed above regarding claim 15 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 16 is directed to an abstract idea. Claim 16 does not recite any additional elements beyond those already discussed above regarding claim 15 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 16 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 16 is not patent eligible.
Claim 17 depends from claim 16 and further recites the comparing is based on a variable or a property in which the first branch and/or the second branch are formed on. This limitation was discussed above regarding claim 4 and modifies the creating step discussed above regarding claim 15 and, as drafted, remain a process that, under its broadest reasonable interpretation, covers performance of the limitations in the mind (see discussion of claim 4 above), but for the same generic computer components as claim 15. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 17 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 17 does not recite any additional elements behind those already discussed above regarding claim 15 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 17 is directed to an abstract idea. Claim 17 does not recite any additional elements beyond those already discussed above regarding claim 15 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 17 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 17 is not patent eligible.
Claim 18 depends from claim 15 and further recites the creating the modified directed acyclic graph comprises: determining redundant branch conditions of the directed acyclic graph based on the identified similarities; combining branches comprising the redundant branch conditions; and generating the modified directed acyclic graph with the combined branches. These limitations were discussed above regarding claim 8 and modifies the creating steps discussed above regarding claim 15 and, as drafted, remain a process that, under its broadest reasonable interpretation, covers performance of the limitations in the mind (see discussion of claim 8 above), but for the same generic computer components as claim 15. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 18 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 18 does not recite any additional elements behind those already discussed above regarding claim 15 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 18 is directed to an abstract idea. Claim 18 does not recite any additional elements beyond those already discussed above regarding claim 15 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 18 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 18 is not patent eligible.
Claim 19 depends from claim 15 (See claim 19 rejection under 35 U.S.C. 112(b) above) and further recites that selecting a method of processing comprises selecting a hash-based method, a binary search method, a sequential method, and/or a Boolean split method. These limitations modify the selecting step discussed above regarding claim 15 and, as drafted, remain a process that, under its broadest reasonable interpretation, covers performance of the limitations in the mind, but for the same generic computer components as claim 15. For example, this claim encompasses the thinking one of a hash-based method, a binary search method, a sequential method, and/or a Boolean split method of processing should be used based on the number of determined similar branches. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer-implemented steps, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly, claim 19 recites an abstract idea. This judicial exception is not integrated into a practical application. Claim 19 does not recite any additional elements behind those already discussed above regarding claim 15 that amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements do not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 19 is directed to an abstract idea. Claim 19 does not recite any additional elements beyond those already discussed above regarding claim 15 that are insufficient to amount to significantly more than the judicial exception. Accordingly, claim 19 still amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 19 is not patent eligible.
Claim 20, Eligibility Step 1: Claim 20 recites a “non-transitory computer program product” and, therefore, fails within one or more statutory categories.
Claim 20, Eligibility Step 2A, Prong One: Claim 20 recites: transforming a ruleset into a directed acyclic graph, the directed acyclic graph comprising a plurality of nodes and a plurality of branches; identifying similarities across the plurality of branches; grouping branches of the directed acyclic graph based on the identified similarities; creating a modified directed acyclic graph based on the grouping; and selecting a method of processing a group of the modified acyclic graph based on an aspect the group. Each of these limitations, as drafted, is a process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for recitation of generic computer components. That is, other than reciting “non-transitory computer program product storing instructions that, when executed by at least one programmable processor, cause at least one programmable processor to perform operations comprising” nothing in these limitations precludes the step from practically being performed in the mind. For example, the transforming limitation encompasses the user mentally transforming, possibly with the use of pen and paper, the rules of a ruleset into a directed acyclic graph. The identifying limitation encompasses the user thinking that branches that are conditional upon the same variable are similar. The grouping limitation encompasses the user thinking that the determined similar branches should be grouped together. The creating limitation encompasses the user thinking that a branch that was determined similar to another branch and is also dependent upon that branch could be eliminated from the graph. The selecting limitation encompasses the user thinking a particular processing method should be used based on the number of determined similar branches. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract idea. Accordingly claim 20 recites an abstract idea.
Claim 20, Eligibility Step 2A, Prong Two: This judicial exception is not integrated into a practical application. In particular, the claim only recites “non-transitory computer program product storing instructions that, when executed by at least one programmable processor, cause at least one programmable processor to perform operations comprising”. The computer program product is recited at a high-level of generality such that it amounts to no more than mere instructions to apply the exception using generic computer components. Accordingly, these elements do not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. Therefore, claim 20 is directed to an abstract idea.
Claim 20, Eligibility Step 2B: Claim 20 does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the element of a computer program product to perform all the steps amounts to no more than mere instructions to apply the exception using generic computer components. Mere instructions to apply the exception using generic computer components cannot provide an inventive concept. Therefore, claim 20 is not patent eligible.
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-8, 15-18, and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Lamanna et al., U.S. Patent Application Publication No. 2012/0158768 (herein Lamanna) in view of Cheriton, U.S. Patent Application Publication No. 2020/0081882.
Regarding claim 1, Lamanna teaches a computer implemented method for efficient execution of one or more rules in a ruleset, the method comprising:
accessing a directed acyclic graph, the directed acyclic graph comprising a plurality of nodes and a plurality of branches [Accessing graph 112 (i.e. directed acyclic graph) comprising nodes and branches. See Lamanna at paragraphs 70 and FIG. 1];
identifying similarities across the plurality of branches [After decomposing the graph into one or more keyword graphs, similarly positioned nodes within the keyword graphs are identified. Lamanna at paragraphs 49 and 74];
grouping, by the at least one processor, branches of the directed acyclic graph based on the identified similarities [The identified nodes correspond to a particular position and/or overlap and are, therefore, implicitly grouped according to position and/or overlap. Lamanna at paragraphs 49 and 74]; and
creating a modified directed acyclic graph based on the grouping [A modified DAG is created based on the identified position and/or overlap groups. See Lamanna at paragraphs 47-48, 76, 79; FIGS. 3 and 6] by determining redundant branch conditions of the directed acyclic graph based on the identified similarities [Node that can be merged (i.e. representing redundant branch conditions) are determined based on the similarity identification. See Lamanna at paragraphs 48-49];
selecting a method of processing a group of the modified acyclic graph based on an aspect the group [The created (i.e. modified) DAG is run (processed) thereby selecting a processing method based on the modified DAG (i.e. including an aspect of the group). Lamanna at paragraph 79].
Lamanna doesn’t teach transforming a ruleset into a directed acyclic graph by converting at least one of an input type of the ruleset or a default output type of the ruleset to a different type. In the analogous field of rule set implementation, Cheriton teaches transforming a ruleset into a directed acyclic graph [Cheriton at Abstract, paragraphs 114-115] by converting at least one of an input type of the ruleset or a default output type of the ruleset to a different type [An input type is converted to a different type, such as converting input temperatures values to discrete input temperature categories (e.g., cool, cold, warm, hot). Cheriton at paragraph 211]. Cheriton teaches the transformation enables efficient condition evaluation, allows a reactive rule engine implementation, and allows automatic checking for under-specification and over-specification of rule conditions and disambiguation of under-specified rule conditions [Cheriton at Abstract, paragraphs 265-267]. Therefore, it would have been obvious to a person of ordinary skill in the art, before the effective filing date of the invention, to modify Lamanna to include transforming a ruleset into a directed acyclic graph by converting at least one of an input type of the ruleset or a default output type of the ruleset to a different type, as taught by Cheriton, in order to enable efficient condition evaluation, allow a reactive rule engine implementation, and allow automatic checking for under-specification and over-specification of rule conditions and disambiguation of under-specified rule conditions.
Regarding claim 2, Lamanna and Cheriton teach the method of claim 1, wherein processing a group of the modified acyclic graph is based on an aspect the group, and the plurality of branches comprises one or more branch conditions identifying properties of nodes associated with a given branch [Branches comprise an expression (i.e. conditions) that identify the pattern/properties of the respective nodes. See Lamanna at paragraphs 48-49; FIG. 5].
Regarding claim 3, Lamanna and Cheriton teach the method of claim 1, wherein the identifying comprises: comparing a first condition of a first branch with a second condition of a second branch; and determining, based on the comparing, whether the first branch condition and the second branch condition satisfy a similarity threshold [The expression/pattern (i.e. a first condition) of a node (corresponding to a first branch) is compared to the expression/pattern (i.e. a second condition) of a another node (corresponding to a second branch) to identify similarities. See Lamanna at paragraphs 48-49; FIG. 5].
Regarding claim 4, Lamanna and Cheriton teach the method of claim 3, wherein the comparing is based on a variable or a property in which the first branch and/or the second branch are formed on [The comparing is based on the character pattern (i.e. variable or a property in which the first branch and/or the second branch are formed on). See Lamanna at paragraphs 48-49; FIG. 5].
Regarding claim 5, Lamanna and Cheriton teach the method of claim 4, wherein the comparing is further based on special values included in the first branch and/or the second branch [The comparing is based on the position (i.e. special values included in the first branch and/or the second branch). See Lamanna at paragraphs 48-49; FIG. 5].
Regarding claim 6, Lamanna and Cheriton teach the method of claim 1, wherein the grouping comprises: determining that a first branch and a second branch of the plurality of branches satisfy a similarity threshold; and combining, in response to satisfying the similarity threshold, the first branch with the second branch [Similar nodes are identified based on the position and overlap similarity and the matched similar nodes are merged by combining the identified similar nodes. Lamanna at paragraphs 49 and 77-78].
Regarding claim 7, Lamanna and Cheriton teach the method of claim 6, wherein the modified directed acyclic graph comprises the combined branch [The created/modified DAG comprise the merged node (i.e. combined branch) Lamanna at paragraphs 73 and 78].
Regarding claim 8, Lamanna and Cheriton teach the method of claim 1, wherein creating the modified directed acyclic graph comprises: combining, by the at least one processor, branches comprising the redundant branch conditions [The merging comprises comping the identified similar nodes. Lamanna at paragraphs 49 and 77-78]; and generating, by the at least one processor, the modified directed acyclic graph with the combined branches [The created DAG comprises the merged nodes (i.e. combined branches). See Lamanna at paragraphs 44-45, 73; FIG. 3].
Regarding claim 15, Lamanna teaches a system comprising:
at least one programmable processor [Lamanna at paragraphs 22-23]; and
a machine-readable medium storing instructions that, when executed by the at least one processor, cause the at least one programmable processor to perform operations [Lamanna at paragraphs 22-23] comprising:
accessing a directed acyclic graph, the directed acyclic graph comprising a plurality of nodes and a plurality of branches [Accessing graph 112 (i.e. directed acyclic graph) comprising nodes and branches. See Lamanna at paragraphs 70 and FIG. 1];
identifying similarities across the plurality of branches [After decomposing the graph into one or more keyword graphs, similarly positioned nodes within the keyword graphs are identified. Lamanna at paragraphs 49 and 74];
grouping branches of the directed acyclic graph based on the identified similarities [The identified nodes correspond to a particular position and/or overlap and are, therefore, implicitly grouped according to position and/or overlap. Lamanna at paragraphs 49 and 74];
creating a modified directed acyclic graph based on the grouping [A modified DAG is created based on the identified position and/or overlap groups. See Lamanna at paragraphs 47-48, 76, 79; FIGS. 3 and 6];
selecting a method of processing a group of the modified acyclic graph based on an aspect of the group [The created (i.e. modified) DAG is run (processed) thereby selecting a processing method based on the modified DAG (i.e. including an aspect of the group). Lamanna at paragraph 79].
Lamanna doesn’t teach transforming a ruleset into a directed acyclic graph. In the analogous field of rule set implementation, Cheriton teaches transforming a ruleset into a directed acyclic graph [Cheriton at Abstract, paragraphs 114-115]. Cheriton teaches the transformation enables efficient condition evaluation, allows a reactive rule engine implementation, and allows automatic checking for under-specification and over-specification of rule conditions and disambiguation of under-specified rule conditions [Cheriton at Abstract, paragraphs 265-267]. Therefore, it would have been obvious to a person of ordinary skill in the art, before the effective filing date of the invention, to modify Lamanna to include transforming a ruleset into a directed acyclic graph, as taught by Cheriton, in order to enable efficient condition evaluation, allow a reactive rule engine implementation, and allow automatic checking for under-specification and over-specification of rule conditions and disambiguation of under-specified rule conditions.
Regarding claim 16, Lamanna and Cheriton teach the system of claim 15, wherein the identifying comprises: comparing a first condition of a first branch with a second condition of a second branch; determining, based on the comparing, whether the first branch condition and the second branch condition satisfy a similarity threshold [The expression/pattern (i.e. a first condition) of a node (corresponding to a first branch) is compared to the expression/pattern (i.e. a second condition) of a another node (corresponding to a second branch) to identify similarities. See Lamanna at paragraphs 48-49; FIG. 5]; and combining, in response to satisfying the similarity threshold, the first branch with the second branch [Similar nodes are identified based on the position and overlap similarity and the matched similar nodes are merged by combining the identified similar nodes. Lamanna at paragraphs 49 and 77-78].
Regarding claim 17, Lamanna and Cheriton teach the system of claim 16, wherein the comparing is based on a variable or a property in which the first branch and/or the second branch are formed on [The comparing is based on the character pattern (i.e. variable or a property in which the first branch and/or the second branch are formed on). See Lamanna at paragraphs 48-49; FIG. 5].
Regarding claim 18, Lamanna and Cheriton teach the system of claim 15, wherein creating the modified directed acyclic graph comprises: determining redundant branch conditions of the directed acyclic graph based on the identified similarities [Nodes that can be merged (i.e. representing redundant branch conditions) are determined based on the similarity identification. See Lamanna at paragraphs 48-49]; combining branches comprising the redundant branch conditions [The merging comprises comping the identified similar nodes. Lamanna at paragraphs 49 and 77-78]; and generating the modified directed acyclic graph with the combined branches [The created DAG comprises the merged nodes (i.e. combined branches). See Lamanna at paragraphs 44-45, 73; FIG. 3].
Regarding claim 20, Lamanna teaches a non-transitory computer program product storing instructions that, when executed by at least one programmable processor, cause at least one programmable processor to perform operations [Lamanna at paragraphs 22-23] comprising:
accessing a directed acyclic graph, the directed acyclic graph comprising a plurality of nodes and a plurality of branches [Accessing graph 112 (i.e. directed acyclic graph) comprising nodes and branches. See Lamanna at paragraphs 70 and FIG. 1];
identifying similarities across the plurality of branches [After decomposing the graph into one or more keyword graphs, similarly positioned nodes within the keyword graphs are identified. Lamanna at paragraphs 49 and 74];
grouping branches of the directed acyclic graph based on the identified similarities [The identified nodes correspond to a particular position and/or overlap and are, therefore, implicitly grouped according to position and/or overlap. Lamanna at paragraphs 49 and 74];
creating a modified directed acyclic graph based on the grouping [A modified DAG is created based on the identified position and/or overlap groups. See Lamanna at paragraphs 47-48, 76, 79; FIGS. 3 and 6];
selecting a method of processing a group of the modified acyclic graph based on an aspect of the group [The created (i.e. modified) DAG is run (processed) thereby selecting a processing method based on the modified DAG (i.e. including an aspect of the group). Lamanna at paragraph 79].
Lamanna doesn’t teach graph transforming a ruleset into a directed acyclic graph. In the analogous field of rule set implementation, Cheriton teaches graph transforming a ruleset into a directed acyclic graph [Cheriton at Abstract, paragraphs 114-115]. Cheriton teaches the transformation enables efficient condition evaluation, allows a reactive rule engine implementation, and allows automatic checking for under-specification and over-specification of rule conditions and disambiguation of under-specified rule conditions [Cheriton at Abstract, paragraphs 265-267]. Therefore, it would have been obvious to a person of ordinary skill in the art, before the effective filing date of the invention, to modify Lamanna to include graph transforming a ruleset into a directed acyclic graph, as taught by Cheriton, in order to enable efficient condition evaluation, allow a reactive rule engine implementation, and allow automatic checking for under-specification and over-specification of rule conditions and disambiguation of under-specified rule conditions.
Claim 10-12 is/are rejected under 35 U.S.C. 103 as being unpatentable over Lamanna in view of Cheriton and, further, in view of Yershov et al., U.S. Patent Application Publication No. 2017/0147307 (herein Yershov).
Regarding claim 10, Lamanna and Cheriton teach the method of claim 1. Lamanna doesn’t teach transforming the modified directed acyclic graph into a program that is based on a concurrent, class-based, object-oriented computer programming language. In an analogous field of model representation, Yershov teaches transforming a DAG into a program that is based on a concurrent, class-based, object-oriented computer programming language in order to increase usability to modelers [Yershov at paragraphs 10 and 18]. It would have been obvious to a person of ordinary skill in the art, before the effective filing date of the invention to modify the method of Lamanna to further include transforming the modified directed acyclic graph into a program that is based on a concurrent, class-based, object-oriented computer programming language, as taught by Yershov in order to increase usability to modelers.
Regarding claim 11, Lamanna, Cheriton, and Yershov teach the method of claim 10, where the transforming comprises: converting an incompatible input type of the ruleset into a compatible input type [An incompatible input type, such as input temperature values, is converted to a compatible input type, such as discrete input temperature categories (e.g., cool, cold, warm, hot). Cheriton at paragraph 211].
Regarding claim 12, Lamanna, Cheriton, and Yershov teach the method of claim 10, where the transforming comprises: converting a default output type of the ruleset into a specific output type [An default output type, such as a root cause fault output, is converted to a specific output type, such as confidence level probability for root cause fault output). See Cheriton at paragraph 141, 143].
Allowable Subject Matter
Claims 9 and 19 would be allowable: if a terminal disclaimer is filed; and if rewritten to overcome the rejection(s) under 35 U.S.C. 101 set forth in this Office action and to include all of the limitations of the base claim and any intervening claims.
Claims 13 and 14 would be allowable: if a terminal disclaimer is filed; and if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
The following is a statement of reasons for the indication of allowable subject matter. The prior art f record doesn’t teach or suggest:
“selecting a method of processing comprises selecting a hash-based method, a binary search method, a sequential method, and/or a Boolean split method” as recited in claims 9 and 19;
“serializing the modified directed acyclic graph into an array of bytes; compressing the array of bytes; encoding the compressed array of bytes into an array of characters; and embedding the array of characters into a string literal value” as recited in claim 13.
Claim 14 depends from claim 13 and is considered allowable for at least the reasons given above regarding claim 13.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to BENJAMIN P GEIB whose telephone number is (571)272-8628. The examiner can normally be reached Monday - Friday 8:30 AM - 5:00 PM.
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, ALEXEY SHMATOV can be reached at (571)270-3428. 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.
/BENJAMIN P GEIB/Primary Examiner, Art Unit 2123