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 initial office action is based on the application filed on 06/21/2024, which claims 1-20 have been presented for examination.
Status of Claim
2. Claims 1-20 are pending in the application and have been examined below, of which, claims 1, 13 and 20 are presented in independent form.
Priority
3. The present application claims priority to U.S. provisional patent application serial number 63/522,406, filed June 21st, 2023.
Information Disclosure Statement
4. The information disclosure statement (IDS) submitted on 10/17/2024. The submission is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Examiner Notes
5. Examiner cites particular columns and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner.
Claim Objections
6. Claims 1-20 are objected to because of the following informalities:
Claims 1, 13 and 20 recite the limitation "the code editor" in lines 3, 16 and 14 respectively should be changed to – the code editor interface --.
Claims 4, 10 and 16 recite the limitation "the partial code line entry" in lines 1-2, 3 and 1-2 respectively. There is insufficient antecedent basis for this limitation in the claim.
Claims 7-12 recite the limitation “the method” in line 1 should be changed to – the computer-implemented method --.
Claims 2-12 and 14-19 depend on claims 1 and 13 are also objected.
Appropriate correction is required.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
8. Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. The analysis specific to Claims 1, 13 and 20 is being presented below.
Claims 1, 13 and 20:
Step 1 Analysis:
Claims 1-12 of the instant application is direct to process/method.
Claims 13-19 of the instant application is direct to computer system.
Claim 20 of the instant application is direct to computer product.
Thus, they are statutory categories.
Step 2 Analysis:
Claims 1, 13 and 20 recite:
(a) maintaining a data store that includes searchable information for a graphic design, the searchable information including text-based information that includes terms and values for a collection of layers that comprise the graphic design, wherein each layer corresponds to an object, group of objects or a type of object, and each layer is associated with a set of attributes, including a text identifier;
(b) receiving, via a code editor interface, a sequence of character entries; performing a matching operation to match the character sequence to a term and/or value of the text-based information for one or more layers of the collection;
(c) determining a predicted or matched code line entry based on the term, value or combination of term(s) and value(s);
(d) providing, to the code editor, the predicted or matched code line entry, so as to autocomplete a portion of a code line entry with the predicted or matched code line entry.
Step 2A -- Prong 1:
The claims 1, 13 and 20 recite the limitations of:
(b) receiving, via a code editor interface, a sequence of character entries; performing a matching operation to match the character sequence to a term and/or value of the text-based information for one or more layers of the collection;
(c) determining a predicted or matched code line entry based on the term, value or combination of term(s) and value(s);
Limitations (b)-(c) are limitations that, as drafted, are processes that, under its broadest reasonable interpretations, covers performance of the limitation in the mind. That is, nothing in the claim elements precludes the step from practically being performed in the mind or with a pen and paper, i.e. “determining” can be performed in the human mind through observation, evaluation, judgement, opinion with the aid of pen and paper and “receiving”/collecting can be performed in the human mind with the aid of pen and paper As such, these limitations fall within the “Mental Processes” grouping of abstract ideas.
Step 2A -- Prong 2:
The claim 13 recites the additional limitations of “A computer system”, “one or more processors” and “a memory”. The limitations of “A computer system”, “one or more processors” and “a memory” are recited at a high level of generality, i.e., merely instructions to implement the abstract idea on a generic computer or merely uses a computer as a tool to perform the abstract idea. Claim 15 recites the additional limitations of “A non-transitory computer-readable medium”; “one or more processors of a computer system”. The limitations of “A non-transitory computer-readable medium”; “one or more processors of a computer system” are recited at a high level of generality, i.e., merely instructions to implement the abstract idea on a generic computer or merely uses a computer as a tool to perform the abstract idea. Additionally, limitation (a) performs as well-understood, routine and conventional activity and limitation (d) is merely insignificant extra solution activity of processing data and outputting data. Accordingly, these additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea.
Step 2B:
As explained with respect to Step 2A Prong Two, the additional elements in the claim are recited at a high level of generality and amount to no more than mere instructions to apply the exception using generic computer components. Accordingly, the additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The same analysis applies here in 2B, i.e., simply adding extra-solution activity or well-understood, routine and conventional activity or generic computer components does not integrate a judicial exception into a practical application at Step 2A or provide an inventive concept in Step 2B since the courts have identified functions such as gathering, displaying, updating/maintaining, transmitting/receiving and storing data as well- understood, routine, conventional activity. See MPEP 2106.05(d) and See MPEP 2106.05(g) . Therefore, claims are ineligible.
Dependent claims
Additionally, claims 2 and 14 recite “wherein the predicted or matched code line entry includes a text identifier of a layer of the collection” is merely insignificant extra solution activity of comparation/judgment data. Accordingly, these limitations do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea or provide an inventive concept and thus do not amount to significantly more that the abstract idea. As such, these claims fail both Step 2A prong 2 and Step 2B. Therefore, claims 2 and 14 are ineligible.
Additionally, claims 3 and 15 recite “wherein the predicted or matched code line entry corresponds to an attribute value of a layer of the collection” is merely insignificant extra solution activity of defining data. Accordingly, these limitations do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea or provide an inventive concept and thus do not amount to significantly more that the abstract idea. As such, these claims fail both Step 2A prong 2 and Step 2B. Therefore, claims 3 and 15 are ineligible.
Additionally, claims 4 and 16 recite “wherein receiving the partial code line entry includes receiving, over one or more networks, the code line entry over an application program interface; and wherein providing the predicted code line entry includes transmitting, over the application program interface, the predicted or matched code line entry” which perform as well-understood, routine and conventional activity. Accordingly, these limitations do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea or provide an inventive concept and thus do not amount to significantly more that the abstract idea. As such, these claims fail both Step 2A prong 2 and Step 2B. Therefore, claims 4 and 16 are ineligible.
Additionally, claims 5 and 17 recites “wherein the predicted or matched code line entry is based at least in part on the text identifier of the matched layer” is merely insignificant extra solution activity of defining data. Accordingly, these limitations do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea or provide an inventive concept and thus do not amount to significantly more that the abstract idea. As such, these claims fail both Step 2A prong 2 and Step 2B. Therefore, claims 5 and 17 are ineligible.
Additionally, claims 6 and 18 recite “wherein performing the matching operation includes determining a set of candidate code line entries from one or more terms and/or values of the collection, and selecting the predicted or matched code line entry from the candidate set based on one or more weighting factors of the set of candidate code line entries” as drafted, is a process that, under its broadest reasonable interpretations, covers performance of the limitation in the mind. That is, nothing in the claim elements precludes the step from practically being performed in the mind or with a pen and paper, i.e. “determining” can be performed in the human mind through observation, evaluation, judgment, opinion with the aid of pen and paper and “selecting”/choosing can be performed in the human mind with the aid of pen and paper. As such, this limitation falls within the “Mental Processes” grouping of abstract idea. Accordingly, these limitations do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea or provide an inventive concept and thus do not amount to significantly more that the abstract idea. As such, these claims fail both Step 2A prong 2 and Step 2B. Therefore, claims 6 and 18 are ineligible.
Additionally, claims 7 and 19 recite “wherein the weighting factors are based on a node or layer of at least one code line entry of the candidate set” is merely insignificant extra solution activity of defining data. Accordingly, these limitations do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea or provide an inventive concept and thus do not amount to significantly more that the abstract idea. As such, these claims fail both Step 2A prong 2 and Step 2B. Therefore, claims 7 and 19 are ineligible.
Additionally, claim 8 recites “wherein the weighting factors include a frequency or count, within the data store, of individual terms or values that match the one or more entries” is merely insignificant extra solution activity of defining data. Accordingly, these limitations do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea or provide an inventive concept and thus do not amount to significantly more that the abstract idea. As such, these claims fail both Step 2A prong 2 and Step 2B. Therefore, claim 8 is ineligible.
Additionally, claim 9 recites “wherein the method further comprises receiving an additional set of one or more characters for the partial character sequence” which perform as well-understood, routine and conventional activity; and “wherein performing the matching operation includes narrowing the set of set of candidate code line entries based on the additional set of one or more characters” is merely insignificant extra solution activity of defining data. Accordingly, these limitations do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea or provide an inventive concept and thus do not amount to significantly more that the abstract idea. As such, these claims fail both Step 2A prong 2 and Step 2B. Therefore, claim 9 is ineligible.
Additionally, claim 10 recites “wherein performing the matching operation includes: determining a portion of the graphic design that corresponds to a location of the code representation where the partial code line entry is made” as drafted, is a process that, under its broadest reasonable interpretations, covers performance of the limitation in the mind. As such, this limitation falls within the “Mental Processes” grouping of abstract idea. That is, nothing in the claim elements precludes the step from practically being performed in the mind or with a pen and paper, i.e. “determining” can be performed in the human mind through observation, evaluation, judgment, opinion with the aid of pen and paper. The limitation “wherein the matched term and/or value is included with the determined portion of the graphic design” is merely insignificant extra solution activity of defining data. Accordingly, these limitations do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea or provide an inventive concept and thus do not amount to significantly more that the abstract idea. As such, these claims fail both Step 2A prong 2 and Step 2B. Therefore, claim 10 is ineligible.
Additionally, claim 11 recites “wherein the predicted or matched code line entry includes an attribute identifier of the matched layer” is merely insignificant extra solution activity of defining data. Accordingly, these limitations do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea or provide an inventive concept and thus do not amount to significantly more that the abstract idea. As such, these claims fail both Step 2A prong 2 and Step 2B. Therefore, claim 11 is ineligible.
Additionally, claim 12 recites “wherein the predicted code or matched line entry includes a value that is based on an attribute of the matched layer” is merely insignificant extra solution activity of defining data. Accordingly, these limitations do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea or provide an inventive concept and thus do not amount to significantly more that the abstract idea. As such, these claims fail both Step 2A prong 2 and Step 2B. Therefore, claim 12 is ineligible.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
9. Claim(s) 1-4, 10, 13-16 and 20 is/are rejected under 35 U.S.C. 102(a)(1)/102(a)(2) as being anticipated by Stump et al. (US Pub. No. 2023/0161563 A1 – IDS filed on 10/17/2024 – herein after Stump).
Regarding claim 1.
Stump discloses
A computer-implemented method comprising:
maintaining a data store that includes searchable information for a graphic design (Project generation component 206 can be configured to create a system project comprising one or more project files based on design input received via the user interface component 204, as well as industrial knowledge, predefined code modules, and automation objects 222 maintained by the IDE system 202 – See paragraph [0051]), the searchable information including text-based information (feedback 518 can take the form of text-based recommendations (e.g., recommendations to rewrite an indicated portion of control code to comply with a defined programming standard), syntax highlighting, error highlighting, auto-completion of code snippets, or other such formats – See paragraph [0065]) that includes terms and values for a collection of layers that comprise the graphic design (the industrial IDE implements features that span the full automation lifecycle, including design (e.g., device selection and sizing, controller programming, visualization development, device configuration, testing, etc.); installation, configuration and commissioning; operation, improvement, and administration; and troubleshooting, expanding, and upgrading – See paragraph [0043]. Each line of text in the text version 1204 defines the types of program elements contained in the corresponding rung (e.g., normally open or normally closed contacts, output coils, timers, counters, instruction blocks, etc.), addresses assigned to the program elements (e.g., I/O addresses or internal addresses), values of variables or parameters defined for program elements (e.g., timer preset values, counter preset values, etc.), or other such program elements – See paragraph [0097]), wherein each layer corresponds to an object, group of objects or a type of object (control application namespace comprises a control device level, a task level, a program level, and a tag level – See paragraphs [0083-0086]. In the text editor window 1304 the automation object 222 may be formatted as a text string that identifies the name of the object and any user-defined values assigned to the object's respective properties – See paragraphs [0104-0105]), and each layer is associated with a set of attributes, including a text identifier (These properties and attributes may be specified inline or may be linked to the automation object – See paragraph [0089]. The name of the object and any user-defined values assigned to the object's respective properties – See paragraph [0105]);
receiving, via a code editor interface, a sequence of character entries (entering the name of an automation object 222 in a line of the text-formatted program in the text editor window 1304 – See paragraphs [0105-0106]);
performing a matching operation to match the character sequence to a term and/or value of the text-based information for one or more layers of the collection (entering the name of an automation object 222 in a line of the text-formatted program in the text editor window 1304 can cause the text editor to auto-complete a text-based template for the automation object 222 that includes generic placeholders for values of the object's properties. Map elements of the selected text-based programming language to corresponding elements of the graphical format (e.g., by mapping the text-based language to elements of the project model 602 referenced by both formats) such that program edits entered in either the text format or the graphical format are automatically reflected in the other of the two formats – See paragraphs [0105-0106]);
determining a predicted or matched code line entry based on the term, value or combination of term(s) and value(s) (vendor-provided code can be submitted to the IDE system 202, and user interface component 204 can analyze this code in view of in-house coding standards specified by one or more custom guardrail templates 506. Based on results of this analysis, user interface component 204 can indicate portions of the vendor-provided code (e.g., using highlights, overlaid text, etc.) that do not conform to the programming standards set forth by the guardrail templates 506, and display suggestions for modifying the code in order to bring the code into compliance. As an alternative or in addition to recommending these modifications, some embodiments of project generation component 206 can be configured to automatically modify the code in accordance with the recommendations to bring the code into conformance – See paragraphs [0066-0068]); and
providing, to the code editor, the predicted or matched code line entry, so as to autocomplete a portion of a code line entry with the predicted or matched code line entry (entering the name of an automation object 222 in a line of the text-formatted program in the text editor window 1304 can cause the text editor to auto-complete a text-based template for the automation object 222 that includes generic placeholders for values of the object's properties – See paragraph [0105]).
Regarding claim 2, the computer-implemented method of claim 1,
Stump discloses
wherein the predicted or matched code line entry includes a text identifier of a layer of the collection (each automation object 222 within the hierarchy defines a unique name scope, which is the union of the object's name plus the names of its parent automation objects – See paragraphs [0083-0085]. Entering the name of an automation object 222 in a line of the text-formatted program in the text editor window 1304 can cause the text editor to auto-complete a text-based template for the automation object 222 that includes generic placeholders for values of the object's properties – See paragraph [0105]).
Regarding claim 3, the computer-implemented method of claim 1,
Stump discloses
wherein the predicted or matched code line entry corresponds to an attribute value of a layer of the collection (each automation object 222 has associated therewith object properties or attributes specific to its corresponding industrial asset (e.g., those discussed above in connection with FIG. 4), including executable control programming for controlling the asset – See paragraphs [0075-0076]).
Regarding claim 4, the computer-implemented method of claim 1,
Stump discloses
wherein receiving the partial code line entry includes receiving, over one or more networks, the code line entry over an application program interface (IDE system 202 can include application programming interfaces (APIs) that allow third parties—such as OEMs, system integrators, industrial asset owners, or other such users—to program their own development interfaces and customize their own DSLs for interacting with the IDE system's development platform and populating a system project 302 – See paragraphs [0093-0094]); and
wherein providing the predicted code line entry includes transmitting, over the application program interface, the predicted or matched code line entry (display features of either of the graphical or text formats displayed at steps 1502, 1504, or 1510 (e.g., programmatic feedback, colors, highlighting, type-aheads, auto-corrections, auto-completions, etc.) can be defined at least in part by the DSL definition data received at step 1602 – See paragraph [0118]).
Regarding claim 10, the method of claim 1,
Stump discloses
wherein performing the matching operation includes: determining a portion of the graphic design that corresponds to a location of the code representation where the partial code line entry is made (unique text labels are used to identify types of program elements (e.g., XIC, XIO, TON, etc.), and logical conditions (e.g., AND and OR operations, which are represented as serial or parallel arrangements of program elements in the ladder logic version) are defined using commas, spaces, and brackets. Parameter values and addresses assigned to a given program element are defined within parentheses associated with the element. Information in the text version 1204 is translatable to yield the ladder logic format depicted in the graphical version 1202, and vice versa – See paragraph [0097]); and
wherein the matched term and/or value is included with the determined portion of the graphic design (highlighting the TRUE or FALSE states of ladder logic rung segments and their corresponding program elements, displaying the current digital and analog values of data tags associated with the program elements, or other such animations – See paragraph [0101]).
Regarding claim 13.
A computer system comprising:
one or more processors;
a memory to store instructions; wherein the one or processors store instructions to perform operations comprising:
Regarding claim 13, recites the same limitations as rejected claim 1 above.
Regarding claim 14, recites the same limitations as rejected claim 2 above.
Regarding claim 15, recites the same limitations as rejected claim 3 above.
Regarding claim 16, recites the same limitations as rejected claim 4 above.
Regarding claim 20.
A non-transitory computer-readable medium that stores instructions, which when executed by one or more processors of a computer system, cause the computer system to perform operations comprising:
Regarding claim 20, recites the same limitations as rejected claim 1 above.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
10. Claim(s) 5-7, 9 and 17-19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Stump in view of Athiwaratkun et al. (US Pub. No. 2023/0418567 A1 – herein after Athi).
Regarding claim 5, the computer-implemented method of claim 1,
Athi discloses
wherein the predicted or matched code line entry is based at least in part on the text identifier of the matched layer (Mapping of types from python to each language such as “list” to “Arraylist” in Java or “dictionary” to “Hash Map”. Values for different test cases can have different types, therefore the common superclass of all observed types for each argument may be inferred according to a type hierarchy. Since there can also be many levels of types (due to containers such as list or sets), the types may be recursively inferred to be consistent at each level. For example, ‘list of list’ and ‘list of object’ has a common type of ‘list of object’ – See paragraph [0080]).
It would have been obvious to one ordinary skill in the art before the effective filing date of claimed invention to use Athi’s teaching into Stump’s invention because incorporating Athi’s teaching would enhance Stump to enable to track and/or maintain consistent versions of collections of code for various development projects as suggested by Athi (paragraph [0035]).
Regarding claim 6, the computer-implemented method of claim 1,
Athi discloses
wherein performing the matching operation includes determining a set of candidate code line entries from one or more terms and/or values of the collection (code development environment 211 may offer various code entry tools (e.g., text, diagram/graphics based application development) to specify, invoke, or otherwise write (or cause to be written) code for different hardware or software applications – See paragraph [0030]. Provide real-time analysis and suggestion of code as the code is entered into the development environment 211 or 219 – See paragraph [0034]. Automatic suggestion event detection 310 may use client-specific events, such as the entering of specific keys or characters in a pattern specific to the client (or configured/described by the client in a request to configure suggestion handling 220 – See paragraph [0042]), and selecting the predicted or matched code line entry from the candidate set based on one or more weighting factors of the set of candidate code line entries (one of the next token predictions may be selected according to respective confidence scores to return as the code suggestion for the input programming code, in some embodiments. In some embodiments, multiple recommendations may be generated and a number of recommendations may be provided that includes multiple recommendations (e.g., a top 3 according to confidence stores) – See paragraph [0100]. The result of the next token prediction given the input tokens may include a number of different token predictions with varying confidence values. Those token predictions that are not one of the identified possible tokens may be removed from consideration. A highest confidence score remaining one of the predictions may be identified – See paragraphs [0108-0110]).
It would have been obvious to one ordinary skill in the art before the effective filing date of claimed invention to use Athi’s teaching into Stump’s invention because incorporating Athi’s teaching would enhance Stump to enable to provide the predictions that select one based on confidence scores to provide as the code suggestion as suggested by Athi (paragraph [0055]).
Regarding claim 7, the method of claim 6,
Athi discloses
wherein the weighting factors are based on a node or layer of at least one code line entry of the candidate set (the matching is done efficiently using a character-trie data structure (e.g., with native Pytorch arrays as node lists for fast concatenation). Based on the list of matching tokens, other tokens may be masked out during next token prediction, therefore ensuring that the generation will match the suffix character-by-character – See paragraph [0057 and 0106-0107]).
It would have been obvious to one ordinary skill in the art before the effective filing date of claimed invention to use Athi’s teaching into Stump’s and invention because incorporating Athi’s teaching would enhance Stump to enable to string-index for a vocabulary of words where individual nodes contain links to suffix child nodes that add additional characters to the suffix at each child node as suggested by Athi (paragraph [0106]).
Regarding claim 9, the method of claim 6,
Athi discloses
wherein the method further comprises receiving an additional set of one or more characters for the partial character sequence (the input code 920 has changed with additional characters being added, as indicated by the moved cursor. Code suggestion 930 may be validated by comparing a number (e.g., 4) characters with the additional characters “temp” at T2 – See paragraph [0095]); and
wherein performing the matching operation includes narrowing the set of set of candidate code line entries based on the additional set of one or more characters (constrained pre-fix matching for generating next token predictions may be used in such a situation to correct for partial token suggestion errors. FIG. 11 is a high-level flowchart illustrating techniques and methods to implement constrained pre-fix matching for generating next token predictions – See paragraph [0101]).
It would have been obvious to one ordinary skill in the art before the effective filing date of claimed invention to use Athi’s teaching into Stump’s and invention because incorporating Athi’s teaching would enhance Stump to enable to constraint pre-fix matching for generating next token predict as suggested by Athi (paragraph [0101]).
Regarding claim 17, recites the same limitations as rejected claim 5 above.
Regarding claim 18, recites the same limitations as rejected claim 6 above.
Regarding claim 19, recites the same limitations as rejected claim 7 above.
11. Claim(s) 8 is/are rejected under 35 U.S.C. 103 as being unpatentable over Stump and Athi as applied to claim 6 above, and further in view of Maliheh Izadi (CodeFill: Multi-token Code Completion by Jointly Learning from Structure and Naming Sequences, 2022 – herein after Izadi).
Regarding claim 8, the method of claim 6,
Izadi discloses
wherein the weighting factors include a frequency or count, within the data store, of individual terms or values that match the one or more entries (we remove three sets of bi-grams; (1) those that are mostly written together with occurrence frequency above 95% (e.g., async def), (2) those that are normally not predictable (e.g., class NAME or def FUNCTION-NAME), and finally (3) those that are usually not practical completions (e.g., TRUE :) – See page 407, right column).
It would have been obvious to one ordinary skill in the art before the effective filing date of claimed invention to use Izadi’s teaching into Stump’s and Athi’s inventions because incorporating Izadi’s teaching would enhance Stump and Athi to enable to fill in a partially completed statement with frequent and valid recommendations as suggested by Izadi (page 403, right column).
12. Claim(s) 11-12 is/are rejected under 35 U.S.C. 103 as being unpatentable over Stump as applied to claim 1 above, and further in view of Maliheh Izadi (CodeFill: Multi-token Code Completion by Jointly Learning from Structure and Naming Sequences, 2022 – herein after Izadi).
Regarding claim 11, the method of claim 1,
Izadi discloses
wherein the predicted or matched code line entry includes an attribute identifier of the matched layer (each model’s performance in predicting different types of leaf nodes in an AST, e.g., function calls, variables, and attribute names – See page 409, left column).
It would have been obvious to one ordinary skill in the art before the effective filing date of claimed invention to use Izadi’s teaching into Stump’s invention because incorporating Izadi’s teaching would enhance Stump to enable to predict different types of leaf nodes in attribute names as suggested by Izadi (page 409, left column).
Regarding claim 12, the method of claim 1,
Izadi discloses
wherein the predicted code or matched line entry includes a value that is based on an attribute of the matched layer (CodeFill is then asked to predict either the value or the type of the next n tokens. To enable CodeFill to learn name dependencies across longer ranges, we also train it with an additional task, multi-token statement completion at the value level – See page 402, left column).
It would have been obvious to one ordinary skill in the art before the effective filing date of claimed invention to use Izadi’s teaching into Stump’s invention because incorporating Izadi’s teaching would enhance Stump to enable to learn name dependencies across longer ranges, train it with an additional task, multi-token statement completion at the value level as suggested by Zhao (page 402, left column).
Conclusion
13. The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Antinori et al. (US pub. No. 2023/0305817 A1) discloses A runtime dependency header module that contains information that identifies, for each function of the plurality of functions, a name of the function and a number of parameters of the function is obtained. The runtime dependency header module is stored in a location used by an interactive development environment (IDE) to determine dependencies used by the interpretable application for purposes of an autocompletion feature of the IDE – See Abstract and specification for more details.
Schmidt et al. (US Pub. No. 2025/0021309 A1) discloses generating a web or mobile application by providing a front-end graphics editor to specify a user interface design; applying AI to generate human-readable front-end code for the user interface design as a co-pilot with a user in the user interface design; and applying a large language model (LLM) transformer to transform the generated human-readable front-end code into a machine-readable format and build the web or mobile application – See Abstract and specification for more details.
Masad et al. (US Pub. No. 2024/0281219 A1) discloses a code segment is intelligently generated by receiving a request to modify computer code of a program in a development interface, and presenting a text input component and a code description prompt. The technique further includes receiving, via the text input component, a code description, applying at least part of the code description to a code generation network to obtain a code segment suggestion and presenting the code segment suggestion on a display – See Abstract and specification for more details.
Groenewegen et al. (US Patent No. 12,498,906 B2) discloses obtains a second suggested edit at a second source code location. At the code editor UI, the computer system presents a second chat indicator at the second source code location. Based on user interaction with the second chat indicator, the computer system presents the second suggested edit – See Abstract and specification for more details.
UR et al. (US Pub. No. 2024/0264805 A1) discloses output a suggestion of a low-level language code corresponding to a high-level language code when a programmer converts the high-level language code into the low-level language code; and perform learning based on whether the suggestion is adopted by the programmer –See Abstract and specification for more details.
Ziegler et al. (US Pub. No. 2023/0359442 A1) discloses identify one or more first portions of text from the one or more wish items that are relevant to text immediately preceding the cursor, and prioritize the one or more first portions of text to identify a particular first portion of text that is most relevant to the text immediately preceding the cursor. The computer system then generates a second portion of text based on the particular first portion of text and suggest that the second portion of text be entered at the cursor – See Abstract and specification for more details.
Stanek et al. (US Pub. No. 2024/0345809 A1) discloses define, using text-based programming, such HMI properties as the graphical elements to be included in the HMI application, element layouts in reference to other graphical elements, element behaviors and actions, commands and custom executable code for specific interactions of the graphics – See Abstract and specification for more details.
Patrick Mader (Reactive Auto-Completion of Modeling Activities, 2021) discloses A common assistance function of IDEs is the auto-completion of source code. Assistance functions, such as auto-completion, are almost entirely missing in modeling tools though auto-completion in general gains continuously more importance in software development – See Abstract.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MONGBAO NGUYEN whose telephone number is (571)270-7180. The examiner can normally be reached Monday-Friday 8am-5pm.
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.
/MONGBAO NGUYEN/ Examiner, Art Unit 2192