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 § 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(s) 1-20 is/are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Claim(s) 1, 8 and 15 recite(s):
identify one or more source files in a software code development environment, wherein each of the one or more source files comprises software code associated with one or more entity applications that is developed by one or more users in one or more software programming languages;
translate the software code in each of the one or more source files that is developed in the one or more software programming languages into a translated code that is in a first software programming language, via a transformer based sequence-to-sequence model;
merge the translated code associated with the software code in each of the one or more source files into a unified code, wherein the unified code is in the first software programming language;
automatically perform build and packaging of the unified code for deployment; and
automatically deploy the packaged unified code into a software code production environment.
Step 1: are the claims to a process, machine, manufacture, or a composition of matter?
Yes. Claim 1 is a machine
Yes. Claim 8 is a manufacture
Yes. Claim 15 is a method
Step 2A, Prong I; Does the claim recite an abstract idea, law of nature, or natural phenomenon?
Yes: (an) abstract idea(s).
The limitation of "identify", as drafted in #1 above, under its broadest reasonable interpretation, covers performance of the mind, but for generic computer parts. That is, other than reciting A system for or a computer product for, nothing in the claim element precludes the step from performed by a person.
The limitation of "translate", as drafted in #2 above, under its broadest reasonable interpretation, covers performance of the mind, but for generic computer parts. That is, other than reciting A system for or a computer product for, nothing in the claim element precludes the step from performed by a person.
Step 2A Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The "merge" limitation in #3 above. As claimed and under BRI, is an additional element that is mere instructions to apply an exception. For example, "merge the translated code associated with the software code in each of the one or more source files into a unified code" in the context of this claim encompasses merely data manipulation. See in the MPEP §§2106.05(f).
The limitations in #4 and #5 above. As claimed and under BRI, is an additional element that is mere instructions to apply an exception. For example, automatically building and packaging and automatically deploying into production in the context of this claim encompasses merely compiling and deploying a software application. See in the MPEP §§2106.05(f).
Additionally, the claims recite the following additional element:
A system for performing multi-platform software code merging and migration using hybrid neural networks
at least one processing device;
at least one memory device
A computer program product for performing multi-platform software code merging and migration using hybrid neural networks, comprising a non-transitory computer-readable storage medium
The element that is recited in the claims are stated at a high level of generality (i.e. as a generic processor performing a generic computer function) such that it amounts no more than mere instructions to apply the exception using generic computer component. See the MPEP §§ 2106.05(f). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limitation on practicing the abstract idea(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because mere instructions to apply an exception using generic computer components cannot provide the inventive step.
Claim(s) 2, 9, and 16 recite(s):
analyzing the translated code to detect duplicate code snippets in the translated code;
and in response to detecting the duplicate code snippets in the translated code, isolating the duplicate code snippets from the translated code
Step 1: are the claims to a process, machine, manufacture, or a composition of matter?
Yes. Claim 2 is a machine
Yes. Claim 9 is a manufacture
Yes. Claim 16 is a method
Step 2A, Prong I; Does the claim recite an abstract idea, law of nature, or natural phenomenon?
Yes: (an) abstract idea(s).
The limitation of "analyzing the translated code", as drafted in #6 above, under its broadest reasonable interpretation, covers performance of the human mind, but for generic computer parts. That is, other than reciting a system or a computer product, nothing in the claim element precludes the step from being performed on paper by a person.
Additionally, the claims recite the following additional element:
Computer program product
The element that is recited in the claims are stated at a high level of generality (i.e. as a generic processor performing a generic computer function) such that it amounts no more than mere instructions to apply the exception using generic computer component. See the MPEP §§ 2106.05(f). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limitation on practicing the abstract idea(s).
Step 2A Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The "isolating the duplicate code snippets" limitation in #7 above. As claimed and under BRI, is an additional element that is mere instructions to apply an exception. For example, "isolating the duplicate code snippets" in the context of this claim encompasses merely data manipulation. See in the MPEP §§2106.05(f).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because mere instructions to apply an exception using generic computer components cannot provide the inventive step.
Claim(s) 3, 10, and 17 recite(s):
analyzing the translated code to identify one or more patterns associated with one or more known conflicts, via a Siamese neural network;
determining that the one or more patterns in the translated code causes merge conflicts during deployment;
and performing one or more corrective measures to resolve the merge conflicts.
Step 1: are the claims to a process, machine, manufacture, or a composition of matter?
Yes. Claim 3 is a machine
Yes. Claim 10 is a manufacture
Yes. Claim 17 is a method
Step 2A, Prong I; Does the claim recite an abstract idea, law of nature, or natural phenomenon?
Yes: (an) abstract idea(s).
The limitation of "analyzing", as drafted in #8 above, under its broadest reasonable interpretation, covers performance of the mind, but with generic computer parts. That is, other than reciting a system or a computer product, nothing in the claim element precludes the step from being performed on paper by a person.
The limitation of "determining", as drafted in #9 above, under its broadest reasonable interpretation, covers performance of the mind, but with generic computer parts. That is, other than reciting a system or a computer product, nothing in the claim element precludes the step from being performed on paper by a person.
Additionally, the claims recite the following additional element:
Computer program product
The element that is recited in the claims are stated at a high level of generality (i.e. as a generic processor performing a generic computer function) such that it amounts no more than mere instructions to apply the exception using generic computer component. See the MPEP §§ 2106.05(f). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limitation on practicing the abstract idea(s).
Step 2A Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The performing limitation in #10 above. As claimed and under BRI, is an additional element that is mere instructions to apply an exception. For example, "performing one or more corrective measures" in the context of this claim encompasses merely implementing fixes. See in the MPEP §§2106.05(f).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because mere instructions to apply an exception using generic computer components cannot provide the inventive step.
Claim(s) 4 and 11 recite(s):
wherein the executable instructions cause the at least one processing device to merge the translated code associated with the software code in each of the one or more source files based on one or more historical merge patterns
Step 1: are the claims to a process, machine, manufacture, or a composition of matter?
Yes. Claim 4 is a machine
Yes. Claim 11 is a manufacture
Step 2A, Prong I; Does the claim recite an abstract idea, law of nature, or natural phenomenon?
No.
Step 2A Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The limitation in #11 above. As claimed and under BRI, is an additional element that is mere instructions to apply an exception. For example, "cause the at least one processing device to merge" in the context of this claim encompasses merely executing instructions. See in the MPEP §§2106.05(f).
Additionally, the claims recite the following additional element:
at least one processing device
Computer program product
The element that is recited in the claims are stated at a high level of generality (i.e. as a generic processor performing a generic computer function) such that it amounts no more than mere instructions to apply the exception using generic computer component. See the MPEP §§ 2106.05(f). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limitation on practicing the abstract idea(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because mere instructions to apply an exception using generic computer components cannot provide the inventive step.
Claim(s) 5, 13, and 19 recite(s):
train the transformer based sequence-to-sequence model based on historical snippets of code in each of the one or more software programming languages comprising the first software programming language.
Step 1: are the claims to a process, machine, manufacture, or a composition of matter?
Yes. Claim 5 is a machine.
Yes. Claim 13 is a manufacture
Yes. Claim 19 is a method
Step 2A, Prong I; Does the claim recite an abstract idea, law of nature, or natural phenomenon?
No.
Step 2A Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The limitations in #12 above, as claimed and under BRI, is an additional element that is insignificant extra-solution activity. For example, training based on historical snippets of code in the context of this claim encompasses retrieving data from memory. See in the MPEP §§ 2106.05(g).
Additionally, the claims recite the following additional element:
at least one processing device
Computer program product
The element that is recited in the claims are stated at a high level of generality (i.e. as a generic processor performing a generic computer function) such that it amounts no more than mere instructions to apply the exception using generic computer component. See the MPEP §§ 2106.05(f). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limitation on practicing the abstract idea(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because mere instructions to apply an exception using generic computer components cannot provide the inventive step.
Additionally, with regards to #12 above, per MPEP 2106.05(d)(ll), the courts have recognized the following computer function(s) as well-understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity:
Storing and retrieving information in memory, Versata Dev. Group, Inc. v. SAP Am., Inc., 793 F.3d 1306, 1334, 115 USPQ2d 1681, 1701 (Fed. Cir. 2015); OIP Techs., 788 F.3d at 1363, 115 USPQ2d at 1092-93;
Claim(s) 6, 14, and 20 recite(s):
provide a virtual environment to the one or more users to allow the one or more users to perform one or more software code related operations associated with the one or more entity applications
Step 1: are the claims to a process, machine, manufacture, or a composition of matter?
Yes. Claim 6 is a machine.
Yes. Claim 14 is a manufacture
Yes. Claim 20 is a method
Step 2A, Prong I; Does the claim recite an abstract idea, law of nature, or natural phenomenon?
No.
Step 2A Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The limitations in #13 above, as claimed and under BRI, is an additional element that is insignificant extra-solution activity. For example, "provide a virtual environment" in the context of this claim encompasses transmitting data. See in the MPEP §§ 2106.05(g).
Additionally, the claims recite the following additional element:
at least one processing device
Computer program product
The element that is recited in the claims are stated at a high level of generality (i.e. as a generic processor performing a generic computer function) such that it amounts no more than mere instructions to apply the exception using generic computer component. See the MPEP §§ 2106.05(f). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limitation on practicing the abstract idea(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because mere instructions to apply an exception using generic computer components cannot provide the inventive step.
Additionally, with regards to #13 above, per MPEP 2106.05(d)(ll), the courts have recognized the following computer function(s) as well-understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity:
buySAFE, Inc. v. Google, Inc., 765 F.3d 1350, 1355, 112 USPQ2d 1093, 1096 (Fed. Cir. 2014) (computer receives and sends information over a network);
Claim(s) 7, 12, and 18 recite(s):
provide a digital twin of software code environments comprising the software code development environment, software code testing environment, and the software code production environment;
allow the one or more users to perform one or more software code related operations associated with the one or more entity applications in the digital twin;
determine that the one or more software code related operations are successful;
and implement the one or more software code related operations performed in the digital twin in the software code environments
Step 1: are the claims to a process, machine, manufacture, or a composition of matter?
Yes. Claim 7 is a machine.
Yes. Claim 12 is a manufacture
Yes. Claim 18 is a method
Step 2A, Prong I; Does the claim recite an abstract idea, law of nature, or natural phenomenon?
Yes: (an) abstract idea(s).
The limitation of "determination", as drafted in #16 above, under its broadest reasonable interpretation, covers performance of the mind, but for generic computer parts. That is, other than reciting at least one processing device, a system, or a computer product, nothing in the claim element precludes the step from performed by a person on paper.
Step 2A Prong II: Does the claim recite additional elements that integrate the judicial exception into a practical application?
No.
The "allow" limitation in #15 above. As claimed and under BRI, is an additional element that is mere instructions to apply an exception. For example, "allow ... users to perform ... software code related operations" in the context of this claim encompasses merely allowing users to execute code. See in the MPEP §§2106.05(f).
The “implement” limitation in #17 above. As claimed and under BRI, is an additional element that is mere instructions to apply an exception. For example, "implement ... software code related operations" in the context of this claim encompasses merely data manipulation. See in the MPEP §§2106.05(f).
Additionally, the claims recite the following additional element:
at least one processing device
a computer product
The element that is recited in the claims are stated at a high level of generality (i.e. as a generic processor performing a generic computer function) such that it amounts no more than mere instructions to apply the exception using generic computer component. See the MPEP §§ 2106.05(f). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limitation on practicing the abstract idea(s).
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because mere instructions to apply an exception using generic computer components cannot provide the inventive step.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
Claim(s) 1, 4-5, 8, 11, 13, 15, and 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 20230236811 A1 (hereinafter referred to as Sundaresan) and US 20230350657 A1 (hereinafter referred to as Singh) in further view of US 11481245 B1 (hereinafter referred to as Oliver).
Regarding claim 1, Sundaresan teaches:
A system for performing multi-platform software code merging and migration using hybrid neural networks, comprising: at least one processing device; at least one memory device; and a module stored in the at least one memory device comprising executable instructions that when executed by the at least one processing device, cause the at least one processing device to ([Abstract], Sundaresan shows an automated system for resolving program merges uses a multi-task neural transformer with attention):
identify one or more source files in a software code development environment, wherein each of the one or more source files comprises software code associated with one or more entity applications that is developed by one or more users in one or more software programming languages (Para. [72], Sundaresan shows the source code repository may detect a merge conflict and invoke the multi-task neural transformer model to generate a resolution. The programs involved in the merge conflict are obtained from their respective source code repositories (Collectively, block 602). Para. [37], Sundaresan shows a source code repository 202 is a file archive that hosts projects having source code files and other data (e.g., scripts, test cases, etc.) shared by multiple developers. The source code repository 202 may be private and internal to an organization, group, enterprise or user or may be publicly-accessible through the Internet. The source code repository 202 may contain source code files from different domains, such as without limitation, scientific computing, web development, dataflow programming, machine learning, and the like);
merge the translated code associated with the software code in each of the one or more source files into a unified code, wherein the unified code is in the first software programming language; (Para. [93] Sundaresan shows detecting a merge conflict between source code snippet A, source code snippet B, and code base O; transforming source code snippet A, source code snippet B, and code base O into a respective abstract syntax tree (AST), wherein source code snippet A and source code snippet B include conflicting modification to code base O; constructing a plurality of aligned AST-node sequences and a plurality of aligned edit sequences, wherein the plurality of aligned AST-node sequences and the plurality of edit sequences are derived from the respective ASTs of source code snippet A, source code snippet B, and code base O; predicting tree editing steps to resolve the merge conflict from a deep learning model, wherein the deep learning model predicts a merge conflict resolution given the plurality of aligned AST-node sequences and the plurality of aligned edit sequences; and applying the predicted tree editing steps to the code base O);
Sundaresan does not disclose:
translate the software code in each of the one or more source files that is developed in the one or more software programming languages into a translated code that is in a first software programming language, via a transformer based sequence-to-sequence model;
automatically perform build and packaging of the unified code for deployment;
and automatically deploy the packaged unified code into a software code production environment.
However, in the analogous art of software translation, Singh teaches:
translate the software code in each of the one or more source files that is developed in the one or more software programming languages into a translated code that is in a first software programming language, via a transformer based sequence-to-sequence model (Para. [27-28]. Singh shows a code translator 104 may be configured to leverage knowledge of multiple different programming languages in order to aid clients 110-1 to 110-P in translating between programming languages when editing, updating, re-platforming, migrating, or otherwise acting upon their code bases 112-1 to 112-P. For example, code translator 104 may be configured to translate code snippets from one programming language to another, e.g., on the fly or in batches. This may, for instance, enable a developer fluent in a first programming language to view and/or edit source code that was originally written in a second, less-familiar programming language in the first programming language. It may also significantly decrease the time and/or costs associated with migrating code bases between different programming languages. In various implementations, code knowledge system 102 may include a machine learning (“ML” in FIG. 1) database 105 that includes data indicative of one or more trained machine learning models 106-1 to 106-N. These trained machine learning models 106-1 to 106-N may take various forms that will be described in more detail below, including but not limited to BERT (Bidirectional Encoder Representations from Transformers) transformers, GPT (Generative Pre-trained Transformer) transformers, a graph-based network such as a graph neural network (“GNN”), graph attention neural network (“GANN”), or graph convolutional neural network (“GCN”), other types of sequence-to-sequence models and/or encoder-decoders, various flavors of a recurrent neural network (“RNN”, e.g., long short-term memory, or “LSTM”, gate recurrent units, or “GRU”, etc.), and any other type of machine learning model that may be applied to facilitate selected aspects of the present disclosure);
In addition, in the analogous art of automated compilations and packaging, Oliver teaches:
automatically perform build and packaging of the unified code for deployment;
and automatically deploy the packaged unified code into a software code production environment (Para. [28] Oliver shows a build system 106 comprises a system for automatically determining and executing steps to compile, test, package, and/or deploy a program).
Therefore, it would have been obvious to one of ordinary skill in the art of the claimed invention to incorporate the teachings of Singh into the teachings of Sundaresan to implement “translate the software code in each of the one or more source files that is developed in the one or more software programming languages into a translated code that is in a first software programming language, via a transformer based sequence-to-sequence model“. The modification would have been obvious as one of ordinary skill in the art would be motivated as existing programmers at the entity may lack expertise in the target programming language (Singh, Para. [4]).
In addition, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Oliver into the teachings of Sundaresan as modified to implement “automatically perform build and packaging of the unified code for deployment; and automatically deploy the packaged unified code into a software code production environment”. The modification would have been obvious as one of ordinary skill in the art would be motivated as a build tool utilizes special project source code known as a script or a set of scripts for coordinating the build process ... writing and maintaining these scripts becomes a tedious and time-consuming task for developers, as it has to be performed in addition to writing the project source code, thus reducing overall productivity (Oliver, Para. [1]).
Regarding claim 4, Sundaresan as modified teaches claim 1 as cited above and teaches:
wherein merging the translated code associated with the software code in each of the one or more source files comprises: analyzing the translated code to identify one or more patterns associated with one or more known conflicts, via a Siamese neural network; determining that the one or more patterns in the translated code causes merge conflicts during deployment; and performing one or more corrective measures to resolve the merge conflicts (Para. [36], Sundaresan shows training a multi-task neural transformer with attention model to predict AST-node edit actions and edit labels to resolve a merge conflict. The model is trained from merge tuples and the actions used to resolve the merge conflict (resolving edit actions 232, resolving edit labels 234). A merge tuple (A, B, O) 210 is obtained from a source code repository 202 and includes program A 206 and program B 208, both having changes to a code base O 204. The AST sequence generator 212 parses each source code snippet of the merge tuple 210 into a respective abstract syntax tree, which is traversed in preorder traversal order to generate AST-node sequences which are aligned to generate the aligned AST-node sequences (214, 216, 220, 222) and corresponding edit sequences (218, 224). The aligned AST-node sequences (214, 216, 220, 222) and corresponding edit sequences (218, 224) are applied to the multi-task neural transformer model 226 to learn to predict the edit actions 228 and edit labels 230 that resolve the merge conflict).
Regarding claim 5, Sundaresan as modified teaches claim 1 as cited above however does not disclose:
wherein the executable instructions cause the at least one processing device to: train the transformer based sequence-to-sequence model based on historical snippets of code in each of the one or more software programming languages comprising the first software programming language.
However, in the analogous art of software translation, Singh teaches:
wherein the executable instructions cause the at least one processing device to: train the transformer based sequence-to-sequence model based on historical snippets of code in each of the one or more software programming languages comprising the first software programming language (Para. [29-30], Singh shows in some implementations, code knowledge system 102 may also have access to one or more programming-language-specific corpuses 108-1 to 108-M. In some implementations, these programming-language-specific corpuses 108-1 to 108-M may be used, for instance, to train one or more of the machine learning models 106-1 to 106-N. In some implementations, the programming-language-specific corpuses 108-1 to 108-M may include examples of source code (e.g., entire code bases, libraries, etc.), inline comments, textual metadata associated with source code (e.g., commits), documentation such as textbooks and programming manuals, programming language-specific discussion threads, presentations, academic papers, and so forth. A client 110 that wishes to enable manipulation of its code base 112 in programming language(s) other than that/those used originally to write the source code may establish a relationship with an entity (not depicted in FIG. 1) that hosts code knowledge system 102. When a developer wishes to view/edit a source code snippet of the entity’s code base 112 but is unfamiliar with the native programming language, code translator 104 may provide one or more versions of the source code snippet that is translated to a target programming language preferred by the developer. In some such implementations, code translator 104 may generate the translated source code snippet on the fly, e.g., in real time. In other implementations, code translator 104 may operate, e.g., in a batch mode, to preemptively translate all or selection portions of an entity’s code base 112 into a targeted programming language.).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Singh into the teachings of Sundaresan as modified to implement ". The modification would have been obvious as one of ordinary skill in the art would be motivated to enable a developer fluent in a first programming language to view and/or edit source code that was originally written in a second, less-familiar programming language in the first programming language (Singh, Para. [27]).
With regards to claim 8, it is a computer program product claim having similar limitations as cited in claim 1 above. Thus, claim 8 is also rejected under the same rationale as cited in the rejection of claim 1 above.
With regards to claim 11, it is a computer program product claim having similar limitations as cited in claim 4 above. Thus, claim 11 is also rejected under the same rationale as cited in the rejection of claim 4 above.
With regards to claim 13, it is a computer program product claim having similar limitations as cited in claim 5 above. Thus, claim 13 is also rejected under the same rationale as cited in the rejection of claim 5 above.
With regards to claim 15, it is a method claim having similar limitations as cited in claim 1 above. Thus, claim 15 is also rejected under the same rationale as cited in the rejection of claim 1 above.
With regards to claim 19, it is a method claim having similar limitations as cited in claim 5 above. Thus, claim 19 is also rejected under the same rationale as cited in the rejection of claim 5 above.
Claim(s) 2, 9 and 16 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 20230236811 A1 (hereinafter referred to as Sundaresan), US 20230350657 A1 (hereinafter referred to as Singh), US 11481245 B1 (hereinafter referred to as Oliver) and in further view of US 20230229408 A1 (hereinafter referred to as Gupta).
Regarding claim 2, Sundaresan as modified teaches claim 1 as cited above, but does not disclose:
wherein merging the translated code associated with the software code in each of the one or more source files comprises: analyzing the translated code to detect duplicate code snippets in the translated code;
and in response to detecting the duplicate code snippets in the translated code, isolating the duplicate code snippets from the translated code.
However, in the analogous art of software code optimization, Gupta teaches:
wherein merging the translated code associated with the software code in each of the one or more source files comprises: analyzing the translated code to detect duplicate code snippets in the translated code;
and in response to detecting the duplicate code snippets in the translated code, isolating the duplicate code snippets from the translated code (Para. [43] Gupta shows the developer may receive reports from the code evaluation system 400 as any new code written by that developer is committed to the master DB. Para. [47] Gupta shows parsing code associated with the code request; storing, in a staging database, a portion of the code; traversing a codebase to identify any code in the codebase that matches the portion of the code; and when code is found in the codebase that matches the portion of the code, incrementing a green count and pushing the portion of the code to a redundant code bin, and when no code is found in the codebase that matches the portion of the code, incrementing a red counter and updating the codebase to include the portion of the code).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Gupta into the teachings of Sundaresan as modified to implement “wherein merging the translated code associated with the software code in each of the one or more source files comprises: analyzing the translated code to detect duplicate code snippets in the translated code; and in response to detecting the duplicate code snippets in the translated code, isolating the duplicate code snippets from the translated code”. The modification would have been obvious as one of ordinary skill in the art would be motivated to enable the identification of redundant, or possibly redundant, code and thereby improve the speed and efficiency of development processes by reducing, or eliminating, development of redundant code (Gupta, Para. [11]).
With regards to claim 9, it is a computer program product claim having similar limitations as cited in claim 2 above. Thus, claim 9 is also rejected under the same rationale as cited in the rejection of claim 2 above.
With regards to claim 16, it is a method claim having similar limitations as cited in claim 2 above. Thus, claim 16 is also rejected under the same rationale as cited in the rejection of claim 2 above.
Claim(s) 3, 10 and 17 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 20230236811 A1 (hereinafter referred to as Sundaresan), US 20230350657 A1 (hereinafter referred to as Singh), US 11481245 B1 (hereinafter referred to as Oliver), and in further view of US 20210157577 A1 (hereinafter referred to as Sobran).
Regarding claim 3, Sundaresan as modified teaches claim 1 as cited above and teaches:
determining that the one or more patterns in the translated code causes merge conflicts during deployment;
and performing one or more corrective measures to resolve the merge conflicts
Sundaresan as modified does not disclose:
wherein merging the translated code associated with the software code in each of the one or more source files comprises: analyzing the translated code to identify one or more patterns associated with one or more known conflicts, via a Siamese neural network;
However, in the analogous art of collaborative coding optimization, Sobran teaches:
wherein merging the translated code associated with the software code in each of the one or more source files comprises: analyzing the translated code to identify one or more patterns associated with one or more known conflicts, via a Siamese neural network (Fig. 1, Para. [38], Sobran shows Program 150 generates a defect likelihood of the new commit (step 212). Responsive to program 150 detecting a new commit, program 150 processes a detected commit as described in the steps above. Here, program 150 retrieves associated logs and developmental materials for the detected commit and creates one or more dictionary objects utilizing the aforementioned information. In an embodiment, program 150 removes all unnecessary terms, information, and data, as described in step 204, and vectorizes the resulting commit and associated information. In an embodiment, program 150 creates a dictionary for the new commit. Responsive to program 150 processing and vectorizing the detected commit, program 150 feeds the detected commit into trained model 152. In this embodiment, program 150 determines a log difference, similarity score, and/or defect likelihood for the detected commit utilizing model 152. Bottom of document, [Claim 5-6], wherein the similarity model is a neural network. wherein the neural network is a Siamese network);
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Sobran into the teachings of Sundaresan to implement "wherein merging the translated code associated with the software code in each of the one or more source files comprises: analyzing the translated code to identify one or more patterns associated with one or more known conflicts, via a Siamese neural network. The modification would have been obvious as one of ordinary skill in the art would be motivated as the traditional approach has significant issues such as requiring humans to label existing logs as problematic, difficult backtracking, and identification of which commit, log, service, or application is causing the issue or problem, and requiring human intervention to determine which commit is defective and proceed with an appropriate remedial action (Sobran, Para. [12]).
With regards to claim 10, it is a computer program product claim having similar limitations as cited in claim 3 above. Thus, claim 10 is also rejected under the same rationale as cited in the rejection of claim 3 above.
With regards to claim 17, it is a method claim having similar limitations as cited in claim 3 above. Thus, claim 17 is also rejected under the same rationale as cited in the rejection of claim 3 above.
Claim(s) 6, 14, and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 20230236811 A1 (hereinafter referred to as Sundaresan), US 20230350657 A1 (hereinafter referred to as Singh), US 11481245 B1 (hereinafter referred to as Oliver) and in further view of US 20230196230 A1 (hereinafter referred to as Cella).
Regarding claim 6, Sundaresan as modified teaches claim 1 as cited above, but does not disclose:
wherein the executable instructions cause the at least one processing device to: provide a virtual environment to the one or more users to allow the one or more users to perform one or more software code related operations associated with the one or more entity applications.
However, in the analogous art of digital twin data visualization, Cella teaches:
wherein the executable instructions cause the at least one processing device to: provide a virtual environment to the one or more users to allow the one or more users to perform one or more software code related operations associated with the one or more entity applications (Para. [4413], Cella shows a CIO digital twin 60632 may assist in virtual monitoring and testing in a virtual environment to test implementations, changes, reconfigurations, the introduction and/or removal of components and other assets, and the like).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Cella into the teachings of Sundaresan as modified to implement wherein the executable instructions cause the at least one processing device to: provide a virtual environment to the one or more users to allow the one or more . The modification would have been obvious as one of ordinary skill in the art would be motivated to allow a user to identify events and consequences that occur as a result of multiple simultaneous or related faults or other events (Cella, Para. [4317]).
Claim(s) 7, 12, and 18 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 20230236811 A1 (hereinafter referred to as Sundaresan), US 20230350657 A1 (hereinafter referred to as Singh), US 11481245 B1 (hereinafter referred to as Oliver) in view of US 20230196230 A1 (hereinafter referred to as Cella) and in further view of US 20250117201 A1 (hereinafter referred to as Goloubew).
Regarding claim 7, Sundaresan as modified teaches claim 6 as cited above and does not disclose:
wherein the executable instructions cause the at least one processing device to: provide a digital twin of software code environments comprising the software code development environment, software code testing environment,
and the software code production environment;
allow the one or more users to perform one or more software code related operations associated with the one or more entity applications in the digital twin;
determine that the one or more software code related operations are successful;
and implement the one or more software code related operations performed in the digital twin in the software code environments.
However, in the analogous art of digital twin data visualization, Cella teaches:
wherein the executable instructions cause the at least one processing device to: provide a digital twin of software code environments comprising the software code development environment, software code testing environment (Para. [4413], Cella shows a CIO digital twin 60632 may assist in virtual monitoring and testing in a virtual environment. Para. [4398] Cella shows a CTO digital twin 60630 may be configured to allow a user to research, create, track and report on a technology, development),
allow the one or more users to perform one or more software code related operations associated with the one or more entity applications in the digital twin;
determine that the one or more software code related operations are successful (Para. [4413], Cella shows CIO digital twin may work in connection with the EMP 60000 to provide simulations, predictions, statistical summaries, decision support based on analytics, machine learning, and/or other AI and learning-type processing of inputs (e.g., performance data, sensor data, and the like));
and implement the one or more software code related operations performed in the digital twin in the software code environments (Para. [4398], Cella shows a CTO digital twin 60630 may be configured to allow a user to research, create, track and report on a technology, development, and/or technology or engineering department initiative including, but not limited to, a new product development, update, enhancement, replacement, upgrade, or the like).
In addition, in the analogous art of issue identification and remediation, Goloubew teaches:
wherein the executable instructions cause the at least one processing device to: provide a digital twin of software code environments comprising: .. the software code production environment (Para. [33] Goloubew shows using digital twin environment 136, the conditions of a production environment may be simulated so that code modules can be tested with regard to their ability to identify and remediate issues without concern for any adverse impacts to an actual production environment);
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Cella into the teachings of Sundaresan as modified to implement wherein the executable instructions cause the at least one processing device to: provide a virtual environment to the one or more users to allow the one or more users to perform one or more software code related operations associated with the one or more entity applications . The modification would have been obvious as one of ordinary skill in the art would be motivated to allow a user to identify events and consequences that occur as a result of multiple simultaneous or related faults or other events (Cella, Para. [4317]).
In addition, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Goloubew into the teachings of Sundaresan as modified to implement “wherein the executable instructions cause the at least one processing device to: provide a digital twin of software code environments comprising: .. the software code production environment”. The modification would have been obvious as one of ordinary skill in the art would be motivated Issues can be simulated in digital twin environment 136 to test for a code module's ability to identify the issues and subsequently remediate the issues (Goloubew, Para. [33]).
With regards to claim 12, it is a computer program product claim having similar limitations as cited in claim 7 above. Thus, claim 12 is also rejected under the same rationale as cited in the rejection of claim 7 above.
With regards to claim 18, it is a method claim having similar limitations as cited in claim 7 above. Thus, claim 18 is also rejected under the same rationale as cited in the rejection of claim 7 above.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US 20220164626 A1 (Bird et Al.) – This art shows using a transformer based sequence-to-sequence model for merging
US 20190187973 A1 (Weigert) – This art shows translating programming languages and updating the code base accordingly with translated source files
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ZEERICK A MALIK whose telephone number is (571)272-8110. The examiner can normally be reached Mon-Thurs, 7-5.
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, Chat Do can be reached at (571) 272-3721. 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.
/Z.A.M./Examiner, Art Unit 2193
/Chat C Do/Supervisory Patent Examiner, Art Unit 2193