Prosecution Insights
Last updated: October 27, 2026
Application No. 18/615,600

RETRIEVAL AUGMENTED CODE TRANSLATION

Final Rejection §101§103
Filed
Mar 25, 2024
Examiner
O'CONNOR-EMANUEL, LAWRENCE SCOTT
Art Unit
2193
Tech Center
2100 — Computer Architecture & Software
Assignee
International Business Machines Corporation
OA Round
2 (Final)
Grant Probability
Favorable
3-4
OA Rounds

Examiner Intelligence

Grants only 0% of cases
0%
Career Allowance Rate
0 granted / 0 resolved
-55.0% vs TC avg
Minimal +0% lift
Without
With
+0.0%
Interview Lift
resolved cases with interview
Typical timeline
Avg Prosecution
10 currently pending
Career history
18
Total Applications
across all art units
This examiner has no resolved cases yet (career too new); statute-level performance unavailable. The Grant Probability card shows Tech Center averages instead.

Office Action

§101 §103
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 . DETAILED ACTION This office action is in response to the application filed on 03/25/2024. Claims 1- 20 are pending in this application. Claims 1,11 and 12 are independent claims. Claim Rejections - 35 USC § 101 35 U.S.C. 101 reads as follows: Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title. Claims 1 - 20 are rejected under 35 U.S.C. 101 because the claimed invention recites a judicial exception, is directed to that judicial exception, an abstract idea, it has not been integrated into practical application and the claims further do not recite significantly more than the judicial exception. Examiner has evaluated the claims under the framework provided in the 2019 Patent Eligibility Guidance published in the Federal Register 01/07/2019 and has provided such analysis below. Regarding claim 1, 11, and 12, the limitations “ generat[ing] metadata for input program code, including an intermediate representation of the input program code”, ”search[ing] a database of stored code samples to select an example code sample based on similarity between metadata of the input program code and stored metadata of the stored code samples”, “generat[ing] a prompt that includes the input program code, the example code sample, and a translation of the example code sample” and “generate a translation of the input program code in a target programming language” , as drafted, are functions that, under its broadest reasonable interpretation, recite the abstract idea of a mental process. These limitations encompass a human mind carrying out these functions through observation, evaluation judgment and /or opinion, or even with the aid of pen and paper; thus, this limitation recites and falls within the “Mental Processes” grouping of abstract ideas under Prong 1. Under Prong 2, the judicial exception is not integrated into a practical application. The additional element , “apply[ing] the prompt to a pre-trained language model” merely recites instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea, thus is not a practical application under Prong 2. Accordingly, the additional element does not integrate the recited judicial exception into a practical application and the claim is therefore directed to the judicial exception. See MPEP 2106.05(f). Under Step 2B, the claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As stated above in prong 2, the additional element , “apply[ing] the prompt to a pre-trained language model” merely recites instructions to implement an abstract idea on a generic computer, or merely uses a generic computer or computer components as a tool to perform the abstract idea. Therefore, the additional elements do not amount to significantly more, thus, cannot provide an inventive concept. Accordingly, the claims are not patent eligible under 35 USC 101. Regarding claims 2, 3, 13, 14 the limitations recited in these claims merely describe the metadata generation in claims 1 and 12, thus, are likewise analyzed under Prong 1 as mental process. Regarding claims 4, 5, 6, 15, 16, 17 the limitations recited in these claims merely describe the search process in claims 1 and 12, thus, are likewise analyzed under Prong 1 as mental process. Regarding claims 7 and 18 the limitations recited in these claims merely describe the abstract ideas in claims 1 and 12, thus, are likewise analyzed under Prong 1 as mental process. Regarding claims 8 and 19 the limitations recited in these claims merely describe the prompt generation process in claims 1, and 12, thus, are likewise analyzed under Prong 1 as mental process. Regarding claims 9 and 20 the limitation “performing sanitization, validation, and correction on the translation to ensure the translation is correct” recites additional mental process under Prong 1. Regarding claims 10, the limitation “indexing a plurality of code samples in a plurality of programming languages” recites additional mental process under Prong 1. The additional elements, “generate respective metadata for each code sample” and “storing the plurality of code samples with their respective metadata in the database” , is analyzed under Prong 2 as mere data gathering which does not integrate the judicial exception into a practical application, or amounts to significantly more under Step 2B for the reasons provided in the rejection of claim 1. 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. Claims 1, 8-12, 19, 20 are rejected under 35 U.S.C. 103 as being unpatentable over Ahmed et. al (US20200327118A1) hereafter Ahmed, in view of Yan et. al ( CodeTransOcean: A Comprehensive Multilingual Benchmark for Code Translation, Published: 10/25/2023) hereafter Yan. Regarding claim 1, Ahmed teaches: A computer-implemented method for code translation, comprising: generating metadata for input program code, including an intermediate representation of the input program code;( [0025]”the processing block 304 translates the query code from a source language into an intermediate representation that is a hardware agnostic representation of the query code, generates code expressions from the intermediate representation, and generates the query graph based on the code expressions, where the query graph is to represent dependencies between the code expressions.”) The query code corresponds to input code. The query graph corresponds to metadata as an intermediate representation of the input program code. Thus, generating a query graph corresponds to, generating metadata for input program code, including an intermediate representation of the input program code. searching a database of stored code samples to select an example code sample based on similarity between metadata of the input program code and stored metadata of the stored code samples([0029]”The input query code 352 passes through preprocessing 354 that includes code semantic extraction 354 a and flow graph extraction 354 b. The output of the preprocessing 354 may be a query code graph 356 that is symbolically represented in FIG. 3. The query code graph 356 represents the semantics and structure of the input query code 352. The query code graph 356 may be given as an input to the code similarity searcher 358. The code similarity searcher 358 may generate a vector based on the query code graph 356. The code similarity searcher 358 may include an efficient AI navigation agent 362 that navigates a large combinatorial space of all code snippets in the code corpus 360 to generate top-K similar codes 364 that are similar to the input query code 352. The top-K similar codes 364 may be stored and identified from the code corpus 360 based on graphs and/or vectors of the top-K similar codes 364. For example, the graphs and/or vectors of the top-K similar codes 364 may be compared to the query code graph 356 and/or the vector based on the query code graph 356.” [0030]” After the code corpus 360 has been completely searched for codes similar to the input query code 352 and based on the query code graph 356, the top-K similar codes 364 may be output 366. Thus, the AI navigation agent 362 provides the top-K code recommendations (e.g., top-K similar code snippets) to a user.”) Searching the code corpus for codes similar to the input query code based on the generated query code graph, to output the top-K similar codes corresponds to, searching a database of stored code samples to select an example code sample based on similarity between metadata of the input program code and stored metadata of the stored code samples. Ahmed does not teach: generating a prompt that includes the input program code, the example code sample, and a translation of the example code sample; and applying the prompt to a pre-trained language model to generate a translation of the input program code in a target programming language. However, Yan Teaches: generating a prompt that includes the input program code, the example code sample, and a translation of the example code sample; and applying the prompt to a pre-trained language model to generate a translation of the input program code in a target programming language.( (A.8 Chain of thought , Experiment #4) ”we introduce a CoT (chain of thought) one-shot variation. That is, first, provide a case in the same direction for ChatGPT reference, then require it to understand the function of the source code, then predict the output of the source code, and finally translate it, with the condition that the translated code must successfully execute.” ( Table 19, CoT#4) “First, learn how to translate [ESL] code to[ETL] based on the example, [SL]:[ESC],[TL]:[ETC]. Then, understand the functionality of the following [SL] code and predict the execution output, [SL]:[SC]. Finally, translate the[SL] code into[TL]while maintaining the same functionality, ensuring that the translated code can be successfully executed.” (Table 19 description) “ChatGPT translation prompts on one-shot & CoT strategies. [SL] refers to the source language, [SC] refers to the source code, [TL]refers to the target language, [ESL]refers to the source language in the example, [ESC]refers to the source code in the example, [ETL] refers to the target language in the example, [ETC]refers to the target code in the example, [DSC]refers to the natural language description of the source code.“) See Table 8 for the output of performance of ChatGPT with CoT prompt #4 in experiment 4. ChatGPT corresponds to a pre-trained language model. The Cot#4 example is a prompt constructed for input into ChatGPT where, [SC] in the statement “[SL]:[SC]” corresponds to input program code , [ESC] and [ETC] in the statement [SL]:[ESC],[TL]:[ETC]” correspond to the example code sample and translation of the example code sample respectively .In experiment 4, the prompt is applied to ChatGPT to translate the [SL] code into [TL] which corresponds to, applying the prompt to a pre-trained language model to generate a translation of the input program code in a target programming language. Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Ahmed with, generating a prompt that includes the input program code, the example code sample, and a translation of the example code sample; and applying the prompt to a pre-trained language model to generate a translation of the input program code in a target programming language, as taught by Yan, because using a pretrained learning model for translation can mitigate issues such as cost, errors, and readability related to manually converting source code between languages.[Yan Introduction, Par 1-2] Regarding claim 8, Ahmed in view of Yan teaches the method of claim 1 above. Ahmed further teaches: wherein the prompt further includes a natural language directive that includes an instruction to translate the input program code from a source programming language to the target programming language.(( Table 19, CoT#4) “Finally, translate the[SL] code into[TL]while maintaining the same functionality, ensuring that the translated code can be successfully executed.”) As stated in the rejection of claim 1, Table 19, CoT#4, is a prompt for translating input code to a target language. Thus, the natural language portion of the excerpt of the CoT#4 prompt above corresponds to, wherein the prompt further includes a natural language directive that includes an instruction to translate the input program code from a source programming language to the target programming language. Regarding claim 9, Ahmed in view of Yan teaches the method of claim 1 above. Yan further teaches: further comprising performing sanitization, validation, and correction on the translation to ensure the translation is correct.((4.3, Effect of Self-debugging)” ChatGPT first translates the source language code into the target language … and then attempts to execute the translated code. If the execution passes and executing the translated code exhibits the same functionality as the source code, it is regarded as a successful execution. Otherwise, feedback from the compiler will be also fed to ChatGPT for the next round of translation, and this process is repeated until reaching a pre-defined number K of debugging rounds. The whole process is shown in Table 17 in Appendix. As shown in Table 7, DSR improves significantly with multiple rounds of self debugging.”)See Table 17 , which illustrates in detail responses from the self-debugging process which includes attempts to correct program errors. Applicant states [Specification 0034] “The step of sanitization, validation, and correction 208 may be performed on the translated output to ensure that it meets certain requirements. For example, static and/or dynamic analysis may be performed to identify grammatical and syntax errors, runtime errors may be identified, and test cases may be run to ensure proper functioning of the translated code.” Thus, verifying that the execution of the code passes and performs the same functionality as the source code corresponds to validation. Self-debug iterations shown in Figure 17 show example outputs from the compiler trying to execute the translated code including compile error reports; Compiler error reports encompass identifying grammatical and syntax errors that prevent the program from executing. Thus, correcting compiler errors corresponds to sanitization. Correcting the translation to exhibit the same functionality as the source code corresponds to correction to ensure the translation is correct. Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Ahmed with, further comprising performing sanitization, validation, and correction on the translation to ensure the translation is correct, as taught by Yan , because performing the aforementioned verification steps on the translation improves the DSR ( Debugging Success Rate ) which is the percentage of samples with translation results that successfully execute and produce the expected functionality after K debugging rounds. (Yan, 4.3 Effect of Self-Debugging) “As shown in Table 7, DSR improves significantly with multiple rounds of self-debugging.” Regarding claim 10, Ahmed in view of Yan teaches the method of claim 1 above. Ahmed further teaches: further comprising indexing a plurality of code samples in a plurality of programming languages, to generate respective metadata for each code sample, and storing the plurality of code samples with their respective metadata in the database. ([0017]” the codes of the code corpus 102 may be associated with different high-level programming languages (e.g., Java, C++, etc.)” [0032-33] ”the query input and items in the corpus are both represented as graphs and/or vectors… The AI navigation agent 402 may undergo a training phase to learn a model … and also index each code snippet in a corpus for efficient navigation.”[0036]” all codes (including query codes and the code that exists in the corpus) may be processed through the preprocessing and representation steps.”[0053]” Once the AI navigation agent 402 is trained and converged, the binary representation vectors of the code snippets in the entire corpus can be pre-computed and stored in-memory and referenced during code similarity searches (e.g., query code vectors based on query codes are compared against the vectors of the code snippets).”) As stated in the rejection of claim 1 preprocessing steps are used to generate the meta data for a piece of code such as the query graph. Thus, indexing code in the corpus which may be different high-level programming languages , preprocessing the codes in the corpus to generate the associated graph of the code, and storing the graph in memory corresponds to , further comprising indexing a plurality of code samples in a plurality of programming languages, to generate respective metadata for each code sample, and storing the plurality of code samples with their respective metadata in the database. Claims 2 and 13 are rejected under 35 U.S.C. 103 as being unpatentable over (US20200327118A1) Ahmed, in view of ( CodeTransOcean: A Comprehensive Multilingual Benchmark for Code Translation, Published: 10/25/2023) Yan and further in view of Clement et. al (US20220308848A1) hereafter Clement. Regarding claim 2, Ahmed in view of Yan teaches the method of claim 1 above. Ahmed and Yan do not teach: : wherein generating the metadata further includes an abstract syntax tree of the input program code. However, Clement teaches: wherein generating the metadata further includes an abstract syntax tree of the input program code.( [0041-0042]”The code vector model is based on the paths through the abstract syntax tree representation of the source code snippet. The neural network of the code vector model learns to aggregate the various syntactic paths in the abstract syntax tree into a single fixed-length vector. In one aspect, the code vector model is the Code2Vec model. (Collectively, block 304)….The code vector model 114 is generated from source code snippets, such as methods, written in various programming languages which are obtained from various source code repositories. Each source code snippet is parsed into an abstract syntax tree.” Parsing the input code snippets into abstract syntax tree corresponds to, wherein generating the metadata further includes an abstract syntax tree of the input program code. Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Ahmed with, wherein generating the metadata further includes an abstract syntax tree of the input program code, as taught by Clement because including the AST representation of the input code allows for structural features to be considered in the metadata of the input code which can provide additional context when searching for similar code samples. Claim 3 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over (US20200327118A1) Ahmed, in view of ( CodeTransOcean: A Comprehensive Multilingual Benchmark for Code Translation, Published: 10/25/2023) Yan and further in view of Zeng et. al (DeGraphCS: Embedding Variable-based Flow Graph for Neural Code Search, Published 03/30/2023) hereafter Zeng. Regarding claim 3, Ahmed in view of Yan teaches the method of claim 1 above. Ahmed further teaches: wherein generating the metadata further includes [] a sparse encoding of the input program code.([0053]”the AI navigation agent 402 may be trained to produce sparse binary representation vectors for each code snippet represented as a graph in the corpus using a conditional Bernoulli distribution model. Once the AI navigation agent 402 is trained and converged, the binary representation vectors of the code snippets in the entire corpus can be pre-computed and stored in-memory and referenced during code similarity searches (e.g., query code vectors based on query codes are compared against the vectors of the code snippets)”) See Figure 3, steps 302,304,308 where the query code vector for the input code is generated. The query code vector for the input code is a sparse binary representation vector. Thus, generating the query code vector corresponds to wherein generating the metadata further includes [] a sparse encoding of the input program code. Ahmed and Yan do not teach: wherein generating the metadata further includes an embedding of the intermediate representation. However, Zeng teaches: wherein generating the metadata further includes an embedding of the intermediate representation.([1 Introduction, Par 4] “we explore a novel code representation based on data and control flow extracted from LLVM IR (intermediate representation) , one type of intermediate code acquired from source code. Compared with the existing statement-based data and control flow representation method [3], we refine the variable-based flow graph construction to better describe the dependencies between code variables. Specifically, the graph nodes represent the tokens that appear in LLVM IR, and the edges represent the data and control dependencies between the tokens. Furthermore, we design an optimization mechanism while modeling the graph to remove the redundant information created by LLVM IR without changing the semantics. Finally, we employ an attentional gated graph neural network to embed the flow graph into a high-dimensional vector space to further perform code search tasks. Through this procedure, code multiple semantic features, i.e., tokens, variable-based data and control flow, can be simultaneously represented and accurately express the deep semantics of code.”)As stated in the rejection of claim 1, the flow graph of the input code represents an intermediate representation; Thus, embedding the flow graph corresponds to, wherein generating the metadata further includes an embedding of the intermediate representation. Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Ahmed with, wherein generating the metadata further includes an embedding of the intermediate representation, as taught by Zeng, because including an embedding of the flow graph in the metadata allows for the semantics of the flow graph to be represented in the metadata in a structure that disregards attributes that can produce false negatives when searching code. [Zeng, 2 Motivating Example, Par 1] Claims 4 and 15 are rejected under 35 U.S.C. 103 as being unpatentable over (US20200327118A1) Ahmed, in view of ( CodeTransOcean: A Comprehensive Multilingual Benchmark for Code Translation, Published: 10/25/2023) Yan and further in view of Goodsitt et. al (US12164867B1) hereafter Goodsitt. Regarding claim 4, Ahmed in view of Yan teaches the method of claim 1 above. Ahmed and Yan do not teach : wherein searching the database includes calculating a respective similarity score for each of a plurality of metadata types of the input program code as compared to corresponding metadata of stored code samples. However, Goodsitt teaches: wherein searching the database includes calculating a respective similarity score for each of a plurality of metadata types of the input program code as compared to corresponding metadata of stored code samples.([Col 2, Lines 5-19] “The set of instructions, when executed by one or more processors of a device, may cause the device to obtain a first document set of one or more documents associated with a first code repository. The set of instructions, when executed by one or more processors of the device, may cause the device to generate a first embedding set of one or more embeddings for respective documents included in the first document set. The set of instructions, when executed by one or more processors of the device, may cause the device to generate document similarity scores for the respective documents included in the first document set based on comparing the first embedding set to a second embedding set of one or more embeddings for respective documents included in a second document set of one or more documents associated with a second code repository.” [Col 6, Lines 7-19] “the documents associated with one or more code repositories may include code files, configuration files, and/or other documents associated with maintaining, supporting, and/or explaining code and/or software. For example, the documents may include a codebase, one or more code files, one or more configuration files, one or more libraries, one or more support documents… source code, one or more text files, one or more license files, one or more test files, and/or one or more build files, among other examples.”[Col 13, Lines 54-61] ”the comparison device may generate and/or maintain a network or database of graphs (e.g., embedding graphs) for documents and/or code repositories that are similar. The comparison device may use the network or database of graphs for future searches to identify similar documents and/or code repositories. For example, the comparison device may generate an embedding graph for a new document. The comparison device may use the embedding graph to search the network or database of graphs for similar embedding graphs (e.g., to identify documents and/or code repositories that are similar to the new document).”)Documents associated with a repository for a first code repository correspond to metadata for the input program because they are any supporting files such as code files related to the code repository that support development and testing. During search, the similarity score for each pair of respective documents in a first and second repository is calculated based on the embeddings for the documents which corresponds to, wherein searching the database includes calculating a respective similarity score for each of a plurality of metadata types of the input program code as compared to corresponding metadata of stored code samples. Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Ahmed with, wherein searching the database includes calculating a respective similarity score for each of a plurality of metadata types of the input program code as compared to corresponding metadata of stored code samples, as taught by Goodsitt because using the multiple similarity scores of the embedding to search the database “improves the efficiency and reduces the complexity of searching for similar documents and/or code repositories.”[Goodsitt, Col 13, Lines 62-64] Claim 5,6,16,17 are rejected under 35 U.S.C. 103 as being unpatentable over (US20200327118A1) Ahmed, in view of ( CodeTransOcean: A Comprehensive Multilingual Benchmark for Code Translation, Published: 10/25/2023) Yan and further in view of (US12164867B1) Goodsitt, and in further view of Zhang et. al ( Code Search Debiasing: Improve Search Results beyond Overall Ranking Performance, Published 02/17/2024) hereafter Zhang. Regarding claim 5, Ahmed in view of Yan and Goodsitt teach the method of claim 4 above. Ahmed further teaches: wherein searching the database includes performing a [] re-ranking based on the similarity scores for the stored code samples [] ([0030] “The code similarity searcher 358 may prune and re-rank top-K similar codes 364 in an iterative process executed by the AI navigation agent 362. After the code corpus 360 has been completely searched for codes similar to the input query code 352 and based on the query code graph 356, the top-K similar codes 364 may be output 366.” [0041] “In order to search and prune the space, the AI navigation agent 402 starts with a code snippet referred to as “dtop” from a database D. The AI navigation agent 402 retrieves the most similar codes to dtop and uses a policy model M to predict which ones to keep because of their similarity to the query code Q … and adds the similar codes to the TOP-K list 404 ranked by their similarity score.”)The top-K similar codes are stored and ranked and re-ranked by their similarity scores. Thus, the code similarity searcher re-ranking the top-K similar codes produced during search corresponds to wherein searching the database includes performing a [] re-ranking based on the similarity scores for the stored code samples []. Ahmed and Yan do not explicitly teach that the re-ranking is a diversity re-ranking [] to promote diversity between the stored code samples. However, Zhang teaches: diversity re-ranking [] to promote diversity between the stored code samples. ([3.2, Section: Bias 7 w.r.t Numbers of Overlapping Words] “In summary, we have identified seven distinct biases, meaning that code search models show different performance when facing input queries or ground-truth code snippets with different characteristics. In practice, code search biases result in the inconsistence of user experience: depending on the characteristics of queries and/or ground-truth code snippets, the quality of search results varies” [4 Mitigate Code Search Biases , Par 2-3]” we illustrate our debiasing frame work shown in Fig. 2. Our goal is to design a general framework: (1) it can be easily plugged into existing code search models without much additional effort, and (2) it can handle new code search biases that are not discovered at the moment. We opt to adopt reranking, a post-processing method, to calibrate code search results. The idea is to rerank the ranking results provided by code search models…. For biased cases, a successful reranking method can help ground truth code snippets emerge on top.”) Zhang teaches that reranking code search results can reduce bias that cause certain code samples to be under or over ranked and allow for ground truth code snippets emerge on top which corresponds to diversity re-ranking [] to promote diversity between the stored code samples. Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Ahmed with, a diversity re-ranking [] to promote diversity between the stored code samples, as taught by Zhang in order to ensure that the similar codes returned in search are not biased towards certain properties of the codes that would affect the codes similarity score. Regarding claim 6, Ahmed in view of Yan , Goodsitt, and Zhang teach the method of claim 5 above. Goodsitt further teaches: wherein searching the database comprises fusing rankings for the plurality of metadata types into a single rank score for each stored code sample. ([Col 2, Lines 19-24]) ”The set of instructions, when executed by one or more processors of the device, may cause the device to generate, based on the document similarity scores, a code repository similarity score that indicates a similarity between the first code repository and the second code repository.” [Col 8, Lines 30-40] “As shown by reference number 125, the comparison device may identify, based on the one or more topics, a second code repository for similarity comparisons with the first code repository. For example, the comparison device may identify one or more other code repositories (e.g., the second code repository) that are associated with the same, or similar, topics as the one or more topics associated with the first code repository. For example, the comparison device may search, using the one or more topics as a search term, a set of code repositories to identify candidate code repositories to compare to the first code repository.”) Goodsitt generates repository similarity scores that combine the document similarity scores for each repository in a group of candidate repositories of a specific topic which corresponds to, wherein searching the database comprises fusing rankings for the plurality of metadata types into a single rank score for each stored code sample. Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Ahmed with, wherein searching the database comprises fusing rankings for the plurality of metadata types into a single rank score for each stored code sample, as taught by Goodsitt, because combining multiple similarity scores for metadata of code samples allows the combined similarity score to take into account multiple aspects of each code sample when searching for similar code samples which saves time and computing resources. [Goodsitt, Col 11, Lines 57-65] “Aggregating the document similarity scores at different levels may provide beneficial insight into the parts or portions of code repositories having high levels of similarity. This may conserve time, processing resources, and/or computing resources that would have otherwise been used by a user to identify the parts or portions of code repositories having high levels of similarity if the document similarity scores were only aggregated at one level (e.g., at the code repository level).” Claims 7 and 18 are rejected under 35 U.S.C. 103 as being unpatentable over (US20200327118A1) Ahmed, in view of ( CodeTransOcean: A Comprehensive Multilingual Benchmark for Code Translation, Published: 10/25/2023) Yan and further in view of D’Hollander et. al( Using Hammock Graphs to Structure Programs, Published 04/30/2004) hereafter D’Hollander. Regarding claim 7, Ahmed in view of Yan teaches the method of claim 1 above. Ahmed further teaches: wherein generating metadata, searching the database, generating the prompt, and applying the prompt is performed for each of the program codes to translate the entire input source into the target programming language. The above limitations are similar to those in claim 1 with the exception that the input are from code snippets derived from the original input code. Despite the input being decomposed, the claim still uses each piece of code as a separate input into the method for the subsequent steps of metadata generation , searching , prompt generation and prompt application. Thus , the inputs, still correspond to input query code and the above claim limitations are rejected for the same reasons as claim 1. Ahmed and Yan do not teach: further comprising performing a hammock decomposition on an input source into a plurality of program codes, of which the input program code is one .However D’Hollander teaches: further comprising performing a hammock decomposition on an input source into a plurality of program codes, of which the input program code is one.( [1 Introduction, Par 4]“Hammock graph restructuring operates on the control flow graph of the source code and eliminates all branches while minimizing the number of new control variables and associated control expressions. … The conversion of the program is based on three elementary transformations, namely, the backward copy, forward copy, and cut operations. The transformations reorganize the program into a set of nested hammock graphs, each having a single entry and a single exit.”) D’Hollander uses the control flow graph of a source code to perform hammock graph restructuring to produce a set of hammock graphs representing the input code which corresponds to, further comprising performing a hammock decomposition on an input source into a plurality of program codes, of which the input program code is one. Therefore, it would have been obvious to one of ordinary skill in the art to which said subject matter pertains before the effective filing date of the claimed invention to combine Ahmed with, further comprising performing a hammock decomposition on an input source into a plurality of program codes, of which the input program code is one, as taught by D’Hollander, in order to break code into components that represent the code at different granularities.[Zhang, 1 Introduction, Par 3] “A major benefit is that hammock graph restructuring builds a hierarchy of structured code regions. This enlarges the granularity”. This is consistent with applicants use as described in [Specification, 0018]. Regarding claim 11, it is a computer product claim having similar limitations to those of claim 1. Therefore claim 11 is rejected for the same reasons as outlined in the rejection of claim 1. Regarding claim 12, it is a system claim having similar limitations to those of claim 1. Therefore claim 12 is rejected for the same reasons as outlined in the rejection of claim 1. Regarding claim 13, it is a system claim having similar limitations to those of claim 2. Therefore claim 13 is rejected for the same reasons as outlined in the rejection of claim 2. Regarding claim 14, it is a system claim having similar limitations to those of claim 3. Therefore claim 14 is rejected for the same reasons as outlined in the rejection of claim 3. Regarding claim 15, it is a system claim having similar limitations to those of claim 4. Therefore claim 15 is rejected for the same reasons as outlined in the rejection of claim 4. Regarding claim 16, it is a system claim having similar limitations to those of claim 5. Therefore claim 16 is rejected for the same reasons as outlined in the rejection of claim 5. Regarding claim 17, it is a system claim having similar limitations to those of claim 6. Therefore claim 17 is rejected for the same reasons as outlined in the rejection of claim 6. Regarding claim 18, it is a system claim having similar limitations to those of claim 5. Therefore claim 18 is rejected for the same reasons as outlined in the rejection of claim 7. Regarding claim 19, it is a system claim having similar limitations to those of claim 5. Therefore claim 19 is rejected for the same reasons as outlined in the rejection of claim 8. Regarding claim 20, it is a system claim having similar limitations to those of claim 5. Therefore claim 20 is rejected for the same reasons as outlined in the rejection of claim 9. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to LAWRENCE O'CONNOR EMANUEL whose telephone number is (571)272-8975. The examiner can normally be reached M-F 7:30 - 5:00 pm . Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, 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. /L.S.O./ Examiner, Art Unit 2193 /Chat C Do/ Supervisory Patent Examiner, Art Unit 2193
Read full office action

Prosecution Timeline

Mar 25, 2024
Application Filed
May 07, 2026
Non-Final Rejection mailed — §101, §103
Aug 07, 2026
Response Filed
Oct 21, 2026
Final Rejection mailed — §101, §103 (current)

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

3-4
Expected OA Rounds
Grant Probability
Moderate
PTA Risk
Based on 0 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month