Prosecution Insights
Last updated: October 02, 2026
Application No. 18/910,786

Source code conversion from an original computer programming language to a target programming language

Non-Final OA §DP
Filed
Oct 09, 2024
Priority
Jan 18, 2023 — continuation of 12/153,908
Examiner
ST LEGER, GEOFFREY R
Art Unit
Tech Center
Assignee
Bank of America Corporation
OA Round
1 (Non-Final)
83%
Grant Probability
Favorable
1-2
OA Rounds
7m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 83% — above average
83%
Career Allowance Rate
550 granted / 664 resolved
+22.8% vs TC avg
Strong +21% interview lift
Without
With
+20.8%
Interview Lift
resolved cases with interview
Typical timeline
2y 7m
Avg Prosecution
16 currently pending
Career history
680
Total Applications
across all art units

Statute-Specific Performance

§101
16.4%
-23.6% vs TC avg
§103
51.3%
+11.3% vs TC avg
§102
14.8%
-25.2% vs TC avg
§112
11.8%
-28.2% vs TC avg
Black line = Tech Center average estimate • Based on career data from 664 resolved cases

Office Action

§DP
DETAILED ACTION The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Claims 1, 3, 5-8, 10, 12-15, 17, 19 and 20 have been submitted for examination and are pending further prosecution by the United States Patent & Trademark Office. Claim Objections The following claims are objected to because of antecedence issues. It is suggested Applicants amend these claims as follows: Claim 1 -- determine, based at least in part upon the particular purpose of the particular data object, a counterpart data object to the particular data object in the mapping table, wherein the counterpart data object is used for the particular purpose in the target programming language; -- -- in response to determining that the second data object is among the [[set]] plurality of keywords, maintain the second data object in the second piece of code. -- Claim 6 -- The system of Claim 1, wherein determining, based at least in part upon the particular purpose of the particular data object, the counterpart data object to the particular data object in the mapping table comprises: -- Claim 8 -- determining, based at least in part upon the particular purpose of the particular data object, a counterpart data object to the particular data object in the mapping table, wherein the counterpart data object is used for the particular purpose in the target programming language; -- -- in response to determining that the second data object is among the [[set]] plurality of keywords, maintaining the second data object in the second piece of code. -- Claim 13 -- The method of Claim 8, wherein determining, based at least in part upon the particular purpose of the particular data object, the counterpart data object to the particular data object in the mapping table comprises: -- Claim 15 -- determine, based at least in part upon the particular purpose of the particular data object, a counterpart data object to the particular data object in the mapping table, wherein the counterpart data object is used for the particular purpose in the target programming language; -- -- in response to determining that the second data object is among the [[set]] plurality of keywords, maintain the second data object in the second piece of code. -- Claim 20 -- The non-transitory computer-readable medium of Claim 15, wherein determining, based at least in part upon the particular purpose of the particular data object, the counterpart data object to the particular data object in the mapping table comprises: -- Claims 3, 5-7, 10, 12-14, 17, 19 and 20 are additionally objected to due to their dependence on objected parent claim(s). Appropriate correction is required. Double Patenting The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969). A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b). The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13. The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer. Claims 1, 3, 5-8, 10, 12-15, 17, 19 and 20 are rejected on the ground of nonstatutory anticipation-type double patenting as being unpatentable over claims 1-17 of US 12153908 B2. Although the claims at issue are not identical, they are not patentably distinct from each other because claims 1, 3, 5-8, 10, 12-15, 17, 19 and 20 under examination are anticipated, respectively, by claims 1-17 of US 12153908 B2 as shown in the comparison table below where bolding is used to highlight equivalent limitations and unbolded portions signify additional limitations in US 12153908 B2. Instant Application 18/910786 US 12153908 B2 1. A system for updating source code from an original programming language to a target programming language, comprising: a memory configured to store: a first piece of code written in an original programming language, wherein the first piece of code is programmed to perform a particular task; a set of particular keywords that are unique to the original programming language and are not used in other programming languages; and a mapping table that comprises the set of particular keywords and a set of counterpart keywords, wherein each of the set of particular keywords is mapped to a counterpart keyword from among the set of counterpart keywords, wherein the set of counterpart keywords is unique to the target programming language; and a processor operably coupled to the memory, and configured to: identify a set of data objects from the first piece of code, the set of data objects comprising at least one of a name of a function, a type of the function, an input parameter to the function, a type of the input parameter, an output parameter of the function, or a type of the output parameter; create a first knowledge graph that represents a relationship among the set of data objects, wherein the first knowledge graph is created based at least in part upon a position of each data object from among the set of data objects with respect to positions of other data objects in the first piece of code; identify a particular data object, from among the set of data objects, that is unique to the original programming language in response to determining that the particular data object is among the set of particular keywords, wherein the particular data object is used for a particular purpose in the original programming language; determine, based at least in part upon the determined purpose of the particular data object, a counterpart data object to the particular data object in the mapping table, wherein the counterpart data object is used for the particular purpose in the target programming language; create, based at least in part upon the first knowledge graph, a second piece of code in the target programming language by replacing the particular data object with the counterpart data object and maintaining the rest of data objects from the first piece of code; determine that the second piece of code is configured to perform the particular task; in response to determining that the second piece of code is configured to perform the particular task, execute the second piece of code; access a domain-specific dataset comprising a plurality of keywords associated with a specific domain, wherein the specific domain comprises web application development; determine that a second data object, from among the set of data objects, is among the plurality of keywords; and in response to determining that the second data object is among the set of particular keywords, maintain the second data object in the second piece of code. 1. A system for updating source code from an original programming language to a target programming language, comprising: a memory configured to store: a first piece of code written in an original programming language, wherein the first piece of code is programmed to perform a particular task; a set of particular keywords that are unique to the original programming language and are not used in other programming languages; and a mapping table that comprises the set of particular keywords and a set of counterpart keywords, wherein each of the set of particular keywords is mapped to a counterpart keyword from among the set of counterpart keywords, wherein the set of counterpart keywords is unique to the target programming language; and a processor operably coupled to the memory, and configured to: identify a set of data objects from the first piece of code, the set of data objects comprising at least one of a name of a function, a type of the function, an input parameter to the function, a type of the input parameter, an output parameter of the function, or a type of the output parameter; create a first knowledge graph that represents a relationship among the set of data objects, wherein the first knowledge graph is created based at least in part upon a position of each data object from among the set of data objects with respect to positions of other data objects in the first piece of code; identify a particular data object, from among the set of data objects, that is unique to the original programming language in response to determining that the particular data object is among the set of particular keywords, wherein the particular data object is used for a particular purpose in the original programming language; determine, based at least in part upon the particular purpose of the particular data object, a counterpart data object to the particular data object in the mapping table, wherein the counterpart data object is used for the particular purpose in the target programming language; create, based at least in part upon the first knowledge graph, a second piece of code in the target programming language by replacing the particular data object with the counterpart data object and maintaining the rest of data objects from the first piece of code; determine that the second piece of code is configured to perform the particular task; in response to determining that the second piece of code is configured to perform the particular task, execute the second piece of code; identify a second set of data objects from the second piece of code; determine a relationship among the second set of data objects based at least in part upon a position of each data object in the second piece of code with respect to positions of other data objects from among the second set of data objects; and create a second knowledge graph that represents the relationship among the second set of data objects; and wherein determining that the second piece of code is configured to perform the particular task is based at least in part upon the first and second knowledge graphs. 3. The system of claim 1, wherein the processor is further configured to: access a domain-specific dataset comprising a plurality of keywords associated with a specific domain, wherein the specific domain comprises web application development; determine that a second data object, from among the set of data objects, is among the plurality of keywords; and in response to determining that the second data object is among the set of particular keywords, maintain the second data object in the second piece of code. 3. The system of Claim 1, wherein determining that the second piece of code is configured to perform the particular task is based at least in part upon the first and second knowledge graphs and comprises: extracting a first set of features from the first knowledge graph, wherein the first set of features is represented by a first feature vector, wherein the first set of features indicates a first task flow associated with the first piece of code; extracting a second set of features from the second knowledge graph, wherein the second set of features is represented by a second feature vector, wherein the second set of features indicates a second task flow associated with the second piece of code; comparing the first feature vector with the second feature vector; determining a distance between the first feature vector and the second feature vector; comparing the determined distance between the first feature vector and the second feature vector with a threshold distance; in response to determining that the determined distance between the first feature vector and the second feature vector is less than the threshold distance: determining that the first task flow corresponds to the second task flow; and determining that the second piece of code is configured to perform the particular task. 2. The system of claim 1, wherein determining that the second piece of code is configured to perform the particular task based at least in part upon the first and second knowledge graphs comprises: extracting a first set of features from the first knowledge graph, wherein the first set of features is represented by a first feature vector, wherein the first set of features indicates a first task flow associated with the first piece of code; extracting a second set of features from the second knowledge graph, wherein the second set of features is represented by a second feature vector, wherein the second set of features indicates a second task flow associated with the second piece of code; comparing the first feature vector with the second feature vector; determining a distance between the first feature vector and the second feature vector; comparing the determined distance between the first feature vector and the second feature vector with a threshold distance; in response to determining that the determined distance between the first feature vector and the second feature vector is less than the threshold distance: determining that the first task flow corresponds to the second task flow; and determining that the second piece of code is configured to perform the particular task. 5. The system of Claim 1, wherein identifying the particular data object, from among the set of data objects, that is unique to the original programming language in response to determining that the particular data object is among the set of particular keywords comprises: extracting a third set of features from the particular data object, wherein the third set of features indicates an interpretation of the particular data object, wherein the third set of features is represented by a third feature vector; extracting a fourth set of features from a third keyword from among the set of particular keywords, wherein the fourth set of features indicates an interpretation of the third keyword, wherein the fourth set of features is represented by a fourth feature vector; comparing the third feature vector and the fourth feature vector; determining a distance between the third feature vector and the fourth feature vector; comparing the determined distance between the third feature vector and the fourth feature vector with a second threshold distance; and determining that the determined distance is less than the second threshold distance. 4. The system of claim 1, wherein identifying the particular data object, from among the set of data objects, that is unique to the original programming language in response to determining that the particular data object is among the set of particular keywords comprises: extracting a third set of features from the particular data object, wherein the third set of features indicates an interpretation of the particular data object, wherein the third set of features is represented by a third feature vector; extracting a fourth set of features from a third keyword from among the set of particular keywords, wherein the fourth set of features indicates an interpretation of the third keyword, wherein the fourth set of features is represented by a fourth feature vector; comparing the third feature vector and the fourth feature vector; determining a distance between the third feature vector and the fourth feature vector; comparing the determined distance between the third feature vector and the fourth feature vector with a second threshold distance; and determining that the determined distance is less than the second threshold distance. 6. The system of Claim 1, wherein determining, based at least in part upon the determined purpose of the particular data object, the counterpart data object to the particular data object in the mapping table comprises: extracting a fifth set of features from the particular data object, wherein the fifth set of features indicates a first purpose of the particular data object, wherein the fifth set of features is represented by a fifth feature vector; extracting a sixth set of features from the counterpart data object, wherein the sixth set of features indicates a second purpose of the counterpart data object, wherein the sixth set of features is represented by a sixth feature vector; comparing the fifth feature vector and the sixth feature vector; determining a third distance between the fifth feature vector and the sixth feature vector; comparing the determined distance between the fifth feature vector and the sixth feature vector with a third threshold distance; and determining that the determined distance is less than the third threshold distance. 5. The system of claim 1, wherein determining, based at least in part upon the determined purpose of the particular data object, the counterpart data object to the particular data object in the mapping table comprises: extracting a fifth set of features from the particular data object, wherein the fifth set of features indicates a first purpose of the particular data object, wherein the fifth set of features is represented by a fifth feature vector; extracting a sixth set of features from the counterpart data object, wherein the sixth set of features indicates a second purpose of the counterpart data object, wherein the sixth set of features is represented by a sixth feature vector; comparing the fifth feature vector and the sixth feature vector; determining a third distance between the fifth feature vector and the sixth feature vector; comparing the determined distance between the fifth feature vector and the sixth feature vector with a third threshold distance; and determining that the determined distance is less than the third threshold distance. 7. The system of Claim 1, wherein the particular purpose comprises defining the type of the function, defining the type of the input parameter, or defining the type of the output parameter. 6. The system of claim 1, wherein the particular purpose comprises defining the type of the function, defining the type of the input parameter, or defining the type of the output parameter. 8. A method for updating source code from an original programming language to a target programming language, comprising: storing, in a memory: a first piece of code written in an original programming language, wherein the first piece of code is programmed to perform a particular task; a set of particular keywords that are unique to the original programming language and are not used in other programming languages; and a mapping table that comprises the set of particular keywords and a set of counterpart keywords, wherein each of the set of particular keywords is mapped to a counterpart keyword from among the set of counterpart keywords, wherein the set of counterpart keywords is unique to the target programming language; identifying a set of data objects from the first piece of code, the set of data objects comprising at least one of a name of a function, a type of the function, an input parameter to the function, a type of the input parameter, an output parameter of the function, or a type of the output parameter; creating a first knowledge graph that represents a relationship among the set of data objects, wherein the first knowledge graph is created based at least in part upon a position of each data object from among the set of data objects with respect to positions of other data objects in the first piece of code; identifying a particular data object, from among the set of data objects, that is unique to the original programming language in response to determining that the particular data object is among the set of particular keywords, wherein the particular data object is used for a particular purpose in the original programming language; determining, based at least in part upon the determined purpose of the particular data object, a counterpart data object to the particular data object in the mapping table, wherein the counterpart data object is used for the particular purpose in the target programming language; creating, based at least in part upon the first knowledge graph, a second piece of code in the target programming language by replacing the particular data object with the counterpart data object and maintaining the rest of data objects from the first piece of code; determining that the second piece of code is configured to perform the particular task; in response to determining that the second piece of code is configured to perform the particular task, executing the second piece of code; accessing a domain-specific dataset comprising a plurality of keywords associated with a specific domain, wherein the specific domain comprises web application development; determining that a second data object, from among the set of data objects, is among the plurality of keywords; and in response to determining that the second data object is among the set of particular keywords, maintaining the second data object in the second piece of code. 7. A method for updating source code from an original programming language to a target programming language, comprising: storing, in a memory, a first piece of code written in an original programming language, wherein the first piece of code is programmed to perform a particular task; a set of particular keywords that are unique to the original programming language and are not used in other programming languages; and a mapping table that comprises the set of particular keywords and a set of counterpart keywords, wherein each of the set of particular keywords is mapped to a counterpart keyword from among the set of counterpart keywords, wherein the set of counterpart keywords is unique to the target programming language; identifying a set of data objects from the first piece of code, the set of data objects comprising at least one of a name of a function, a type of the function, an input parameter to the function, a type of the input parameter, an output parameter of the function, or a type of the output parameter; creating a first knowledge graph that represents a relationship among the set of data objects, wherein the first knowledge graph is created based at least in part upon a position of each data object from among the set of data objects with respect to positions of other data objects in the first piece of code; identifying a particular data object, from among the set of data objects, that is unique to the original programming language in response to determining that the particular data object is among the set of particular keywords, wherein the particular data object is used for a particular purpose in the original programming language; determining, based at least in part upon the particular purpose of the particular data object, a counterpart data object to the particular data object in the mapping table, wherein the counterpart data object is used for the particular purpose in the target programming language; creating, based at least in part upon the first knowledge graph, a second piece of code in the target programming language by replacing the particular data object with the counterpart data object and maintaining the rest of data objects from the first piece of code; determining that the second piece of code is configured to perform the particular task; in response to determining that the second piece of code is configured to perform the particular task, executing the second piece of code; identifying a second set of data objects from the second piece of code; determining a relationship among the second set of data objects based at least in part upon a position of each data object in the second piece of code with respect to positions of other data objects from among the second set of data objects; and creating a second knowledge graph that represents the relationship among the second set of data objects; and wherein determining that the second piece of code is configured to perform the particular task is based at least in part upon the first and second knowledge graphs. 9. The method of claim 7, further comprising: accessing a domain-specific dataset comprising a plurality of keywords associated with a specific domain, wherein the specific domain comprises web application development; determining that a second data object, from among the set of data objects, is among the plurality of keywords; and in response to determining that the second data object is among the set of particular keywords, maintaining the second data object in the second piece of code. 10. The method of Claim 8, wherein determining that the second piece of code is configured to perform the particular task is based at least in part upon the first and second knowledge graphs and comprises: extracting a first set of features from the first knowledge graph, wherein the first set of features is represented by a first feature vector, wherein the first set of features indicates a first task flow associated with the first piece of code; extracting a second set of features from the second knowledge graph, wherein the second set of features is represented by a second feature vector, wherein the second set of features indicates a second task flow associated with the second piece of code; comparing the first feature vector with the second feature vector; determining a distance between the first feature vector and the second feature vector; comparing the determined distance between the first feature vector and the second feature vector with a threshold distance; in response to determining that the determined distance between the first feature vector and the second feature vector is less than the threshold distance: determining that the first task flow corresponds to the second task flow; and determining that the second piece of code is configured to perform the particular task. 8. The method of claim 7, wherein determining that the second piece of code is configured to perform the particular task based at least in part upon the first and second knowledge graphs comprises: extracting a first set of features from the first knowledge graph, wherein the first set of features is represented by a first feature vector, wherein the first set of features indicates a first task flow associated with the first piece of code; extracting a second set of features from the second knowledge graph, wherein the second set of features is represented by a second feature vector, wherein the second set of features indicates a second task flow associated with the second piece of code; comparing the first feature vector with the second feature vector; determining a distance between the first feature vector and the second feature vector; comparing the determined distance between the first feature vector and the second feature vector with a threshold distance; in response to determining that the determined distance between the first feature vector and the second feature vector is less than the threshold distance: determining that the first task flow corresponds to the second task flow; and determining that the second piece of code is configured to perform the particular task. 12. The method of Claim 8, wherein identifying the particular data object, from among the set of data objects, that is unique to the original programming language in response to determining that the particular data object is among the set of particular keywords comprises: extracting a third set of features from the particular data object, wherein the third set of features indicates an interpretation of the particular data object, wherein the third set of features is represented by a third feature vector; extracting a fourth set of features from a third keyword from among the set of particular keywords, wherein the fourth set of features indicates an interpretation of the third keyword, wherein the fourth set of features is represented by a fourth feature vector; comparing the third feature vector and the fourth feature vector; determining a distance between the third feature vector and the fourth feature vector; comparing the determined distance between the third feature vector and the fourth feature vector with a second threshold distance; and determining that the determined distance is less than the second threshold distance. 10. The method of claim 7, wherein identifying the particular data object, from among the set of data objects, that is unique to the original programming language in response to determining that the particular data object is among the set of particular keywords comprises: extracting a third set of features from the particular data object, wherein the third set of features indicates an interpretation of the particular data object, wherein the third set of features is represented by a third feature vector; extracting a fourth set of features from a third keyword from among the set of particular keywords, wherein the fourth set of features indicates an interpretation of the third keyword, wherein the fourth set of features is represented by a fourth feature vector; comparing the third feature vector and the fourth feature vector; determining a distance between the third feature vector and the fourth feature vector; comparing the determined distance between the third feature vector and the fourth feature vector with a second threshold distance; and determining that the determined distance is less than the second threshold distance. 13. The method of Claim 8, wherein determining, based at least in part upon the determined purpose of the particular data object, the counterpart data object to the particular data object in the mapping table comprises: extracting a fifth set of features from the particular data object, wherein the fifth set of features indicates a first purpose of the particular data object, wherein the fifth set of features is represented by a fifth feature vector; extracting a sixth set of features from the counterpart data object, wherein the sixth set of features indicates a second purpose of the counterpart data object, wherein the sixth set of features is represented by a sixth feature vector; comparing the fifth feature vector and the sixth feature vector; determining a third distance between the fifth feature vector and the sixth feature vector; comparing the determined distance between the fifth feature vector and the sixth feature vector with a third threshold distance; and determining that the determined distance is less than the third threshold distance. 11. The method of claim 7, wherein determining, based at least in part upon the determined purpose of the particular data object, the counterpart data object to the particular data object in the mapping table comprises: extracting a fifth set of features from the particular data object, wherein the fifth set of features indicates a first purpose of the particular data object, wherein the fifth set of features is represented by a fifth feature vector; extracting a sixth set of features from the counterpart data object, wherein the sixth set of features indicates a second purpose of the counterpart data object, wherein the sixth set of features is represented by a sixth feature vector; comparing the fifth feature vector and the sixth feature vector; determining a third distance between the fifth feature vector and the sixth feature vector; comparing the determined distance between the fifth feature vector and the sixth feature vector with a third threshold distance; and determining that the determined distance is less than the third threshold distance. 14. The method of Claim 8, wherein the particular purpose comprises defining the type of the function, defining the type of the input parameter, or defining the type of the output parameter. 12. The method of claim 7, wherein the particular purpose comprises defining the type of the function, defining the type of the input parameter, or defining the type of the output parameter. 15. A non-transitory computer-readable medium storing instructions that when executed by a processor cause the processor to: store, in a memory: a first piece of code written in an original programming language, wherein the first piece of code is programmed to perform a particular task; a set of particular keywords that are unique to the original programming language and are not used in other programming languages; and a mapping table that comprises the set of particular keywords and a set of counterpart keywords, wherein each of the set of particular keywords is mapped to a counterpart keyword from among the set of counterpart keywords, wherein the set of counterpart keywords is unique to a target programming language; identify a set of data objects from the first piece of code, the set of data objects comprising at least one of a name of a function, a type of the function, an input parameter to the function, a type of the input parameter, an output parameter of the function, or a type of the output parameter; create a first knowledge graph that represents a relationship among the set of data objects, wherein the first knowledge graph is created based at least in part upon a position of each data object from among the set of data objects with respect to positions of other data objects in the first piece of code; identify a particular data object, from among the set of data objects, that is unique to the original programming language in response to determining that the particular data object is among the set of particular keywords, wherein the particular data object is used for a particular purpose in the original programming language; determine, based at least in part upon the determined purpose of the particular data object, a counterpart data object to the particular data object in the mapping table, wherein the counterpart data object is used for the particular purpose in the target programming language; create, based at least in part upon the first knowledge graph, a second piece of code in the target programming language by replacing the particular data object with the counterpart data object and maintaining the rest of data objects from the first piece of code; determine that the second piece of code is configured to perform the particular task; in response to determining that the second piece of code is configured to perform the particular task, execute the second piece of code; access a domain-specific dataset comprising a plurality of keywords associated with a specific domain, wherein the specific domain comprises web application development; determine that a second data object, from among the set of data objects, is among the plurality of keywords; and in response to determining that the second data object is among the set of particular keywords, maintain the second data object in the second piece of code. 13. A non-transitory computer-readable medium storing instructions that when executed by a processor cause the processor to: store, in a memory, a first piece of code written in an original programming language, wherein the first piece of code is programmed to perform a particular task; a set of particular keywords that are unique to the original programming language and are not used in other programming languages; and a mapping table that comprises the set of particular keywords and a set of counterpart keywords, wherein each of the set of particular keywords is mapped to a counterpart keyword from among the set of counterpart keywords, wherein the set of counterpart keywords is unique to a target programming language; identify a set of data objects from the first piece of code, the set of data objects comprising at least one of a name of a function, a type of the function, an input parameter to the function, a type of the input parameter, an output parameter of the function, or a type of the output parameter; create a first knowledge graph that represents a relationship among the set of data objects, wherein the first knowledge graph is created based at least in part upon a position of each data object from among the set of data objects with respect to positions of other data objects in the first piece of code; identify a particular data object, from among the set of data objects, that is unique to the original programming language in response to determining that the particular data object is among the set of particular keywords, wherein the particular data object is used for a particular purpose in the original programming language; determine, based at least in part upon the particular purpose of the particular data object, a counterpart data object to the particular data object in the mapping table, wherein the counterpart data object is used for the particular purpose in the target programming language; create, based at least in part upon the first knowledge graph, a second piece of code in the target programming language by replacing the particular data object with the counterpart data object and maintaining the rest of data objects from the first piece of code; determine that the second piece of code is configured to perform the particular task; in response to determining that the second piece of code is configured to perform the particular task, execute the second piece of code; identify a second set of data objects from the second piece of code; determine a relationship among the second set of data objects based at least in part upon a position of each data object in the second piece of code with respect to positions of other data objects from among the second set of data objects; and create a second knowledge graph that represents the relationship among the second set of data objects; and wherein determining that the second piece of code is configured to perform the particular task is based at least in part upon the first and second knowledge graphs. 15. The non-transitory computer-readable medium of claim 13, wherein the instructions further cause the processor to: access a domain-specific dataset comprising a plurality of keywords associated with a specific domain, wherein the specific domain comprises web application development; determine that a second data object, from among the set of data objects, is among the plurality of keywords; and in response to determining that the second data object is among the set of particular keywords, maintain the second data object in the second piece of code. 17. The non-transitory computer-readable medium of Claim 15, wherein determining that the second piece of code is configured to perform the particular task is based at least in part upon the first and second knowledge graphs and comprises: extracting a first set of features from the first knowledge graph, wherein the first set of features is represented by a first feature vector, wherein the first set of features indicates a first task flow associated with the first piece of code; extracting a second set of features from the second knowledge graph, wherein the second set of features is represented by a second feature vector, wherein the second set of features indicates a second task flow associated with the second piece of code; comparing the first feature vector with the second feature vector; determining a distance between the first feature vector and the second feature vector; comparing the determined distance between the first feature vector and the second feature vector with a threshold distance; in response to determining that the determined distance between the first feature vector and the second feature vector is less than the threshold distance: determining that the first task flow corresponds to the second task flow; and determining that the second piece of code is configured to perform the particular task. 14. The non-transitory computer-readable medium of claim 13, wherein determining that the second piece of code is configured to perform the particular task based at least in part upon the first and second knowledge graphs comprises: extracting a first set of features from the first knowledge graph, wherein the first set of features is represented by a first feature vector, wherein the first set of features indicates a first task flow associated with the first piece of code; extracting a second set of features from the second knowledge graph, wherein the second set of features is represented by a second feature vector, wherein the second set of features indicates a second task flow associated with the second piece of code; comparing the first feature vector with the second feature vector; determining a distance between the first feature vector and the second feature vector; comparing the determined distance between the first feature vector and the second feature vector with a threshold distance; in response to determining that the determined distance between the first feature vector and the second feature vector is less than the threshold distance: determining that the first task flow corresponds to the second task flow; and determining that the second piece of code is configured to perform the particular task. 19. The non-transitory computer-readable medium of Claim 15, wherein identifying the particular data object, from among the set of data objects, that is unique to the original programming language in response to determining that the particular data object is among the set of particular keywords comprises: extracting a third set of features from the particular data object, wherein the third set of features indicates an interpretation of the particular data object, wherein the third set of features is represented by a third feature vector; extracting a fourth set of features from a third keyword from among the set of particular keywords, wherein the fourth set of features indicates an interpretation of the third keyword, wherein the fourth set of features is represented by a fourth feature vector; comparing the third feature vector and the fourth feature vector; determining a distance between the third feature vector and the fourth feature vector; comparing the determined distance between the third feature vector and the fourth feature vector with a second threshold distance; and determining that the determined distance is less than the second threshold distance. 16. The non-transitory computer-readable medium of claim 13, wherein identifying the particular data object, from among the set of data objects, that is unique to the original programming language in response to determining that the particular data object is among the set of particular keywords comprises: extracting a third set of features from the particular data object, wherein the third set of features indicates an interpretation of the particular data object, wherein the third set of features is represented by a third feature vector; extracting a fourth set of features from a third keyword from among the set of particular keywords, wherein the fourth set of features indicates an interpretation of the third keyword, wherein the fourth set of features is represented by a fourth feature vector; comparing the third feature vector and the fourth feature vector; determining a distance between the third feature vector and the fourth feature vector; comparing the determined distance between the third feature vector and the fourth feature vector with a second threshold distance; and determining that the determined distance is less than the second threshold distance. 20. The non-transitory computer-readable medium of Claim 15, wherein determining, based at least in part upon the determined purpose of the particular data object, the counterpart data object to the particular data object in the mapping table comprises: extracting a fifth set of features from the particular data object, wherein the fifth set of features indicates a first purpose of the particular data object, wherein the fifth set of features is represented by a fifth feature vector; extracting a sixth set of features from the counterpart data object, wherein the sixth set of features indicates a second purpose of the counterpart data object, wherein the sixth set of features is represented by a sixth feature vector; comparing the fifth feature vector and the sixth feature vector; determining a third distance between the fifth feature vector and the sixth feature vector; comparing the determined distance between the fifth feature vector and the sixth feature vector with a third threshold distance; and determining that the determined distance is less than the third threshold distance. 17. The non-transitory computer-readable medium of claim 13, wherein determining, based at least in part upon the determined purpose of the particular data object, the counterpart data object to the particular data object in the mapping table comprises: extracting a fifth set of features from the particular data object, wherein the fifth set of features indicates a first purpose of the particular data object, wherein the fifth set of features is represented by a fifth feature vector; extracting a sixth set of features from the counterpart data object, wherein the sixth set of features indicates a second purpose of the counterpart data object, wherein the sixth set of features is represented by a sixth feature vector; comparing the fifth feature vector and the sixth feature vector; determining a third distance between the fifth feature vector and the sixth feature vector; comparing the determined distance between the fifth feature vector and the sixth feature vector with a third threshold distance; and determining that the determined distance is less than the third threshold distance. Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. The NPL document "Automatic inference of Java-to-swift translation rules for porting mobile applications" discuses j2sInferer, a tool for automating the translation of mobile apps from Java to Swift. Any inquiry concerning this communication or earlier communications from the examiner should be directed to GEOFFREY R ST LEGER whose telephone number is (571)270-7720. The examiner can normally be reached M-F (IFP) ~9:00-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, Hyung S Sough can be reached at 571-272-6799. 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. /GEOFFREY R ST LEGER/Primary Examiner, Art Unit 2192
Read full office action

Prosecution Timeline

Oct 09, 2024
Application Filed
Sep 11, 2026
Non-Final Rejection mailed — §DP
Sep 23, 2026
Response Filed

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12748579
IN-APPLICATION DYNAMIC USER INTERFACE RENDERING
2y 4m to grant Granted Sep 29, 2026
Patent 12737400
GENERATION OF EXECUTABLE PROCEDURE USING NATURAL LANGUAGE
2y 10m to grant Granted Sep 15, 2026
Patent 12724592
SYSTEM AND METHOD FOR WORKFLOW APPLICATION PROGRAMMING INTERFACES (APIS)
2y 5m to grant Granted Sep 01, 2026
Patent 12710943
Method for Managing a Runtime System for a Hybrid Computing Architecture, Managed Runtime System, Apparatus and Computer Program
3y 11m to grant Granted Aug 18, 2026
Patent 12711238
TECHNIQUES FOR APPLICATION ARCHITECTURE MANAGEMENT
2y 10m to grant Granted Aug 18, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

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

1-2
Expected OA Rounds
83%
Grant Probability
99%
With Interview (+20.8%)
2y 7m (~7m remaining)
Median Time to Grant
Low
PTA Risk
Based on 664 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