Prosecution Insights
Last updated: April 19, 2026
Application No. 18/329,504

DISCOVERING MATCHING CODE SEGMENTS ACCORDING TO INDEX AND COMPARATIVE SIMILARITY

Final Rejection §101§103
Filed
Jun 05, 2023
Examiner
JEON, JAE UK
Art Unit
2193
Tech Center
2100 — Computer Architecture & Software
Assignee
Amazon Technologies, Inc.
OA Round
2 (Final)
75%
Grant Probability
Favorable
3-4
OA Rounds
2y 8m
To Grant
99%
With Interview

Examiner Intelligence

Grants 75% — above average
75%
Career Allow Rate
296 granted / 395 resolved
+19.9% vs TC avg
Strong +47% interview lift
Without
With
+47.4%
Interview Lift
resolved cases with interview
Typical timeline
2y 8m
Avg Prosecution
40 currently pending
Career history
435
Total Applications
across all art units

Statute-Specific Performance

§101
26.8%
-13.2% vs TC avg
§103
49.7%
+9.7% vs TC avg
§102
3.7%
-36.3% vs TC avg
§112
14.6%
-25.4% vs TC avg
Black line = Tech Center average estimate • Based on career data from 395 resolved cases

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 1. This Office Action is in response to the arguments filed on 09/30/2023. Claims 21-40 are pending in this application. Claims 21, 28 and 35 are independent claims while claims 1-20 are canceled. This Office Action is made Final. Claim Rejections - 35 USC § 101 2. 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. 3. Claims 21-40 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. The claims 21, 28 and 35 are corresponding to one of four statutory categories including method, system, and method respectively under step 1. These claims 21, 28 and 35 similarly recite “a system, comprising: at least one processor; and a memory, storing program instructions that when executed by the at least one processor, cause the at least one processor to implement a development environment, the development environment configured to: based on text input in a development environment, obtain a suggested code segment specified in a programming language; obtain metadata for the suggested code segment from an entry of a matching code segment identified in an indexed code data store, wherein the matching code segment is identified according to an index value generated for the suggested code segment from a code structure representation of the suggested code segment used to look up the entry and a comparison of a logic tree representation of the suggested code segment with a logic tree representation of the matching code segment; and display, in the development environment, the suggested code segment along with metadata for the code suggestion attributing a source of the suggested code segment”. The limitation of the claims 21, 28 and 35 of “wherein the matching code segment is identified according to an index value generated for the suggested code segment from a code structure representation of the suggested code segment used to look up the entry and” as a drafted is a mental process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind such as “identifying”. For example, a human may identify the matching code segment according to an index value generated for the suggested code segment, which covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1. The limitation of the claims 21, 28 and 35 of “a comparison of a logic tree representation of the suggested code segment with a logic tree representation of the matching code segment” as a drafted is a mental process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind such as “comparing”. For example, a human may compare of a logic tree representation of the suggested code segment with a logic tree representation of the matching code segment, which covers performance of the limitation in the mind but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1. This judicial exception is not integrated into a practical application. In particular, the claims 21, 28 and 35 recite additional elements such as “based on text input in a development environment, obtain a suggested code segment specified in a programming language”. Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data gathering under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B. This judicial exception is not integrated into a practical application. In particular, the claims 21, 28 and 35 recite additional elements such as “obtain metadata for the suggested code segment from an entry of a matching code segment identified in an indexed code data store”. Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data gathering under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B. This judicial exception is not integrated into a practical application. In particular, the claims 21, 28 and 35 recite additional elements such as “display, in the development environment, the suggested code segment along with metadata for the code suggestion attributing a source of the suggested code segment”. Examiner would like to point out that with the broad reasonable interpretation, this element amounts to mere data displaying under MPEP § 2106.05(g): Insignificant Extra-Solution Activity, which does not impose any meaningful limits on practicing the mental process (insignificant additional element). Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to insignificant additional elements under Step 2A Prong 2 and Step 2B. This judicial exception is not integrated into a practical application. In particular, the claims 22, 29 and 36 recite additional elements such as “the suggested code segment is generated using a generative machine learning model trained to generate code suggestions using a plurality of code, including the matching code” Examiner would like to point out that with the broad reasonable interpretation, this element amounts to field of use under MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under Step 2A Prong 2 and 2B. This judicial exception is not integrated into a practical application. In particular, the claims 23, 30 and 37 recite additional elements such as “the suggested code segment is obtained via a plugin of the development environment that can request the suggested code segment according to the input text” Examiner would like to point out that with the broad reasonable interpretation, this element amounts to field of use under MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under Step 2A Prong 2 and 2B. The limitation of the claims 24, 31 and 38 of “add the suggested code responsive to a selection to add the code received via a user interface element of the development environment” as a drafted is a mental process that, under its broadest reasonable interpretation, covers performance of the limitation in the mind such as “adding”. For example, a human may add the suggested code responsive to a selection to add the code received via a user interface element of the development environment, which covers performance of the limitation in the mind or a pen and paper but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claim recites an abstract idea under Step 2A Prong 1. This judicial exception is not integrated into a practical application. In particular, the claims 25, 32 and 39 recite additional elements such as “the metadata for the suggested code segment includes licensing information for the matching code segment” Examiner would like to point out that with the broad reasonable interpretation, this element amounts to field of use under MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under Step 2A Prong 2 and 2B. This judicial exception is not integrated into a practical application. In particular, the claims 26, 33 and 40 recite additional elements such as “the development environment is implemented as part of a code development service and wherein the input text and the suggested code segment are for a code file stored as part of a code repository implemented as part of the code development service” Examiner would like to point out that with the broad reasonable interpretation, this element amounts to field of use under MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under Step 2A Prong 2 and 2B. This judicial exception is not integrated into a practical application. In particular, the claims 27 and 34 recite additional elements such as “the development environment is implemented as part of a code development service offered by a provider network and wherein the input text and the suggested code segment are for a code file stored as part of a code repository implemented external to the provider network”. Examiner would like to point out that with the broad reasonable interpretation, this element amounts to field of use under MPEP § 2106.05(h): Field of Use and Technological Environment, which does not impose any meaningful limits on practicing the mental process. Accordingly, this additional element does not integrate the abstract idea into a practical application because it does not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea under Step 2A Prong 2 and 2B. Dependent claims 22-27, 29-34 and 36-40 are also similar rejected under same rationale as cited above wherein these claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. These claims are merely further elaborate the mental process itself or providing additional definition of process which does not impose any meaningful limits on practicing the abstract idea. Claims 22-27, 29-34 and 36-40 are also rejected for incorporating the deficiency of their independent claims 21, 28 and 35. Claim Rejections - 35 USC § 103 4. 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. 5. 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. 6. Claims 21-40 are rejected under 35 U.S.C. 103 as being unpatentable over Cao (CN 118394408), in view of Sabharwal (US PGPub 20190391792), and further in view of Makkar (US PGPub 20200264870). As per Claim 21. Cao teaches of a system, comprising: at least one processor; and a memory, storing program instructions that when executed by the at least one processor, cause the at least one processor to implement a development environment, the development environment configured to: based on text input in a development environment, obtain a suggested code segment specified in a programming language; (Description: content of invention: converting the target code [text input] to be annotated into a first abstract syntax tree; determining the target abstract syntax tree similar to the first abstract syntax tree from the preset training model; determining a target similar code [suggested code segment] corresponding to the target abstract syntax tree based on the training model; respectively obtaining a first hidden state of the target code corresponding to each time step and a second hidden state of the target similar code; matching the features of the first abstract syntax tree and the second abstract syntax tree to determine the target similarity; determining the highest similarity from multiple target similarities; obtaining the target code segment in the original code data of the training model corresponding to the second abstract syntax tree; taking the target code segment as the target similar code.) wherein the matching code segment is identified according to an index value generated for the suggested code segment from a code structure representation of the suggested code segment used to look up the entry and (Description: content of invention In a first aspect, the present application provides a method for generating code annotations, and the method comprises: converting the target code to be annotated into a first abstract syntax tree; determining the target abstract syntax tree similar to the first abstract syntax tree from the preset training model; determining a target similar code corresponding to the target abstract syntax tree based on the training model. It’s obvious to use index value to represent the abstract syntax tree in order to differentiate different target similar codes to match the source code segment.) a comparison of a logic tree representation of the suggested code segment with a logic tree representation of the matching code segment; (Description: content of invention: matching the features of the first abstract syntax tree and the second abstract syntax tree to determine the target similarity; Optionally, converting the target code to be annotated into a first abstract syntax tree, comprising: performing lexical analysis to the target code to obtain multiple lexical units; analyzing the grammar of the lexical unit according to the grammar rule to obtain the tree structure corresponding to the lexical unit; constructing a plurality of tree structures into an abstract syntax tree structure based on a preset rule; configuring the node attribute for the node of the abstract syntax tree structure to obtain the first abstract syntax tree. optionally, determining a target abstract syntax tree similar to the first abstract syntax tree from a preset training model) Cao does not specifically teach, however Sabharwal teaches to obtain metadata for the suggested code segment from an entry of a matching code segment identified in an indexed code data store, and (Par 20, It is to be noted that the plurality of code snippets may be stored in a representational data repository. The representational data repository comprises the plurality of code snippets mapped to the plurality of contexts. The representational data repository implements Neural Network based encoders and decoders. Par 37, In one implementation, at least one of the plurality of the contexts may be pre-stored in the representational data repository. In other words, the representational data repository indicates vector mapping of the at least one of the plurality of contexts with the plurality of the code snippets. For example, consider codes “print ‘Hello World’” and “System.out.println (‘Hello World’)” in python and java respectively. As the context of the codes is same i.e. to print “Hello World”, the representational data repository maps the codes as equal.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add obtaining metadata for the suggested code segment from an entry of a matching code segment identified in an indexed code data store, as conceptually seen from the teaching of Sabharwal, into that of Cao because this modification can help match the most similar code segment using the metadata associated with the code segment for facilitating software development. Neither Cao nor Sabharwal specifically teaches, however Makkar teaches to display, in the development environment, the suggested code segment along with metadata for the code suggestion attributing a source of the suggested code segment. (Figs 1-2, and Fig. 5 and par 131, Finally, the tenth data field 510 [metadata] is populated with code snippets [suggested code segment] with similar functionality to the candidate library function. Par 18, The operation of the library suggestion engine 13 to transform input source code files 22 into validated code snippets 25 for matching with library functions 26 is shown with processing steps 31-33, though it will be appreciated that the underlying data may be stored in the database storage device 21 and/or memory 12. Par 20, To this end, the library suggestion engine 13 may be provided with a pruning engine 14 for analyzing the input source code files 22 (e.g., Source Code File A, Source Code File B, Source Code File C, . . . Source Code File n) using any suitable technique to identify candidate code snippets 24 (e.g., Source Code File A and Source Code File B) and remove others which are not likely candidates for library function substitution (e.g., Source Code File C and Source Code File n). Par 50, In selected embodiments, the heuristic engine 214 pools the tokens into candidate code snippets 215 using various techniques, such as polygraph, latency, and indexing, LDA, etc. The resulting candidate code snippets 215 are then passed to a matching engine 220 which is in turn composed of two different engines—a fuzzy or internal matching engine 222 and an input/output matching engine 228.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add displaying, in the development environment, the suggested code segment along with metadata for the code suggestion attributing a source of the suggested code segment, as conceptually seen from the teaching of Makkar, into that of Cao and Sabharwal because this modification can help the developer select the matching similar code segment based on their AST structure by displaying the code segment and the metadata associated with the code segment in order to facilitate software development. As per Claim 22, neither Cao nor Sabharwal specifically teaches, however Makkar teaches of the system of claim 21, wherein the suggested code segment is generated using a generative machine learning model trained to generate code suggestions using a plurality of code, including the matching code. (Par 6, Selected embodiments of the disclosed system, apparatus, and methodology use machine learning, natural language processing (NLP), and/or artificial intelligence (AI) in combination with static and/or dynamic code analysis techniques to automatically analyze code and yield library substitution opportunities. Par 21, In selected embodiments, the pruning engine 14 may also be configured to use an NLP or machine learning process which applies a topical model, such as a Latent Dirichlet Allocation (LDA) module or Latent Semantic Analysis (LSA) module, to extract topics in the input source code files 22.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add the suggested code segment is generated using a generative machine learning model trained to generate code suggestions using a plurality of code, including the matching code, as conceptually seen from the teaching of Makkar, into that of Cao and Sabharwal because this modification can help the developer select the matching similar code segment based on their AST structure by displaying the code segment and the metadata associated with the code segment in order to facilitate software development. As per Claim 23, neither Cao nor Makkar specifically teaches, however Sabharwal teaches of the system of claim 22, wherein the suggested code segment is obtained via a plugin of the development environment that can request the suggested code segment according to the input text. (Par 22, In one implementation, the AI based system may be configured as a plugin in an Interactive Development Environment (IDE) for at least one programming language. Par 57, Some embodiments enable a system and a method to integrate functionality of code reusability as a plugin in a software development environment including Eclipse, Android studio, visual studio, and others.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add the suggested code segment is obtained via a plugin of the development environment that can request the suggested code segment according to the input text, as conceptually seen from the teaching of Sabharwal, into that of Cao and Makkar because this modification can help match the most similar code segment using the metadata associated with the code segment for facilitating software development. As per Claim 26. neither Cao nor Makkar specifically teaches, however Sabharwal teaches of the system of claim 21, wherein the development environment is implemented as part of a code development service and wherein the input text and the suggested code segment are for a code file stored as part of a code repository implemented as part of the code development service. (Par 4-5, This summary is provided to introduce concepts related to systems and methods for facilitating reusability of a code snippet during development of a software application and the concepts are further described below in the detailed description. In order to facilitate reusability, initially, a plurality of tokens may be extracted from a sequence of lines of code entered by a developer during development of a software application. Par 7, In yet another implementation, non-transitory computer readable medium embodying a program executable in a computing device for facilitating reusability of a code snippet during development of a software is disclosed. The program may comprise a program code for extracting a plurality of tokens from a sequence of lines of code entered by a developer during development of a software application. Par 20, It is to be noted that the plurality of code snippets may be stored in a representational data repository. The representational data repository comprises the plurality of code snippets mapped to the plurality of contexts. The representational data repository implements Neural Network based encoders and decoders. The encoders and decoders implements machine translation technique to map the plurality of code snippets to the plurality of contexts.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add the development environment is implemented as part of a code development service and wherein the input text and the suggested code segment are for a code file stored as part of a code repository implemented as part of the code development service, as conceptually seen from the teaching of Sabharwal, into that of Cao and Makkar because this modification can help match the most similar code segment using the metadata associated with the code segment for facilitating software development. As per Claim 27, neither Cao nor Makkar specifically teaches, however Sabharwal teaches of the system of claim 21, wherein the development environment is implemented as part of a code development service offered by a provider network and wherein the input text and the suggested code segment are for a code file stored as part of a code repository implemented external to the provider network. (Par 26, Although the present disclosure is explained considering that the system 102 is implemented on a server, it may be understood that the system 102 may be implemented in a variety of computing systems, such as a laptop computer, a desktop computer, a notebook, a workstation, a mainframe computer, a server, a network server, a cloud-based computing environment. It will be understood that the system 102 may be accessed by multiple users through one or more user devices 104-1, 104-2 . . . 104-N, collectively referred to as user 104 or stakeholders, hereinafter, or applications residing on the user devices 104. In one implementation, the system 102 may comprise the cloud-based computing environment in which a user may operate individual computing systems configured to execute remotely located applications. Par 32, The data 210, amongst other things, serves as a repository for storing data processed, received, and generated by one or more of the modules 208. The data 210 may also include a system database 222 and other data 224. The other data 224 may include data generated as a result of the execution of one or more modules in the other modules 220.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add the development environment is implemented as part of a code development service offered by a provider network and wherein the input text and the suggested code segment are for a code file stored as part of a code repository implemented external to the provider network, as conceptually seen from the teaching of Sabharwal, into that of Cao and Makkar because this modification can help match the most similar code segment using the metadata associated with the code segment for facilitating software development. Re Claim 28, it is the method claim, having similar limitations of claim 21. Thus, claim 28 is also rejected under the similar rationale as cited in the rejection of claim 21. Re Claim 29, it is the method claim, having similar limitations of claim 22. Thus, claim 29 is also rejected under the similar rationale as cited in the rejection of claim 22. Re Claim 30, it is the method claim, having similar limitations of claim 23. Thus, claim 30 is also rejected under the similar rationale as cited in the rejection of claim 23. Re Claim 33, it is the method claim, having similar limitations of claim 26. Thus, claim 33 is also rejected under the similar rationale as cited in the rejection of claim 26. Re Claim 34, it is the method claim, having similar limitations of claim 27. Thus, claim 34 is also rejected under the similar rationale as cited in the rejection of claim 27. Re Claim 35, it is the product claim, having similar limitations of claim 21. Thus, claim 35 is also rejected under the similar rationale as cited in the rejection of claim 21. Re Claim 36, it is the product claim, having similar limitations of claim 22. Thus, claim 36 is also rejected under the similar rationale as cited in the rejection of claim 22. Re Claim 37, it is the product claim, having similar limitations of claim 23. Thus, claim 37 is also rejected under the similar rationale as cited in the rejection of claim 23. Re Claim 40, it is the product claim, having similar limitations of claim 26. Thus, claim 40 is also rejected under the similar rationale as cited in the rejection of claim 26. 7. Claims 24, 31 and 38 are rejected under 35 U.S.C. 103 as being unpatentable over Cao (CN 118394408), in view of Sabharwal (US PGPub 20190391792), in view of Makkar (US PGPub 20200264870), and further in view of Baafi (US PGPub 20210405977). As per Claim 24, none of Cao, Sabharwal and Makkar specifically teaches, however Baafi teaches of the system of claim 21, wherein the development environment is further configured to add the suggested code responsive to a selection to add the code received via a user interface element of the development environment. (Par 12, wherein positive feedback is presented indicating that upon dropping the selected source code snippet is proper and inserted in a correct position as indicated by the metadata; and then integrates the textual representation with text of source code already present, wherein all text code, comprising both the source code already present and the textual representation of the selected source code snippet, is editable using received keystrokes received from the user by an input-output interface communicating with the processor of the computing device. Par 67, This reparsing allows the present invention to restrict, by the code editor workspace and the graphical user interface, a selected source code snippet (in this case the textual representation) from being inserted where the selected source code snippet is incompatible with one or more of the group consisting of syntax, semantics and combinations thereof of source code already present, and allowing the selected source code snippet only to be dropped where metadata indicates the selected source code snippet will fit into the source code already present, wherein positive feedback can be presented indicating that upon dropping the selected source code snippet is proper and inserted in a correct position as indicated by the metadata.) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add adding the suggested code responsive to a selection to add the code received via a user interface element of the development environment, as conceptually seen from the teaching of Baafi, into that of Cao, Sabharwal and Makkar because this modification can help the developer select the matching similar code segment based on their AST structure by visually confirming the suggested code segment and the metadata associated with the code segment in order to facilitate software development. Re Claim 31, it is the method claim, having similar limitations of claim 24. Thus, claim 31 is also rejected under the similar rationale as cited in the rejection of claim 24. Re Claim 38, it is the product claim, having similar limitations of claim 24. Thus, claim 38 is also rejected under the similar rationale as cited in the rejection of claim 24. 8. Claims 25, 32 and 39 are rejected under 35 U.S.C. 103 as being unpatentable over Cao (CN 118394408), in view of Sabharwal (US PGPub 20190391792), in view of Makkar (US PGPub 20200264870), and further in view of Hinton (US PGPub 20100223592). As per Claim 25, none of Cao, Sabharwal and Makkar specifically teaches, however Hinton teaches of the system of claim 21, wherein the metadata for the suggested code segment includes licensing information for the matching code segment. (Fig. 6, par 77-78, In accordance with an illustrative embodiment, blocks 602, 604, and 606 also list license types associated with the code components that are included in the components represented by those blocks. For example, code for all classes located in "/common/gui" directory is shown to be compiled for building the GUI component of the software product in block 602. In addition, block 602 includes license information 612 associated with those code components. License information 612 informs a user that the GUI component of the software product includes code portions that have associated with them three different types of licenses. Furthermore, license information 612 informs that the licenses include one or more third party licenses, such as Berkeley Software Distribution (BSD) license--a type of open source license, GNU Lesser General Public License (LGPL)--another type of open source license, and Sun.RTM. license from a software manufacturer (Sun is a trademark of Sun Microsystems, Inc. in the United States and other countries).) Therefore, it would have been obvious for one of the ordinary skill in the art before the effective filing date of the claimed invention to add the metadata for the suggested code segment includes licensing information for the matching code segment, as conceptually seen from the teaching of Hinton, into that of Cao, Sabharwal and Makkar because this modification can help the developer select the matching similar code segment based on their AST structures by using their license information as metadata associated with the code segment in order to facilitate software development. Re Claim 32, it is the method claim, having similar limitations of claim 25. Thus, claim 32 is also rejected under the similar rationale as cited in the rejection of claim 25. Re Claim 39, it is the product claim, having similar limitations of claim 25. Thus, claim 39 is also rejected under the similar rationale as cited in the rejection of claim 25. Response to Arguments 9. Applicant's arguments with respect to the claims 21, 28 and 35 and their dependent claims have been fully considered but they are not persuasive. Regarding the first argument from the remark on pages 7-9 that none of the prior art teaches of the claim limitation such as wherein the matching code segment is identified according to an index value generated for the suggested code segment from a code structure representation of the suggested code segment used to look up the entry and a comparison of a logic tree representation of the suggested code segment with a logic tree representation of the matching code segment, especially three limitations such as index, logic tree representation of the suggested code segment and logic tree representation of the matching code segment, the examiner would like to point out that Cao firstly teaches of the index values as key word and identifier as in “In the embodiment, the flow diagram of converting Java code into abstract syntax tree can be as shown in FIG. 3, a lexical analyzer (Lexer) performs lexical analysis on the target code, the target code is divided into a lexical unit, such as key word, identifier, an operator and so on, and then parser analyzes grammar according to the grammar rule, according to the grammar rule of the programming language, the lexical unit is organized into a tree structure, according to the preset specific rule, a plurality of tree structures are constructed into an abstract syntax tree (AST tree) architecture, that is to say, according to the syntax rule, constructing the node of the AST tree, and establishing the relationship between the nodes, then configuring the node attribute for the AST node, such as type information, action domain information, Of course, the syntax details can also be processed to obtain a first abstract syntax tree corresponding to the target code.” And “the Java code is converted into abstract syntax tree, the lexical analyzer (Lexer) performs lexical analysis on the target code, the target code is split into a lexical unit, such as key word, identifier, an operator and so on,” And also the examiner believes that Cao teaches of logic tree representation [first abstract syntax tree (AST tree)] of the suggested code segment [target code] and logic tree representation [second abstract syntax tree (AST tree)] of the matching code segment [original code] as follows. In Cao, Description: content of invention: “the first abstract syntax tree is the abstract syntax tree of the target code conversion, the target abstract syntax tree is the abstract syntax tree similar to the first abstract syntax tree matched from the training set for training the training model.” “obtaining multiple second abstract syntax trees corresponding to the original code data; matching the features of the first abstract syntax tree and the second abstract syntax tree to determine the target similarity; determining the highest similarity from multiple target similarities; taking the second abstract syntax tree corresponding to the highest similarity as the target abstract syntax tree similar to the first abstract syntax tree.” “obtaining multiple second abstract syntax trees corresponding to the original code data; matching the features of the first abstract syntax tree and the second abstract syntax tree to determine the target similarity; determining the highest similarity from multiple target similarities;” Regarding the second argument about 101 Abstract Idea rejection from the remark on pages 10-12 that the claimed system provides significant technical advantages including improved computing efficiency and resource utilization by enabling improved search for code suggestions and code metadata in code development systems, the examiner would like to point out that in order to determine if additional element is integrating the abstract idea into a practical application, 1) The specification should describe the claimed improvement to achieve the desired goal and 2) The claimed improvement should be reflected at least in the additional elements in the claim by specifying how the claimed improvement performs the additional element to improve functioning of a computer or existing technical field. 2106.05(a) Improvements to the Functioning of a Computer or To Any Other Technology or Technical Field [R-07.2022] If it is asserted that the invention improves upon conventional functioning of a computer, or upon conventional technology or technological processes, a technical explanation as to how to implement the invention should be present in the specification. That is, the disclosure must provide sufficient details such that one of ordinary skill in the art would recognize the claimed invention as providing an improvement. The specification need not explicitly set forth the improvement, but it must describe the invention such that the improvement would be apparent to one of ordinary skill in the art. I. RELEVANT CONSIDERATIONS FOR EVALUATING WHETHER ADDITIONAL ELEMENTS INTEGRATE A JUDICIAL EXCEPTION INTO A PRACTICAL APPLICATION The Supreme Court and Federal Circuit have identified a number of considerations as relevant to the evaluation of whether the claimed additional elements demonstrate that a claim is directed to patent-eligible subject matter. The list of considerations here is not intended to be exclusive or limiting. Additional elements can often be analyzed based on more than one type of consideration and the type of consideration is of no import to the eligibility analysis. Additional discussion of these considerations, and how they were applied in particular judicial decisions, is provided in MPEP § 2106.05(a) through (c) and MPEP § 2106.05(e) through (h). Limitations the courts have found indicative that an additional element (or combination of elements) may have integrated the exception into a practical application include: • An improvement in the functioning of a computer, or an improvement to other technology or technical field, as discussed in MPEP §§ 2106.04(d)(1) and 2106.05(a); Conclusion THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action. Any inquiry concerning this communication or earlier communications from the examiner should be directed to JAE UK JEON whose telephone number is (571)270-3649. The examiner can normally be reached 9am-6pm. 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. /JAE U JEON/Primary Examiner, Art Unit 2193
Read full office action

Prosecution Timeline

Jun 05, 2023
Application Filed
Jun 26, 2025
Non-Final Rejection — §101, §103
Sep 30, 2025
Response Filed
Dec 11, 2025
Final Rejection — §101, §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12602216
SCHEMA REGISTRY FOR CLIENT-SERVER ENVIRONMENTS
2y 5m to grant Granted Apr 14, 2026
Patent 12596549
METHOD AND SYSTEM FOR ACCELERATION OF SLOWER DATA PROCESSING CODES IN MACHINE LEARNING PIPELINES
2y 5m to grant Granted Apr 07, 2026
Patent 12591433
COMPILER ALGORITHM FOR GPU PREFETCHING
2y 5m to grant Granted Mar 31, 2026
Patent 12586006
DEPLOYMENT OF SELF-CONTAINED DECISION LOGIC
2y 5m to grant Granted Mar 24, 2026
Patent 12579053
CONTEXTUAL TEST CODE GENERATION
2y 5m to grant Granted Mar 17, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

3-4
Expected OA Rounds
75%
Grant Probability
99%
With Interview (+47.4%)
2y 8m
Median Time to Grant
Moderate
PTA Risk
Based on 395 resolved cases by this examiner. Grant probability derived from career allow 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