DETAILED ACTION
This communication is in response to the Amendments and Arguments filed on 1/27/2026.
Claims 1-20 are pending and have been examined.
All previous objections / rejections not mentioned in this Office Action have been withdrawn by the examiner.
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 .
Response to Amendments
Regarding the Applicant’s arguments for the rejections under 35 U.S.C. § 101, applicant has amended independent claims 1, 11, and 19. Applicant asserts that the amended claims integrate the judicial exception into a practical application and discloses specific improvement in technology. Applicant asserts that the amended claim discloses improvements to technology by “improving the efficiency and optimization of AI systems implementing rules for automated decision-making and/or rule execution for task management.” (Remarks P0009) Examiner respectfully disagrees. During patent examination, pending claims must be “given their broadest reasonable interpretation consistent with the specification.” MPEP 2111. Also, claims should not be interpreted by reading limitations of the specification into the claim, to narrow the scope of the claim, by implicitly adding disclosed limitations that have no express basis in the claim language. In re Prater, 415 F.2d 1393. Here, the steps in the claim language are broad and examiner interprets the claim broadly. First, the steps recited in the claim limitation can be performed in the mind. Specifically, the human mind can read rules syntax, write a representation of the rules syntax on paper using a pen or pencil, compare the representations to find a similarity score, identify overlapping representations based on a score threshold, and write the overlapping rules on paper. The use of a trained machine learning model can be interpreted as a set of rules or instructions and the human mind can follow determined rules or instructions. The claim encompasses mental observations or evaluations that can be practically performed in the human mind. Second, MPEP 2106.05(f) provides the following considerations for determining whether a claim simply recites a judicial exception with the words “apply it” (or an equivalent), such as mere instructions to implement an abstract idea on a computer: (1) whether the claim recites only the idea of a solution or outcome i.e., the claim fails to recite details of how a solution to a problem is accomplished; (2) whether the claim invokes computers or other machinery merely as a tool to perform an existing process; and (3) the particularity or generality of the application of the judicial exception. Here, the steps to compare rules to find similar rules does not describe any specific improvement to that would demonstrate integration of the abstract idea into a practical application. Specifically, the claim invokes computers as a tool to perform an existing process. The steps recited in the claim limitation does not provide the improvement in efficiency and optimization of AI systems implementing rules for automated decision making and/or rule execution. The claim limitation provides the access to rules data to find rules that are similar. The steps recited provide a computer implementation to find rule duplicates. There is a lack of nexus between the claim limitation and the suggested improvement in technology. Therefore, the claims as currently recited does not overcome the 35 U.S.C. § 101 abstract idea rejection.
Applicant has amended independent claims 1, 11, and 19. Hence, the Applicant’s arguments are moot in view of new grounds of rejection.
Claim Rejections - 35 USC § 112
The following is a quotation of the first paragraph of 35 U.S.C. 112(a):
(a) IN GENERAL.—The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor or joint inventor of carrying out the invention.
The following is a quotation of the first paragraph of pre-AIA 35 U.S.C. 112:
The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor of carrying out his invention.
Claims 1, 11, and 19 are rejected under 35 U.S.C. 112(a) or 35 U.S.C. 112 (pre-AIA ), first paragraph, as failing to comply with the written description requirement. The claim(s) contains subject matter which was not described in the specification in such a way as to reasonably convey to one skilled in the relevant art that the inventor or a joint inventor, or for applications subject to pre-AIA 35 U.S.C. 112, the inventor(s), at the time the application was filed, had possession of the claimed invention. Specifically, the limitation “removing rule logic from one of the first rule or the second rule based on the overlap; and outputting a third rule corresponding to the one of the first rule or the second rule having the removed rule logic” is not disclosed in the as-filed disclosure. The specification discloses users having “redundant logic with other rules removed from within the rule”. Spec. P0020. The specification does not disclose removing overlapping rule or outputting a third rule.
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.
Claim 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Regarding claim 1 the limitations of “accessing rule data for a plurality of rules using a machine learning (ML) system comprising a first ML model configured for natural language processing (NLP) analysis of rule syntaxes for the plurality of rules, wherein the plurality of rules are associated with coded instructions for computing tasks by decision services associated with the system, and wherein first ML model is trained for rule comparison based on similarities in the rule syntaxes; determining the rule syntaxes for the plurality of rules using the first ML model”, “determining a plurality of vectors for the plurality of rules from the rule syntaxes using the first ML model”, “computing similarity scores of each of the plurality of vectors to other ones of the plurality of vectors”, “comparing the plurality of vectors based on the similarity scores”, “identifying a first rule that overlaps with a second rule within a similarity threshold based on the comparing”, “determining an overlap between the first rule and the second rule using the ML system and based on the rule syntaxes for the first rule and the second rule”, “flagging the first rule and the second rule based on the identifying, wherein the flagging includes identifying the overlap between the first rule and the second rule”, “removing rule logic from one of the first rule or the second rule based on the overlap”, and ”outputting the third rule corresponding to the one of the first rule or the second rule having the removed rule logic”, as drafted, are processes that, under broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components. More specifically, the mental process of a human reading rules syntax, writing a representation of the rules syntax on paper using a pen or pencil, comparing the representations to find a similarity score, identifying overlapping representations based on a score threshold, and writing the overlapping rules on paper. 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 ideas. Accordingly, the claims recite an abstract idea.
Regarding claim 11 the limitations of “receiving a first rule and a second rule, wherein the first rule and the second rule comprise coded instructions for computing tasks by decision services of a service provider”, “executing a first machine learning (ML) model configured for analysis of the first rule syntax and the second rule syntax, wherein first ML model is trained for rule comparison based on similarities in the rule syntaxes; determining the rule syntaxes for the plurality of rules using the first ML model”, “generating, using the executed first ML model, a first vector for the first rule syntax and a second vector for the second rule syntax”, “computing a similarity score of the first rule syntax to the second rule syntax”, “determining that the first rule and the second rule have overlapping rule syntaxes based on the similarity score and a syntax similarity threshold”, “determining an overlap between the first and second rules using the ML system and based on the overlapping rule syntaxes”, “providing rule overlap information for at least the first rule and the second rule via a rule authoring application of the service provider, wherein the rule overlap information comprises the overlap”, “removing rule logic from one of the first rule or the second rule based on the overlap”, and “outputting a third rule corresponding to the one of the first rule or the second rule having the removed rule logic”, as drafted, are processes that, under broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components. More specifically, the mental process of a human reading rules syntax, writing a representation of the rules syntax on paper using a pen or pencil, comparing the representations to find a similarity score, identifying overlapping representations based on a score threshold, and writing the overlapping rules on paper. 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 ideas. Accordingly, the claims recite an abstract idea.
Regarding claim 19 the limitations of “determining a plurality of rule syntaxes for a plurality of rules using a machine learning (ML) engine comprising at least one ML model, wherein the ML engine is configured for syntax analysis of the plurality of rule syntaxes for the plurality of rules, and wherein the least one ML model is trained for the syntax analysis based on similarities between the plurality of rule syntaxes”, “generating a plurality of vectors for the plurality of rules based on the plurality of rule syntaxes for the plurality of rules using ML engine, wherein the plurality of rules are associated with coded instructions for computing tasks by decision services of a service provider”, “computing a plurality of similarity scores of each of the plurality of vectors to other ones of the plurality of vectors”, “determining that a first rule of the plurality of rules has a first rule syntax of the plurality of rule syntaxes that overlaps with a second rule having a second rule syntax based on one of the plurality of similarity scores for a first vector of the plurality of vectors for the first rule to a second vector for the second rule meeting or exceeding a threshold similarity score”, “determining an overlap between the first rule and the second rule using the ML engine and based on the first and second rule syntaxes”, “outputting, via a rule authoring application associated with the plurality of rule, at least the one of the plurality of similarity scores with an identification of the overlap”, “removing rule logic from one of the first rule or the second rule based on the overlap”, and “outputting a third rule corresponding to the one of the first rule or the second rule having the removed rule logic”, as drafted, are processes that, under broadest reasonable interpretation, covers performance of the limitation in the mind but for the recitation of generic computer components. More specifically, the mental process of a human reading rules syntax, writing a representation of the rules syntax on paper using a pen or pencil, comparing the representations to find a similarity score, identifying overlapping representations based on a score threshold, and writing the overlapping rules on paper. 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 ideas. Accordingly, the claims recite an abstract idea.
This judicial exception is not integrated into a practical application because the recitation of a system in claim 1 and a non-transitory machine-readable medium in claims 19, reads to generalized computer components, based upon the claim interpretation wherein the structure is interpreted using P0071-P0077 in the specification. Accordingly, these additional elements do not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claims are directed to an abstract idea.
The claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to the integration of the abstract idea into a practical application, the additional element of using generalized computer components to read rules syntax, write a representation of the rules syntax on paper using a pen or pencil, compare the representations to find a similarity score, identify overlapping representations based on a score threshold, and write the overlapping rules on paper amounts to no more than mere instructions to apply the exception using a generic computer component. Mere instructions to apply an exception using a generic computer component cannot provide an inventive concept. The claims are not patent eligible.
With respect to claim 2, the claim recites “generating syntax similarity data for the first rule overlapping with the second rule using the ML system and based on the overlap” and “outputting the syntax similarity data”, which reads on a human writing first rule syntax, second rule syntax, and similarity score on paper using a pen or pencil. No additional limitations are present.
With respect to claim 3, the claim recites “wherein the syntax similarity data comprises a reason for an overlap based on at least one of rule conditions, rule variables, or rule metadata”, which reads on a human writing first rule syntax and second rule syntax and thinking of the syntax similarities. No additional limitations are present.
With respect to claim 4, the claim recites “wherein the comparing comprises clustering the similarity scores using a second ML model of the ML system, wherein the second ML model comprises an ML clustering technique associated with the similarity scores” and “performing a similarity analysis of the rule syntaxes for the plurality of rules based on the clustering and the similarity threshold”, which reads on a human creating a cluster of rules syntax representations on paper based on the representations and similarity. No additional limitations are present.
With respect to claim 5, the claim recites “wherein the operations further comprise: outputting, via a user interface of the ML system, a plurality of clusters of the similarity scores based on the clustering, wherein the plurality of clusters identify pairs of the plurality of rules belonging to each of the plurality of clusters”, which reads on a human creating a cluster of rules syntax representations on paper based on the representations and similarity. No additional limitations are present.
With respect to claim 6, the claim recites “wherein the determining the plurality of vectors comprises encoding a plurality of embeddings from the rule syntaxes and metadata for the plurality of rules using the first ML model, and wherein the first ML model comprises a deep neural network (DNN)”, which reads on a human thinking of a representation for rules syntax and metadata. No additional limitations are present.
With respect to claim 7, the claim recites “wherein the DNN is trained on previous outputs for the NLP analysis of the plurality of rules and feedback to the NLP analysis using a supervised learning technique”, which reads on a human thinking of a representation for rules syntax based on rules or instructions learned in the mind. No additional limitations are present.
With respect to claim 8, the claim recites “wherein the computing the similarity scores uses one of a cosine similarity technique or a Euclidean distance technique”, which reads on a human calculating similarity between representations based on cosine similarity. No additional limitations are present.
With respect to claim 9, the claim recites “wherein the plurality of rules correspond to decision rules for the decision services utilized by one or more applications or computing components of the system, and wherein the decision rules have the rule syntaxes based on the coded instructions and metadata for the decision rules”, which reads on a human reading rules syntax that are utilized by computing components in the mind. No additional limitations are present.
With respect to claim 10, the claim recites “receiving a request to change one of the first rule or the second rule based on the identifying the first rule overlapping the second rule within the similarity threshold” and “adjusting at least one rule engine utilizing the one of the first rule or the second rule, wherein the adjusting performs at least one of a combining, a retiring, or a modifying of the one of the first rule or the second rule”, which reads on a human changing a rules syntax for rules that overlap on paper or in the mind. No additional limitations are present.
With respect to claim 12, the claim recites “flagging the first rule and the second rule for overlapping rule review in the rule authoring application for the decision services of the service provider”, which reads on a human writing overlapping rules syntax on paper. No additional limitations are present.
With respect to claim 13, the claim recites “providing a reason for the flagging with the overlapping rule review, wherein the reason comprises at least one or more rule syntax portions that caused the overlap”, which reads on a human writing overlapping rules syntax based on similarity score. No additional limitations are present.
With respect to claim 14, the claim recites “wherein, prior to the generating, the method further comprises: preprocessing and formatting the first rule syntax and the second rule syntax for an embedding operation of the executed first ML model”, which reads on a human formatting the rules syntax in the mind before thinking of a representation for the rules syntax. No additional limitations are present.
With respect to claim 15, the claim recites “wherein the generating the first vector and the second vector comprises: determining data for a plurality of model features from the first rule syntax and the second rule syntax and metadata for the first rule and the second rule” and “encoding embeddings for the first vector and the second vector from the data”, which reads on a human thinking of a representation for the first and second rules syntax based on rules or instructions in the mind. No additional limitations are present.
With respect to claim 16, the claim recites “wherein the embeddings are associated with rule conditions, rule variables, and rule logic from the first rule syntax, the second rule syntax, and the metadata”, which reads on a human thinking of a representation for the first and second rules syntax based on rule variables in the mind. No additional limitations are present.
With respect to claim 17, the claim recites “wherein, prior to the determining whether the first rule and the second rule have the overlapping rule syntaxes, the method further comprises: clustering the similarity score with a plurality of other similarity scores using a second ML model comprising an ML clustering technique”, which reads on a human creating a cluster of rules syntax representations on paper based on the representations and similarity. No additional limitations are present.
With respect to claim 18, the claim recites “providing a user interface including data associated with the similarity score and the overlapping rule syntaxes, wherein the user interface includes an option to replace or delete one or more of the first rule or the second rule”, which reads on a human writing overlapping rules syntax on paper where others can modify the writing. No additional limitations are present.
With respect to claim 20, the claim recites “wherein the identification further comprises portions of the first rule syntax and the second rule syntax that contribute to the overlap”, which reads on a human writing first rule syntax and second rule syntax and thinking of the syntax similarities. No additional limitations are present.
These claims further do not remedy the judicial exception being integrated into a practical application and further fail to include additional elements that are sufficient to amount to significantly more than the judicial exception.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 11-16 and 19-20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Krishnamoorthy et al. (U.S. PG Pub No. 20210397421), hereinafter Krishnamoorthy.
Regarding claim 11 Krishnamoorthy teaches:
A method comprising: (P0078, Method of detecting and resolving redundancies.)
receiving a first rule and a second rule, wherein the first rule and the second rule comprise coded instructions for computing tasks by decision services of a service provider; (P0032, Code converter retrieves software code from repository.; P0016, Software applications are developed by writing software code.; P0026, Software application designed using software code may be stored in the memory and executed by the processor to perform the functions of device.)
executing a first machine learning (ML) model configured for analysis of the first rule syntax and the second rule syntax, wherein the first ML model is trained for rule comparison based on similarity scores between rule syntaxes, and wherein the executing includes determining the first and second rule syntaxes for the first and second rules using the first ML model; (P0018, The code converter uses machine learning to convert software code into vectors that represent the code. These vectors may then be compared with other vectors to determine similarities between code.; P0039, Code converter may use a neural network to analyze and organize tokens into hierarchal structure. Hierarchal structure may represent the structure and flow of change. Similar to hierarchal structure, hierarchal structure may include one or more layers that represent the structure and flow of change. Code converter converts each of the layers of hierarchal structure into vectors.; P0049, Training software code may be used to train the neural network such that when the neural network analyzes tokens and/or structure, the neural network may identify various portions of tokens and/or structure.)
generating, using the executed first ML model, a first vector for the first rule syntax and a second vector for the second rule syntax; (P0040, Code converter generates output vector based on vectors. As with output vector, output vector may be formed using any suitable operation on vectors.)
computing a similarity score of the first rule syntax to the second rule syntax; (P0060, Code converter determines various distances between output vectors. … These distances reflect the similarity of vectors.)
determining that the first rule and the second rule have overlapping rule syntaxes based on the similarity score and a syntax similarity threshold; (P0067, Code converter compares one or more distances to detect redundancies in changes and/or software code.; P0061, Code converter may make these determinations by comparing the various distances to one or more thresholds.)
determining an overlap between the first and second rules using the ML system and based on the overlapping rule syntaxes; (P0018, Code converter that uses machine learning to determine conflicts and redundancies in software code.)
providing rule overlap information for at least the first rule and the second rule via a rule authoring application of the service provider, wherein the rule overlap information comprises the overlap; (P0069, In particular embodiments, code converter may also generate and communicate alert to users to indicate the redundancy. As a result the users may resolve the redundancy between themselves.; Fig. 1, Code Converter connection to user devices by a network.)
removing rule logic from one of the first rule or the second rule based on the overlap; and (P0056, Generally, code converter compares distances between output vectors to determine whether conflicting changes are being made to software code. Code converter can resolve the conflicts by preventing certain changes from being implemented. In particular embodiments, code converter improves the operation and functioning of software code by detecting and resolving conflicts.)
outputting a third rule corresponding to the one of the first rule or the second rule having the removed rule logic. (P0062, Code converter may resolve conflict after detecting conflict. For example, code converter may determine that either one of change or change may not be implemented in the software code until the other change has been implemented in software code. By enforcing this ordering of implementing changes, code converter prevents a change from being made without first checking to see if that change conflicts with another change. In particular embodiments, code converter generates and communicates an alert that indicates the detected conflict. Code converter may communicate alert to one or more users that are developing the changes that cause the conflict. In this manner, the users may be alerted of the conflict and resolve the conflict between themselves.)
Regarding claim 12 Krishnamoorthy teaches claim 11.
Krishnamoorthy further teaches:
wherein, based on the determining the overlap, the method further comprises: flagging the first rule and the second rule for overlapping rule review in the rule authoring application for the decision services of the service provider. (P0069, Code converter may also generate and communicate alert to users to indicate the redundancy. As a result the users may resolve the redundancy between themselves.)
Regarding claim 13 Krishnamoorthy teaches claim 12.
Krishnamoorthy further teaches:
providing a reason for the flagging with the overlapping rule review, wherein the reason comprises at least one or more rule syntax portions that caused the overlap. (P0051, The distance between the vectors indicates the similarities and/or differences between their corresponding layers. For example, if two layers are very similar, then the vectorization function will produce vectors for those layers that are close to each other. On the other hand, if two layers are very different from one another, then the vectorization function will produce vectors for those layers that are very distant from one another.)
Regarding claim 14 Krishnamoorthy teaches claim 11.
Krishnamoorthy further teaches:
wherein, prior to the generating, the method further comprises: preprocessing and formatting the first rule syntax and the second rule syntax for an embedding operation of the executed first ML model. (P0049, Noise may include code that is considered redundant, gibberish, and/or unused.; P0050, Code converter may use noise identification model to identify noise in structure and specifically, in layers. For example, noise identification model may be applied to layers to determine that one or more layers are noise. In response, code converter may remove the noisy layers from further consideration.)
Regarding claim 15 Krishnamoorthy teaches claim 11.
Krishnamoorthy further teaches:
wherein the generating the first vector and the second vector comprises: determining data for a plurality of model features from the first rule syntax and the second rule syntax and metadata for the first rule and the second rule; and (P0048, Code converter uses a neural network to analyze and organize tokens into hierarchical structure. The neural network may examine software code to determine the flow of software code.; P0042, Code converter can compare and analyze different software code regardless of the programming language(s) used to write the software code. Even if two different users are coding in different languages, conflicts and redundancies between their code may still be detected by code converter.)
encoding embeddings for the first vector and the second vector from the data. (P0046, Each of these identified portions in software code may represent different functional blocks or groupings within software code. These functional blocks may be analyzed to produce output vector. By identifying portions, code converter may identify the functional blocks or functional groupings in software code that distinguish software code from other pieces of software code or changes.)
Regarding claim 16 Krishnamoorthy teaches claim 15.
Krishnamoorthy further teaches:
wherein the embeddings are associated with rule conditions, rule variables, and rule logic from the first rule syntax, the second rule syntax, and the metadata. (P0031, The software represents any suitable set of instructions, logic.; P0048, The neural network may examine software code to determine the flow of software code. For example, the neural network may determine the different branch points and function calls that control the flow of software code. The neural network then may arrange tokens based on these determined flows to form hierarchical structure. Structure may be any suitable structures such as, for example, a graph or a tree.)
Regarding claim 19 Krishnamoorthy teaches:
A non-transitory machine-readable medium having stored thereon machine-readable instructions executable to cause a machine to perform operations comprising: (P0031, Memory may store, either permanently or temporarily, data, operational software, or other information for processor.)
determining a plurality of rule syntaxes for a plurality of rules using a machine learning (ML) engine comprising at least one ML model, wherein the ML engine is configured for syntax analysis of the plurality of rule syntaxes for the plurality of rules, and wherein the least one ML model is trained for the syntax analysis based on similarities between the plurality of rule syntaxes; (P0018, The code converter uses machine learning to convert software code into vectors that represent the code. These vectors may then be compared with other vectors to determine similarities between code.; P0039, Code converter may use a neural network to analyze and organize tokens into hierarchal structure. Hierarchal structure may represent the structure and flow of change. Similar to hierarchal structure, hierarchal structure may include one or more layers that represent the structure and flow of change. Code converter converts each of the layers of hierarchal structure into vectors.; P0049, Training software code may be used to train the neural network such that when the neural network analyzes tokens and/or structure, the neural network may identify various portions of tokens and/or structure.)
generating a plurality of vectors for the plurality of rules based on the plurality of rule syntaxes for the plurality of rules using ML engine, wherein the plurality of rules are associated with coded instructions for computing tasks by decision services of a service provider; (P0032, Code converter retrieves software code from repository.; P0016, Software applications are developed by writing software code.; P0026, Software application designed using software code may be stored in the memory and executed by the processor to perform the functions of device.; P0039, Code converter may use a neural network to analyze and organize tokens into hierarchal structure. Hierarchal structure may represent the structure and flow of change. Similar to hierarchal structure, hierarchal structure may include one or more layers that represent the structure and flow of change. Code converter converts each of the layers of hierarchal structure into vectors.; P0040, Code converter generates output vector based on vectors. As with output vector, output vector may be formed using any suitable operation on vectors.)
computing a plurality of similarity scores of each of the plurality of vectors to other ones of the plurality of vectors; (P0060, Code converter determines various distances between output vectors. … These distances reflect the similarity of vectors.)
determining that a first rule of the plurality of rules has a first rule syntax of the plurality of rule syntaxes that overlaps with a second rule having a second rule syntax based on one of the plurality of similarity scores for a first vector of the plurality of vectors for the first rule to a second vector for the second rule meeting or exceeding a threshold similarity score; (P0067, Code converter compares one or more distances to detect redundancies in changes and/or software code.; P0061, Code converter may make these determinations by comparing the various distances to one or more thresholds.)
determining an overlap between the first and second rules using the ML system and based on the overlapping rule syntaxes; (P0018, Code converter that uses machine learning to determine conflicts and redundancies in software code.)
outputting, via a rule authoring application associated with the plurality of rule, at least the one of the plurality of similarity scores with an identification of the overlap; (P0041, As another example, code converter may detect, based on output vectors, that two changes are very similar to one another. As a result, code converter may detect that a redundancy is occurring and prevent one of the changes from being implemented. Code converter may then alert users of the redundancy and prevent one of the changes from being implemented.)
removing rule logic from one of the first rule or the second rule based on the overlap; and (P0056, Generally, code converter compares distances between output vectors to determine whether conflicting changes are being made to software code. Code converter can resolve the conflicts by preventing certain changes from being implemented. In particular embodiments, code converter improves the operation and functioning of software code by detecting and resolving conflicts.)
outputting a third rule corresponding to the one of the first rule or the second rule having the removed rule logic. (P0062, Code converter may resolve conflict after detecting conflict. For example, code converter may determine that either one of change or change may not be implemented in the software code until the other change has been implemented in software code. By enforcing this ordering of implementing changes, code converter prevents a change from being made without first checking to see if that change conflicts with another change. In particular embodiments, code converter generates and communicates an alert that indicates the detected conflict. Code converter may communicate alert to one or more users that are developing the changes that cause the conflict. In this manner, the users may be alerted of the conflict and resolve the conflict between themselves.)
Regarding claim 20 Krishnamoorthy teaches claim 19.
Krishnamoorthy further teaches:
wherein the identification further comprises portions of the first rule syntax and the second rule syntax that contributed to the overlap. (P0051, The distance between the vectors indicates the similarities and/or differences between their corresponding layers. For example, if two layers are very similar, then the vectorization function will produce vectors for those layers that are close to each other. On the other hand, if two layers are very different from one another, then the vectorization function will produce vectors for those layers that are very distant from one another.P0064, Code converter may detect when two users are developing code for the same feature but in different portions of software code. In that scenario, code converter may instruct one of the users to stop developing the feature to avoid redundant work.)
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-10, 17, and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Krishnamoorthy in view of Sarafijanovic et al. (U.S. PG Pub No. 20240428010), hereinafter Sarafijanovic.
Regarding claim 1 Krishnamoorthy teaches:
A system comprising: a non-transitory memory; and one or more hardware processors coupled to the non-transitory memory and configured to read instructions from the non-transitory memory to cause the system to perform operations comprising: (P0026, Device may include a hardware processor, memory, and/or circuitry configured to perform any of the functions or actions of device 104 described herein.)
accessing rule data for a plurality of rules using a machine learning (ML) system comprising a first ML model configured for natural language processing (NLP) analysis of rule syntaxes for the plurality of rules, wherein the plurality of rules are associated with coded instructions for computing tasks by decision services associated with the system, and wherein first ML model is trained for rule comparison based on similarities in the rule syntaxes; determining the rule syntaxes for the plurality of rules using the first ML model; (P0032, Code converter retrieves software code from repository.; P0016, Software applications are developed by writing software code.; P0026, Software application designed using software code may be stored in the memory and executed by the processor to perform the functions of device.; P0018, The code converter uses machine learning to convert software code into vectors that represent the code. These vectors may then be compared with other vectors to determine similarities between code.; P0039, Code converter may use a neural network to analyze and organize tokens into hierarchal structure. Hierarchal structure may represent the structure and flow of change. Similar to hierarchal structure, hierarchal structure may include one or more layers that represent the structure and flow of change. Code converter converts each of the layers of hierarchal structure into vectors.; P0040, Code converter generates output vector based on vectors. As with output vector, output vector may be formed using any suitable operation on vectors.; P0049, Training software code may be used to train the neural network such that when the neural network analyzes tokens and/or structure, the neural network may identify various portions of tokens and/or structure.)
determining a plurality of vectors for the plurality of rules from the rule syntaxes using the first ML model; (P0046, Each of these identified portions in software code may represent different functional blocks or groupings within software code. These functional blocks may be analyzed to produce output vector. By identifying portions, code converter may identify the functional blocks or functional groupings in software code that distinguish software code from other pieces of software code or changes.)
computing similarity scores of each of the plurality of vectors to other ones of the plurality of vectors; (P0060, Code converter determines various distances between output vectors.)
comparing the plurality of vectors based on the similarity scores; (P0060, These distances reflect the similarity of vectors.)
identifying a first rule that overlaps with a second rule within a similarity threshold based on the comparing; (P0067, Code converter compares one or more distances to detect redundancies in changes and/or software code.)
determining an overlap between the first and second rules using the ML system and based on the overlapping rule syntaxes; (P0018, Code converter that uses machine learning to determine conflicts and redundancies in software code.)
flagging the first rule and the second rule based on the identifying, wherein the flagging includes identifying the overlap between the first rule and the second rule; (P0067, Code converter may also generate and communicate an alert.)
removing rule logic from one of the first rule or the second rule based on the overlap; and (P0056, Generally, code converter compares distances between output vectors to determine whether conflicting changes are being made to software code. Code converter can resolve the conflicts by preventing certain changes from being implemented. In particular embodiments, code converter improves the operation and functioning of software code by detecting and resolving conflicts.)
outputting a third rule corresponding to the one of the first rule or the second rule having the removed rule logic. (P0062, Code converter may resolve conflict after detecting conflict. For example, code converter may determine that either one of change or change may not be implemented in the software code until the other change has been implemented in software code. By enforcing this ordering of implementing changes, code converter prevents a change from being made without first checking to see if that change conflicts with another change. In particular embodiments, code converter generates and communicates an alert that indicates the detected conflict. Code converter may communicate alert to one or more users that are developing the changes that cause the conflict. In this manner, the users may be alerted of the conflict and resolve the conflict between themselves.)
Krishnamoorthy does not specifically teach:
accessing rule data for a plurality of rules using a machine learning (ML) system comprising a first ML model configured for natural language processing (NLP) analysis of rule syntaxes for the plurality of rules, wherein the plurality of rules are associated with coded instructions for computing tasks by decision services associated with the system, and wherein first ML model is trained for rule comparison based on similarities in the rule syntaxes; determining the rule syntaxes for the plurality of rules using the first ML model;
Sarafijanovic, however, teaches:
accessing rule data for a plurality of rules using a machine learning (ML) system comprising a first ML model configured for natural language processing (NLP) analysis of rule syntaxes for the plurality of rules, wherein the plurality of rules are associated with coded instructions for computing tasks by decision services associated with the system, and wherein first ML model is trained for rule comparison based on similarities in the rule syntaxes; determining the rule syntaxes for the plurality of rules using the first ML model; (P0065, Each of the text-portions may be selected out of the group comprising a word, several subsequent words, a phrase, i.e., a couple of subsequent words in a semantic context, e.g., a half-sentence, a sentence, a double-sentence, multiple (e.g., subsequent) sentences, a paragraph, chapter and the document, several subsequent paragraphs, or combinations of these or similar text parts.; P0078, The method includes embedding the extracted text-portions into fixed-sized K-dimensional embedding text-portion vectors having a dimension not necessarily equal to N (typically a different dimension than N). For this, known technology, e.g., BERT (Bidirectional Encoder Representations from Transformers) or other transformers may be used.)
It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to utilize natural language processing analysis in an ML model. It would have been obvious to combine the references because the representation obtained from NLP analysis is advantageous in similarity matching in resolution and accuracy because information is available about which text portions contributed most, and how much, to a result of similarity search. (Sarafijanovic, P0063)
Regarding claim 4 Krishnamoorthy in view of Sarafijanovic teach claim 1.
Krishnamoorthy does not specifically teach:
wherein the comparing comprises clustering the similarity scores using a second ML model of the ML system, wherein the second ML model comprises an ML clustering technique associated with the similarity scores; and
performing a similarity analysis of the rule syntaxes for the plurality of rules based on the clustering and the similarity threshold.
Sarafijanovic, however, teaches:
wherein the comparing comprises clustering the similarity scores using a second ML model of the ML system, wherein the second ML model comprises an ML clustering technique associated with the similarity scores; and (P0079, The method includes clustering the embedding text-portion vectors into N clusters C_1, C_2, . . . , C_N, where N is a configurable parameter. The clustering can be based on a relative distance of the vectors to each other, e.g., the Euclidian distance or a cosine-similarity based distance.)
performing a similarity analysis of the rule syntaxes for the plurality of rules based on the clustering and the similarity threshold. (P0073, The vectors of a cluster may be represented by a centroid vector of the cluster or another average for the vectors of the cluster. As a consequence, no comparison may be required for each single vector of the cluster. Instead, for reasons of computational efficiency, only the centroid vector may need to be used as a representative for the computing of the semantic similarity between text-portion vectors of a document and the cluster.; P0099, After all coordinates are set, thresholding or normalization can be applied.)
It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to utilize clustering technique in performing similarity analysis. It would have been obvious to combine the references because the use of clusters is a known technique in classifying vectors to its nearest neighbors that yields a predictable result of analyzing and finding similarities of vectors representing rule syntax.
Regarding claim 6 Krishnamoorthy in view of Sarafijanovic teach claim 1.
Krishnamoorthy further teaches:
wherein the determining the plurality of vectors comprises encoding a plurality of embeddings from the rule syntaxes and metadata for the plurality of rules using the first ML model, and wherein the first ML model comprises a deep neural network (DNN). (P0039, Code converter may use a neural network to analyze and organize tokens into hierarchal structure. Hierarchal structure may represent the structure and flow of change. Similar to hierarchal structure, hierarchal structure may include one or more layers that represent the structure and flow of change. Code converter converts each of the layers of hierarchal structure into vectors.; P0040, Code converter generates output vector based on vectors. As with output vector, output vector may be formed using any suitable operation on vectors.)
Regarding claim 7 Krishnamoorthy in view of Sarafijanovic teach claim 6.
Krishnamoorthy does not specifically teach:
wherein the DNN is trained on previous outputs for the NLP analysis of the plurality of rules and feedback to the NLP analysis using a supervised learning technique.
Sarafijanovic, however, teaches:
wherein the DNN is trained on previous outputs for the NLP analysis of the plurality of rules and feedback to the NLP analysis using a supervised learning technique. (P0078, The method includes embedding the extracted text-portions into fixed-sized K-dimensional embedding text-portion vectors having a dimension not necessarily equal to N (typically a different dimension than N). For this, known technology, e.g., BERT (Bidirectional Encoder Representations from Transformers) or other transformers may be used.; P0050, [BERT is pre-trained model to encode multiple words.])
It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to utilize DNN trained on previous outputs. It would have been obvious to combine the references because the use of a trained DNN, like BERT, is a known technique that provides the encoding of contextual information in a sequence of words as opposed to simple word embeddings.
Regarding claim 8 Krishnamoorthy in view of Sarafijanovic teach claim 1.
Krishnamoorthy does not specifically teach:
wherein the computing the similarity scores uses one of a cosine similarity technique or a Euclidean distance technique.
Sarafijanovic, however, teaches:
wherein the computing the similarity scores uses one of a cosine similarity technique or a Euclidean distance technique. (P0079, The clustering can be based on a relative distance of the vectors to each other, e.g., the Euclidian distance or a cosine-similarity based distance.)
It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to utilize cosine similarity or Euclidean distance in computing similarity scores. It would have been obvious to combine the references because cosine similarity or Euclidean distance to find vector similarity is a known technique in classifying vectors to its nearest neighbors that yields a predictable result of analyzing and finding similarities of vectors representing rule syntax.
Regarding claim 9 Krishnamoorthy in view of Sarafijanovic teach claim 1.
Krishnamoorthy further teaches:
wherein the plurality of rules correspond to decision rules for the decision services utilized by one or more applications or computing components of the system, and wherein the decision rules have the rule syntaxes based on the coded instructions and metadata for the decision rules. (P0016, Software applications are developed by writing software code.; P0026, Software application designed using software code may be stored in the memory and executed by the processor to perform the functions of device.)
Regarding claim 10 Krishnamoorthy in view of Sarafijanovic teach claim 1.
Krishnamoorthy further teaches:
wherein the operations further comprise: receiving a request to change one of the first rule or the second rule based on the identifying the first rule overlapping the second rule within the similarity threshold; and (P0069, Code converter may also generate and communicate alert to users to indicate the redundancy. As a result the users may resolve the redundancy between themselves.
P0038, Code converter may receive change.)
adjusting at least one rule engine utilizing the one of the first rule or the second rule, wherein the adjusting performs at least one of a combining, a retiring, or a modifying of the one of the first rule or the second rule. (P0038, Change may be a change to software code that is being implemented by a user on a device. Change may change software code such that the functionality of a feature in software application is changed. Code converter converts change into tokens. In certain embodiments, code converter may parse change to determine one or more portions of change. These portions may then be converted to tokens that include numerical representations of each of these portions of change.)
Regarding claim 17 Krishnamoorthy teaches claim 11.
Krishnamoorthy does not specifically teach:
prior to the determining whether the first rule and the second rule have the overlapping rule syntaxes, the method further comprises: clustering the similarity score with a plurality of other similarity scores using a second ML model comprising an ML clustering technique.
Sarafijanovic, however, teaches:
prior to the determining whether the first rule and the second rule have the overlapping rule syntaxes, the method further comprises: clustering the similarity score with a plurality of other similarity scores using a second ML model comprising an ML clustering technique. (P0079, The method includes clustering the embedding text-portion vectors into N clusters C_1, C_2, . . . , C_N, where N is a configurable parameter. The clustering can be based on a relative distance of the vectors to each other, e.g., the Euclidian distance or a cosine-similarity based distance.)
It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to utilize clustering technique in performing similarity analysis. It would have been obvious to combine the references because the use of clusters is a known technique in classifying vectors to its nearest neighbors that yields a predictable result of analyzing and finding similarities of vectors representing rule syntax.
Regarding claim 18 Krishnamoorthy in view of Sarafijanovic teach claim 17.
Krishnamoorthy further teaches:
providing a user interface including data associated with the similarity score and the overlapping rule syntaxes, wherein the user interface includes an option to replace or delete one or more of the first rule or the second rule. (P0026, Device may also include a user interface.; P0069, Code converter may also generate and communicate alert to users to indicate the redundancy. As a result the users may resolve the redundancy between themselves.; P0038, Code converter may receive change.; P0038, Change may be a change to software code that is being implemented by a user on a device. Change may change software code such that the functionality of a feature in software application is changed. Code converter converts change into tokens. In certain embodiments, code converter may parse change to determine one or more portions of change. These portions may then be converted to tokens that include numerical representations of each of these portions of change.)
Claims 2, 3, and 5 are rejected under 35 U.S.C. 103 as being unpatentable over Krishnamoorthy in view of Sarafijanovic and further view of Wang et al. (U.S. PG Pub No. 20250231993), hereinafter Wang.
Regarding claim 2 Krishnamoorthy in view of Sarafijanovic teach claim 1.
Krishnamoorthy further teaches:
generating syntax similarity data for the first rule overlapping with the second rule using the ML system based on the overlap; and outputting the syntax similarity data. (P0051, The distance between the vectors indicates the similarities and/or differences between their corresponding layers. For example, if two layers are very similar, then the vectorization function will produce vectors for those layers that are close to each other. On the other hand, if two layers are very different from one another, then the vectorization function will produce vectors for those layers that are very distant from one another.)
Krishnamoorthy in view of Sarafijanovic does not specifically teach:
generating syntax similarity data for the first rule overlapping with the second rule using the ML system based on the overlap; and outputting the syntax similarity data.
Wang, however, teaches:
generating syntax similarity data for the first rule overlapping with the second rule using the ML system based on the overlap; and outputting the syntax similarity data. (P0005, The operations can include generating an output for display showing the first sectioned text strings adjacent to the second sectioned text strings with visual indications of the matching groupings of text strings.; Fig. 39.; P0344, The compared content also includes corresponding groupings of text strings that are identified as similar, as described above, along with their computed similarity scores, such as text strings 3910 and 3920. In the graphical user interface, identical text strings may be distinguished from similar text strings using different colors, fonts, text styles, or other visual queues.)
It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to output similarity data. It would have been obvious to combine the references because output of similarity data avoids users having to manually determine the similar portions of the text or syntax. Wang, P0298.
Regarding claim 3 Krishnamoorthy in view of Sarafijanovic and further view of Wang teach claim 2.
Krishnamoorthy further teaches:
wherein the syntax similarity data comprises a reason for an overlap based on at least one of rule conditions, rule variables, or rule metadata. (P0051, The distance between the vectors indicates the similarities and/or differences between their corresponding layers. For example, if two layers are very similar, then the vectorization function will produce vectors for those layers that are close to each other. On the other hand, if two layers are very different from one another, then the vectorization function will produce vectors for those layers that are very distant from one another.)
Regarding claim 5 Krishnamoorthy in view of Sarafijanovic teach claim 4.
Krishnamoorthy in view of Sarafijanovic does not specifically teach:
outputting, via a user interface of the ML system, a plurality of clusters of the similarity scores based on the clustering, wherein the plurality of clusters identify pairs of the plurality of rules belonging to each of the plurality of clusters.
Wang, however, teaches:
outputting, via a user interface of the ML system, a plurality of clusters of the similarity scores based on the clustering, wherein the plurality of clusters identify pairs of the plurality of rules belonging to each of the plurality of clusters. (P0005, The operations can include generating an output for display showing the first sectioned text strings adjacent to the second sectioned text strings with visual indications of the matching groupings of text strings.; Fig. 39.; P0344, The compared content also includes corresponding groupings of text strings that are identified as similar, as described above, along with their computed similarity scores, such as text strings 3910 and 3920. In the graphical user interface, identical text strings may be distinguished from similar text strings using different colors, fonts, text styles, or other visual queues.)
It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to output similarity data. It would have been obvious to combine the references because output of similarity data avoids users having to manually determine the similar portions of the text or syntax. Wang, P0298.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Perez et al. (U.S. PG Pub No. 20200265264): Hierarchical rule clustering.
Teaches the clustering of individual rules and clusters similar rules together.
Su et al. (U.S. PG Pub No. 20180046441): Code relatives detection
Teaches identification of code segments that are similar.
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 DANIEL WONSUK CHUNG whose telephone number is (571)272-1345. The examiner can normally be reached Monday - Friday (7am-4pm)[PT].
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, PIERRE-LOUIS DESIR can be reached at (571)272-7799. 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.
/DANIEL W CHUNG/Examiner, Art Unit 2659
/PIERRE LOUIS DESIR/Supervisory Patent Examiner, Art Unit 2659