DETAILED ACTION
This action is responsive to communications filed on May 23, 2024. This action is made Non-Final.
Claims 1-22 are pending in the case.
Claims 1 and 17 are independent claims.
Claims 1-8, 10-13, 15-20, and 22 are rejected.
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 .
Information Disclosure Statement
The information disclosure statement (IDS(s)) submitted on 05/29/2024 is/are in compliance with the provisions of 37 C.F.R. 1.97. Accordingly, the IDS(s) is/are being considered by the examiner.
Improper Markush Groups
Claims 3, 4, 11, and 15 are rejected on the basis that the claims contain an improper Markush groupings of alternatives. See In re Harnisch, 631 F.2d 716, 721-22 (CCPA 1980) and Ex parte Hozumi, 3 USPQ2d 1059, 1060 (Bd. Pat. App. & Int. 1984). A Markush grouping is proper if the alternatives defined by the Markush group (i.e., alternatives from which a selection is to be made in the context of a combination or process, or alternative chemical compounds as a whole) share a “single structural similarity” and a common use. A Markush grouping meets these requirements in two situations. First, a Markush grouping is proper if the alternatives are all members of the same recognized physical or chemical class or the same art-recognized class, and are disclosed in the specification or known in the art to be functionally equivalent and have a common use. Second, where a Markush grouping describes alternative chemical compounds, whether by words or chemical formulas, and the alternatives do not belong to a recognized class as set forth above, the members of the Markush grouping may be considered to share a “single structural similarity” and common use where the alternatives share both a substantial structural feature and a common use that flows from the substantial structural feature. See MPEP § 2117.
The Markush grouping of “an addition or removal of a vertex in the workflow graph, assignment of a value to a property of a vertex in the workflow graph, and selection of a data source that provides data that will flow into the workflow graph,” is improper because the alternatives defined by the Markush grouping do not share both a single structural similarity and a common use for the following reasons: “an addition or removal of a vertex in the workflow graph, assignment of a value to a property of a vertex in the workflow graph, and selection of a data source that provides data that will flow into the workflow graph,” do not belong to the same recognized physical or chemical class or to the same art-recognized class and each member could not be substituted for each other with the expectation that the intended result would occur and expectation from the knowledge in the art that members of the class will behave in the same way in the context of the claimed invention.
The Markush grouping of “a training corpus of a machine learning model, a validation of a machine learning model, and a deployment of a machine learning model,” is improper because the alternatives defined by the Markush grouping do not share both a single structural similarity and a common use for the following reasons: “a training corpus of a machine learning model, a validation of a machine learning model, and a deployment of a machine learning model,” do not belong to the same recognized physical or chemical class or to the same art-recognized class and each member could not be substituted for each other with the expectation that the intended result would occur and expectation from the knowledge in the art that members of the class will behave in the same way in the context of the claimed invention.
The Markush grouping of “a particular vertex in the workflow graph and a particular property of a particular vertex in the workflow graph,” is improper because the alternatives defined by the Markush grouping do not share both a single structural similarity and a common use for the following reasons: “a particular vertex in the workflow graph and a particular property of a particular vertex in the workflow graph,” do not belong to the same recognized physical or chemical class or to the same art-recognized class and each member could not be substituted for each other with the expectation that the intended result would occur and expectation from the knowledge in the art that members of the class will behave in the same way in the context of the claimed invention.
The Markush grouping of “said definition of the workflow graph and said natural language that specifies the interaction,” is improper because the alternatives defined by the Markush grouping do not share both a single structural similarity and a common use for the following reasons: “said definition of the workflow graph and said natural language that specifies the interaction,” do not belong to the same recognized physical or chemical class or to the same art-recognized class and each member could not be substituted for each other with the expectation that the intended result would occur and expectation from the knowledge in the art that members of the class will behave in the same way in the context of the claimed invention.
To overcome these rejections, Applicant may set forth each alternative (or grouping of patentably indistinct alternatives) within an improper Markush grouping in a series of independent or dependent claims and/or present convincing arguments that the group members recited in the alternative within a single claim in fact share a single structural similarity as well as a common use.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-8, 10-13, 15-20, and 22 are rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception (i.e., a law of nature, a natural phenomenon, or an abstract idea) without significantly more.
Step 1: Independent claims 1 and 17 are directed towards a method and non-transitory media, respectively. Therefore, these claims, as well as their dependent claims, are directed towards one of the four statutory categories (process, machine (i.e. apparatus), manufacture, or composition of matter.
With respect to claim 1:
2A Prong 1:
Claim 1 recites the following judicial exceptions:
generating a linguistic prompt that contains: natural language that specifies an interaction to apply to a workflow graph and a definition of the workflow graph (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions).
inferentially generating ... a result of the interaction for the workflow graph (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may infer and produce a result of the interactions).
2A Prong 2: The additional elements recited in the claim do not integrate the judicial exception into a practical application.
Additional elements:
accepting, by a large language model (LLM), the linguistic prompt ... by the LLM (generally linking the use of a judicial exception to a particular technological environment or field of use (e.g. using LLMs to generate an output based on an input; see MPEP §2106.05(h).). The additional elements do not effectively integrate the abstract idea into a practical application. 2B: revisiting the additional elements, the additional elements do not amount to significantly more than the judicial exception – recited high level of generality and corresponds to storing and retrieving information and performing calculations.).
With respect to claim 2:
2A Prong 1:
Claim 2 recites the following judicial exceptions:
wherein: the interaction is a change to the workflow graph; the result of the interaction contains a new version of the workflow graph (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and produce a new version).
With respect to claim 3:
2A Prong 1:
Claim 3 recites the following judicial exceptions:
wherein the change to the workflow graph is at least one change selected from a group consisting of: an addition or removal of a vertex in the workflow graph, assignment of a value to a property of a vertex in the workflow graph, and selection of a data source that provides data that will flow into the workflow graph (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and produce a new version).
With respect to claim 4:
2A Prong 1:
Claim 4 recites the following judicial exceptions:
wherein the change to the workflow graph comprises generating or changing a vertex that specifies one selected from a group consisting of: a training corpus of a machine learning model, a validation of a machine learning model, and a deployment of a machine learning model (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and produce a new version).
With respect to claim 5:
2A Prong 1:
Claim 5 recites the following judicial exceptions:
wherein the new version of the workflow graph comprises a semi-structured document (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and produce a new version).
With respect to claim 6:
2A Prong 1:
Claim 6 recites the following judicial exceptions:
wherein: said result of the interaction further contains extraneous natural language that the semi-structured document does not contain; the method further comprises discarding the extraneous natural language (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and produce a new version. Further, a person may remove unnecessary extraneous natural language).
With respect to claim 7:
2A Prong 1:
Claim 7 recites the following judicial exceptions:
wherein: the interaction comprises an informal definition of a task; the result of the interaction contains a new vertex in the workflow graph; the new vertex contains a logic script that performs the task (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and produce a new version. Further, a person may indicate a task and modify the workflow graph to add a new node including script for the task).
With respect to claim 8:
2A Prong 1:
Claim 8 recites the following judicial exceptions:
the new vertex is connected to an upstream vertex that generates an output; the logic script accepts the output as an input (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and produce a new version. Further, a person may indicate a task and modify the workflow graph to add a new node including script for the task).
With respect to claim 10:
2A Prong 1:
Claim 10 recites the following judicial exceptions:
the interaction comprises a question about the workflow graph; the result of the interaction is an explanation that contains natural language that answers the question about the workflow graph (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and produce a new version. Further, a person may indicate a question about a graph and produce a result including an answer).
With respect to claim 11:
2A Prong 1:
Claim 11 recites the following judicial exceptions:
wherein said question is a question about one selected from a group consisting of: a particular vertex in the workflow graph and a particular property of a particular vertex in the workflow graph (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and produce a new version. Further, a person may indicate a task and modify the workflow graph to add a new node including script for the task. Further, a person may indicate a question about a graph and produce a result including an answer).
With respect to claim 12:
2A Prong 1:
Claim 12 recites the following judicial exceptions:
wherein: said natural language that specifies the interaction is grammatically correct natural language; the method further comprises: interactively receiving grammatically incorrect natural language that specifies the interaction, and generating said grammatically correct natural language from said grammatically incorrect natural language (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and produce a new version. Further, a person may indicate a task and modify the workflow graph to add a new node including script for the task. Further, a person may indicate a question about a graph, correct the grammar and/or syntax, and produce a result including an answer).
With respect to claim 13:
2A Prong 2: The additional elements recited in the claim do not integrate the judicial exception into a practical application.
Additional elements:
wherein said generating said grammatically correct natural language comprises a second LLM inferring said grammatically correct natural language (generally linking the use of a judicial exception to a particular technological environment or field of use (e.g. using a LLM to produce an output based on an input; see MPEP §2106.05(h).). The additional elements do not effectively integrate the abstract idea into a practical application. 2B: revisiting the additional elements, the additional elements do not amount to significantly more than the judicial exception – recited high level of generality and corresponds to storing and retrieving information and performing calculations.).
With respect to claim 15:
2A Prong 1:
Claim 15 recites the following judicial exceptions:
wherein: said definition of the workflow graph and said natural language that specifies the interaction do not have a fixed size; the method further comprises: generating a fixed-size encoding based on at least one selected from a group consisting of said definition of the workflow graph and said natural language that specifies the interaction (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and using an encoding and produce a new version. Further, a person may indicate a task and modify the workflow graph to add a new node including script for the task. Further, a person may indicate a question about a graph, correct the grammar and/or syntax, and produce a result including an answer).
2A Prong 2: The additional elements recited in the claim do not integrate the judicial exception into a practical application.
Additional elements:
retrieving, based on the fixed-size encoding, text content from a vector store (mere instructions to apply the exception or implement the exception on a computer (e.g. using a computer and retrieving data from a data store; see MPEP §2106.05(f).). The additional elements do not effectively integrate the abstract idea into a practical application. 2B: revisiting the additional elements, the additional elements do not amount to significantly more than the judicial exception – recited high level of generality and corresponds to storing and retrieving information in memory and performing calculations).
With respect to claim 16:
2A Prong 1:
Claim 16 recites the following judicial exceptions:
the method further comprises retrieving a record of a past interaction by a current user; said generating the linguistic prompt is based on the record of the past interaction (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and using an encoding and produce a new version. Further, a person may past interactions).
With respect to claim 17:
2A Prong 1:
Claim 17 recites the following judicial exceptions:
generating a linguistic prompt that contains: natural language that specifies an interaction to apply to a workflow graph and a definition of the workflow graph (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions).
inferentially generating ... a result of the interaction for the workflow graph (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may infer and produce a result of the interactions).
2A Prong 2: The additional elements recited in the claim do not integrate the judicial exception into a practical application.
Additional elements:
one or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause: (mere instructions to apply the exception or implement the exception on a computer (e.g. using a computer and retrieving data from a data store; see MPEP §2106.05(f).). The additional elements do not effectively integrate the abstract idea into a practical application. 2B: revisiting the additional elements, the additional elements do not amount to significantly more than the judicial exception – recited high level of generality and corresponds to storing and retrieving information in memory and performing calculations).
accepting, by a large language model (LLM), the linguistic prompt ... by the LLM (generally linking the use of a judicial exception to a particular technological environment or field of use (e.g. using LLMs to generate an output based on an input; see MPEP §2106.05(h).). The additional elements do not effectively integrate the abstract idea into a practical application. 2B: revisiting the additional elements, the additional elements do not amount to significantly more than the judicial exception – recited high level of generality and corresponds to storing and retrieving information and performing calculations.).
With respect to claim 18:
2A Prong 1:
Claim 18 recites the following judicial exceptions:
wherein: the interaction is a change to the workflow graph; the result of the interaction contains a new version of the workflow graph (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and produce a new version).
With respect to claim 19:
2A Prong 1:
Claim 19 recites the following judicial exceptions:
wherein: the interaction comprises an informal definition of a task; the result of the interaction contains a new vertex in the workflow graph; the new vertex contains a logic script that performs the task (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and produce a new version. Further, a person may indicate a task and modify the workflow graph to add a new node including script for the task).
With respect to claim 20:
2A Prong 1:
Claim 20 recites the following judicial exceptions:
the interaction comprises a question about the workflow graph; the result of the interaction is an explanation that contains natural language that answers the question about the workflow graph (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and produce a new version. Further, a person may indicate a question about a graph and produce a result including an answer).
With respect to claim 22:
2A Prong 1:
Claim 22 recites the following judicial exceptions:
the method further comprises retrieving a record of a past interaction by a current user; said generating the linguistic prompt is based on the record of the past interaction (mental process –can be performed in the human mind, or by a human using a pen and paper (e.g. a person may create a linguistic input that includes natural language instructions to apply interactions to modify a workflow graph and using an encoding and produce a new version. Further, a person may past interactions).
2B concluded: After considering all claim elements individually and as an ordered combination, it is determined that the claims do not include any additional elements that are sufficient to amount to significantly more than the judicial exception.
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.
Claim(s) 1, 7, 8, 10, 11, 15, 17, 19, and 20 is/are rejected under 35 U.S.C. 102(a)(2) as being anticipated by McMorran et al., US Publication 2025/0231763 (“McMorran”).
Claim 1:
McMorran discloses a method comprising:
generating a linguistic prompt that specifies interaction to apply to a workflow graph and a definition of the workflow graph (see Fig. 1A-6; para. 0004 - prompt to the large language model is created for the model to perform the task and respond to the user query. The prompt includes a context relevant to the query which is extracted from a graph-based representation of the source code program; para. 0005 - graph-based representation depicts the source code in a different structure than the source code itself since it includes data from internal data structures generated from static analysis tools, such as those typically generated during compilation. The graph is traversed to generate a sequence of code directives that form the context of the prompt; para. 0016 - graph includes nodes and edges where a node represents a code element of the source code program and an edge represents a relationship between two nodes; para. 0019 - context is used in a prompt to a large language model for the large language model to perform a task that responds to the user query; para. 0020 - software engineering task is an automated activity used to create, develop, maintain, build and/or test source code; para. 0037 – large language model is given a prompt 202 that consists of text in the form of a question, an instruction, short paragraph and/or source code to instruct the model to perform a task; para. 0042 - developer or user 302 interacts with a software development tool 304, such as an IDE or source code editor, to edit, develop, test, or build a source code program; para. 0043 - graph generation engine 310 is a program that runs in a background process during an edit session to generate the graph-based representation of the source code in the source code editor; para. 0053 - graph generation engine executes in a background process to create and maintain the graphical representation of the source code program during the user's edit session; para. 0055 - prompt contains instructions, a context that includes the code directives from the traversal of the graph, and the user query; para. 0065 - Each node in the graph is associated with a range of source code line numbers.);
accepting, by a large language model (LLM), the linguistic prompt (see Fig. 1A-6; para. 0037 – large language model is given a prompt 202 that consists of text in the form of a question, an instruction, short paragraph and/or source code to instruct the model to perform a task.); and
inferentially generating, by the LLM, a result of the interaction for the workflow graph (see Fig. 1A-6; para. 0019 - context is used in a prompt to a large language model for the large language model to perform a task that responds to the user query. Context contains one or more code directives where a code directive contains the data from a node and edge of the graph deemed relevant to the user query; para. 0020 - software engineering task is an automated activity used to create, develop, maintain, build and/or test source code; para. 0021 - large language model is trained to learn to perform a particular task; para. 0037 – large language model is given a prompt 202 that consists of text in the form of a question, an instruction, short paragraph and/or source code to instruct the model to perform a task. large language model to make a prediction for a task; para. 0053 - graph generation engine executes in a background process to create and maintain the graphical representation of the source code program during the user's edit session; para. 0055 - prompt generation engine receives the response from the large language model; para. 0087 - output in the software development tool a response from the large language model; para. 0093 - outputting in the source code editor a response from the large language model; para. 0098 - obtain a query in the user session pertaining to a task to perform on the source code program while in the software development tool. output in the software development tool a response from the large language model.).
Claim(s) 17:
Claim(s) 17 correspond to Claim 1, and thus, McMorran discloses the limitations of claim(s) 17 as well.
Claim 7:
McMorran further discloses wherein: interaction comprises an informal definition of a task; the result of the interaction contains a new vertex in the workflow graph; the new vertex contains a logic script that performs the task (see Fig. 1A-6; para. 0004 - prompt to the large language model is created for the model to perform the task and respond to the user query. The prompt includes a context relevant to the query which is extracted from a graph-based representation of the source code program; para. 0005 - graph-based representation depicts the source code in a different structure than the source code itself since it includes data from internal data structures generated from static analysis tools, such as those typically generated during compilation. The graph is traversed to generate a sequence of code directives that form the context of the prompt; para. 0016 - graph includes nodes and edges where a node represents a code element of the source code program and an edge represents a relationship between two nodes; para. 0019 - context is used in a prompt to a large language model for the large language model to perform a task that responds to the user query; para. 0020 - software engineering task is an automated activity used to create, develop, maintain, build and/or test source code; para. 0024 - function or method is a sequence of source code statements packaged as a unit to perform a particular task; para. 0037 – large language model is given a prompt 202 that consists of text in the form of a question, an instruction, short paragraph and/or source code to instruct the model to perform a task; para. 0042 - developer or user 302 interacts with a software development tool 304, such as an IDE or source code editor, to edit, develop, test, or build a source code program; para. 0043 - graph generation engine 310 is a program that runs in a background process during an edit session to generate the graph-based representation of the source code in the source code editor; para. 0053 - graph generation engine executes in a background process to create and maintain the graphical representation of the source code program during the user's edit session; para. 0055 - prompt contains instructions, a context that includes the code directives from the traversal of the graph, and the user query; para. 0065 - Each node in the graph is associated with a range of source code line numbers.).
Claim(s) 19:
Claim(s) 19 correspond to Claim 7, and thus, McMorran discloses the limitations of claim(s) 19 as well.
Claim 8:
McMorran further discloses wherein: the new vertex is connected to an upstream vertex that generates an output; the logic script accepts the output as an input (see Fig. 1A-6; para. 0004 - prompt to the large language model is created for the model to perform the task and respond to the user query. The prompt includes a context relevant to the query which is extracted from a graph-based representation of the source code program; para. 0005 - graph-based representation depicts the source code in a different structure than the source code itself since it includes data from internal data structures generated from static analysis tools, such as those typically generated during compilation. The graph is traversed to generate a sequence of code directives that form the context of the prompt; para. 0016 - graph includes nodes and edges where a node represents a code element of the source code program and an edge represents a relationship between two nodes; para. 0019 - context is used in a prompt to a large language model for the large language model to perform a task that responds to the user query; para. 0020 - software engineering task is an automated activity used to create, develop, maintain, build and/or test source code; para. 0024 - function or method is a sequence of source code statements packaged as a unit to perform a particular task; para. 0037 – large language model is given a prompt 202 that consists of text in the form of a question, an instruction, short paragraph and/or source code to instruct the model to perform a task; para. 0042 - developer or user 302 interacts with a software development tool 304, such as an IDE or source code editor, to edit, develop, test, or build a source code program; para. 0043 - graph generation engine 310 is a program that runs in a background process during an edit session to generate the graph-based representation of the source code in the source code editor; para. 0053 - graph generation engine executes in a background process to create and maintain the graphical representation of the source code program during the user's edit session; para. 0055 - prompt contains instructions, a context that includes the code directives from the traversal of the graph, and the user query; para. 0065 - Each node in the graph is associated with a range of source code line numbers.).
Claim 10:
McMorran further discloses wherein: the interaction comprises a question about the workflow graph; the result of the interaction is an explanation that contains natural language that answers the question about the workflow graph (see Fig. 1A-6; para. 0037 – large language model is given a prompt 202 that consists of text in the form of a question, an instruction, short paragraph and/or source code to instruct the model to perform a task; para. 0038 - instructions provide the model with an explanation of the task and include, in part, the query, "What does main( ) do?" 208. The context 206 includes the code directives derived from the graph-based representation of the source code program that are relevant to the query; para. 0040 - prompt is sent to the large language model which returns a response 224. For this example, the model provides an answer to the query which is a code summarization of the function main( ); para. 0084 - techniques described herein pertain to the practical application of question answering and in particular to the reduction of user input to a computing device to produce responses from a large language model that answer a user's query.).
Claim(s) 20:
Claim(s) 20 correspond to Claim 10, and thus, McMorran discloses the limitations of claim(s) 20 as well.
Claim 11:
McMorran further discloses wherein said question is a question about one selected from the group consisting of: a particular vertex in the workflow graph and a particular property of a particular vertex in the workflow graph (see Fig. 1A-6; para. 0037 – large language model is given a prompt 202 that consists of text in the form of a question, an instruction, short paragraph and/or source code to instruct the model to perform a task; para. 0038 - instructions provide the model with an explanation of the task and include, in part, the query, "What does main( ) do?" 208. The context 206 includes the code directives derived from the graph-based representation of the source code program that are relevant to the query; para. 0040 - prompt is sent to the large language model which returns a response 224. For this example, the model provides an answer to the query which is a code summarization of the function main( ); para. 0084 - techniques described herein pertain to the practical application of question answering and in particular to the reduction of user input to a computing device to produce responses from a large language model that answer a user's query.).
Claim 15:
McMorran further discloses wherein: said definition of the workflow graph and said natural language that specifies the interaction do not have a fixed size; the method further comprises: generating a fixed-size encoding based on at least one selected from a group consisting of said definition of the workflow graph and said natural language that specifies the interaction, and retrieving, based on the fixed-size encoding, text content from a vector store; said generating the linguistic prompt is based on the text content (see Fig. 1A-6; para. 0001 - large language model is a type of machine learning model trained on a massively large training dataset of text and/or source code and contains billions of parameters; para. 0004 - prompt to the large language model is created for the model to perform the task and respond to the user query. The prompt includes a context relevant to the query which is extracted from a graph-based representation of the source code program; para. 0005 - graph-based representation depicts the source code in a different structure than the source code itself since it includes data from internal data structures generated from static analysis tools, such as those typically generated during compilation. The graph is traversed to generate a sequence of code directives that form the context of the prompt; para. 0016 - graph includes nodes and edges where a node represents a code element of the source code program and an edge represents a relationship between two nodes; para. 0019 - context is used in a prompt to a large language model for the large language model to perform a task that responds to the user query; para. 0020 - software engineering task is an automated activity used to create, develop, maintain, build and/or test source code; para. 0037 – large language model is given a prompt 202 that consists of text in the form of a question, an instruction, short paragraph and/or source code to instruct the model to perform a task; para. 0042 - developer or user 302 interacts with a software development tool 304, such as an IDE or source code editor, to edit, develop, test, or build a source code program; para. 0043 - graph generation engine 310 is a program that runs in a background process during an edit session to generate the graph-based representation of the source code in the source code editor; para. 0048 - large language model consists of billions of parameters (e.g., weights, biases, embeddings) from being trained on terabytes of data; para. 0053 - graph generation engine executes in a background process to create and maintain the graphical representation of the source code program during the user's edit session; para. 0055 - prompt contains instructions, a context that includes the code directives from the traversal of the graph, and the user query; para. 0065 - Each node in the graph is associated with a range of source code line numbers.).
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.
Claim(s) 2, 3, 5, and 18 is/are rejected under 35 U.S.C. 103 as being unpatentable over McMorran.
Claim 2:
McMorran further discloses wherein the interaction is a change to the workflow graph; the result of the interaction contains a new version (see Fig. 1A-6; para. 0004 - prompt to the large language model is created for the model to perform the task and respond to the user query. The prompt includes a context relevant to the query which is extracted from a graph-based representation of the source code program; para. 0005 - graph-based representation depicts the source code in a different structure than the source code itself since it includes data from internal data structures generated from static analysis tools, such as those typically generated during compilation. The graph is traversed to generate a sequence of code directives that form the context of the prompt; para. 0016 - graph includes nodes and edges where a node represents a code element of the source code program and an edge represents a relationship between two nodes; para. 0019 - context is used in a prompt to a large language model for the large language model to perform a task that responds to the user query; para. 0020 - software engineering task is an automated activity used to create, develop, maintain, build and/or test source code; para. 0037 – large language model is given a prompt 202 that consists of text in the form of a question, an instruction, short paragraph and/or source code to instruct the model to perform a task; para. 0042 - developer or user 302 interacts with a software development tool 304, such as an IDE or source code editor, to edit, develop, test, or build a source code program; para. 0043 - graph generation engine 310 is a program that runs in a background process during an edit session to generate the graph-based representation of the source code in the source code editor; para. 0053 - graph generation engine executes in a background process to create and maintain the graphical representation of the source code program during the user's edit session; para. 0055 - prompt contains instructions, a context that includes the code directives from the traversal of the graph, and the user query; para. 0065 - Each node in the graph is associated with a range of source code line numbers.).
McMorran does not explicitly disclose of the workflow graph. However, McMorran does teach graph generation engine executes in a background process to create and maintain the graphical representation of the source code program during the user's edit session. Para. 0053. McMorran describes maintaining the graphical representation of the source code program, and thus, creating new versions of the representation when the source code program is modified. And so, the LLM generates the source code modifications based on a user query and the graph generation engine creates new versions of the representation when the source code program is modified. Accordingly, that the new version is of the workflow graph is obvious in light of the teachings of McMorran.
Claim(s) 18:
Claim(s) 18 correspond to Claim 2, and thus, McMorran teaches or suggests the limitations of claim(s) 18 as well.
Claim 3:
McMorran further teaches or suggests wherein the change to the workflow graph is at least one change to selected from the group consisting of: an addition or removal of a vertex in the workflow graph, assignment of a value to a property of a vertex in the workflow graph, and selection of a data source that provides data that will flow into the workflow graph (see Fig. 1A-6; para. 0004 - prompt to the large language model is created for the model to perform the task and respond to the user query. The prompt includes a context relevant to the query which is extracted from a graph-based representation of the source code program; para. 0005 - graph-based representation depicts the source code in a different structure than the source code itself since it includes data from internal data structures generated from static analysis tools, such as those typically generated during compilation. The graph is traversed to generate a sequence of code directives that form the context of the prompt; para. 0016 - graph includes nodes and edges where a node represents a code element of the source code program and an edge represents a relationship between two nodes; para. 0019 - context is used in a prompt to a large language model for the large language model to perform a task that responds to the user query; para. 0020 - software engineering task is an automated activity used to create, develop, maintain, build and/or test source code; para. 0037 – large language model is given a prompt 202 that consists of text in the form of a question, an instruction, short paragraph and/or source code to instruct the model to perform a task; para. 0042 - developer or user 302 interacts with a software development tool 304, such as an IDE or source code editor, to edit, develop, test, or build a source code program; para. 0043 - graph generation engine 310 is a program that runs in a background process during an edit session to generate the graph-based representation of the source code in the source code editor; para. 0053 - graph generation engine executes in a background process to create and maintain the graphical representation of the source code program during the user's edit session; para. 0055 - prompt contains instructions, a context that includes the code directives from the traversal of the graph, and the user query; para. 0065 - Each node in the graph is associated with a range of source code line numbers.).
Claim 5:
McMorran further teaches or suggests wherein the new version of the workflow graph comprises a semi-structured document (see Fig. 1A-6; para. 0004 - prompt to the large language model is created for the model to perform the task and respond to the user query. The prompt includes a context relevant to the query which is extracted from a graph-based representation of the source code program; para. 0005 - graph-based representation depicts the source code in a different structure than the source code itself since it includes data from internal data structures generated from static analysis tools, such as those typically generated during compilation. The graph is traversed to generate a sequence of code directives that form the context of the prompt; para. 0016 - graph includes nodes and edges where a node represents a code element of the source code program and an edge represents a relationship between two nodes; para. 0019 - context is used in a prompt to a large language model for the large language model to perform a task that responds to the user query; para. 0020 - software engineering task is an automated activity used to create, develop, maintain, build and/or test source code; para. 0037 – large language model is given a prompt 202 that consists of text in the form of a question, an instruction, short paragraph and/or source code to instruct the model to perform a task; para. 0042 - developer or user 302 interacts with a software development tool 304, such as an IDE or source code editor, to edit, develop, test, or build a source code program; para. 0043 - graph generation engine 310 is a program that runs in a background process during an edit session to generate the graph-based representation of the source code in the source code editor; para. 0053 - graph generation engine executes in a background process to create and maintain the graphical representation of the source code program during the user's edit session; para. 0055 - prompt contains instructions, a context that includes the code directives from the traversal of the graph, and the user query; para. 0065 - Each node in the graph is associated with a range of source code line numbers.).
Claim(s) 4 is/are rejected under 35 U.S.C. 103 as being unpatentable over McMorran, and further in view of Zhang et al., US Publication 2020/0184272 (“Zhang”).
Claim 4:
Zhang further teaches or suggests wherein the change to the workflow graph comprises generating or changing a vertex that specifies one selected from a group consisting of: a training corpus of a machine learning model, a validation of a machine learning model, and a deployment of a machine learning model (see para. 0005 - representing, within the framework, a machine learning model as a graph-based structure that includes nodes representing a subset of the reusable components and edges representing input-output relationships between pairs of the nodes. The technique further includes validating the machine learning model based on inputs and outputs associated with the nodes and the input-output relationships represented by the edges in the graph-based structure. Finally, the technique includes generating the machine learning model according to the graph based structure and configurations for the subset of the reusable components; para. 0039 - ensure that each variation of machine learning model 200 conforms to validation requirements associated with types 238, dimensionalities 240, and/or other attributes of components 242 in the variation; para. 0041 – create and/or execute variations 208 of machine learning model 200 according to the corresponding graph-based structures. For example, model creation engine 206 may retrieve parameters, call initialization functions, and/or perform other tasks to set up each variation of machine learning model 200. When training of the variation is required, model creation engine 206 may also input training data into the variation and use an optimization method to update the parameters; para. 0058 - Model definition engine 204 may also update the parameters of trainable components in the machine learning model based on a set of training data, an optimization method, and/or one or more hyperparameters for the machine learning model; para. 0063 - validating the machine learning model based on inputs and outputs associated with the nodes and the input-output relationships represented by the edges in the graph-based structure.).
Accordingly, it would have been obvious to one having ordinary skill before the effective filing date of the claimed invention to modify the system and method, taught in McMorran, to include wherein the change to the workflow graph comprises generating or changing a vertex that specifies one selected from a group consisting of: a training corpus of a machine learning model, a validation of a machine learning model, and a deployment of a machine learning model for the purpose of efficiently modifying a machine learning model using a corresponding graph, reducing overhead and/or complexity associated with creating and improving machine learning models as taught by Zhang (0006).
Claim(s) 6 is/are rejected under 35 U.S.C. 103 as being unpatentable over McMorran, and further in view of Kunz, US Publication 2025/0085934 (“Kunz”).
Claim 6:
Kunz further teaches or suggests wherein said result of the interaction further contains extraneous natural language that the semi-structured document does not contain; the method further comprises discarding the extraneous natural language (see Fig. 2; para. 0041 - allows the PromptScript interface 114 to discard any extraneous text returned outside the fences. Thus, for example, the LLM 116 may return some generated JavaScript code inside a fence along with some extraneous text before or after the JavaScript code, and the PromptScript interface 114 is then able to extract the JavaScript code using the fences; para. 0056 - extraneous text is removed from the generated first piece of software code. This may include removing any text outside of a markdown fence in cases where the system message instructs the LLM to generate the code within a markdown fence.).
Accordingly, it would have been obvious to one having ordinary skill before the effective filing date of the claimed invention to modify the system and method, taught in McMorran, to include wherein said result of the interaction further contains extraneous natural language that the semi-structured document does not contain; the method further comprises discarding the extraneous natural language for the purpose of efficiently cleaning LLM responses to make the responses acceptable, improving further LLM response processing, as taught by Kunz (0041, 0056, and 0057).
Claim(s) 12 and 13 is/are rejected under 35 U.S.C. 103 as being unpatentable over McMorran, and further in view of Shin, US Publication 2025/0181829 (“Shin”).
Claim 12:
McMorran further teaches or suggests said natural language that specifies the interaction is grammatically correct natural language (see para. 0015 - code element represents a segment of source code that corresponds to a non-terminal symbol of a production rule of the grammar of the programming language that is used or defined in a file of the source code program; para. 0058 - grammar of the programming language of the source code program determines the code element of the source code program; para. 0060 - grammar to describe how to construct syntactically-correct source code.).
Shin further teaches or suggests interactively receiving grammatically incorrect natural language that specifies the interaction, and generating said grammatically correct natural language from said grammatically incorrect natural language (see para. 0005 – the feedback output includes an indication of a particular grammatical error in the NL based input and/or a grammatically correct version of the NL based input; para. 0010 - the LLM prompt may further cause the LLM to output, in the LLM response, a grammatically correct version of the NL based input; para. 0064 - and optionally also output a grammatically correct version of a grammatically incorrect NL based input in the LLM response; para. 0136 - LLM query may also comprise a prompt to cause the LLM to generate, in the LLM response, a grammatically correct version of the NL based input; para. 0137 - and a grammatically correct version of the NL based input; para. 0164 - LLM to output an LLM response that includes both an indication of whether the NL based input 660A is grammatically incorrect and a grammatically correct version of the NL based input 660A; para. 0182 - and has provided the user with a grammatically correct version of the additional NL based input 844A in the form of a question.).
Accordingly, it would have been obvious to one having ordinary skill before the effective filing date of the claimed invention to modify the system and method, taught in McMorran, to include interactively receiving grammatically incorrect natural language that specifies the interaction, and generating said grammatically correct natural language from said grammatically incorrect natural language for the purpose of efficiently causing a grammatically correct LLM input to be inputted into an LLM, reducing the number of LLM input attempts and relieving computational resource strain and improving LLM output, as taught by Shin (0003, 0005, 0010).
Claim 13:
Shin further teaches or suggests wherein said generating said grammatically correct natural language comprises a second LLM inferring said grammatically correct natural language (see para. 0001 - Large language models (LLMs) are particular types of generative machine learning models that can perform various natural language processing (NLP) tasks, such as language generation, machine translation, and questionanswering. These LLMs are typically trained on enormous amounts of diverse data; para. 0005 – the feedback output includes an indication of a particular grammatical error in the NL based input and/or a grammatically correct version of the NL based input; para. 0010 - the LLM prompt may further cause the LLM to output, in the LLM response, a grammatically correct version of the NL based input; para. 0064 - and optionally also output a grammatically correct version of a grammatically incorrect NL based input in the LLM response; para. 0136 - LLM query may also comprise a prompt to cause the LLM to generate, in the LLM response, a grammatically correct version of the NL based input; para. 0137 - and a grammatically correct version of the NL based input; para. 0164 - LLM to output an LLM response that includes both an indication of whether the NL based input 660A is grammatically incorrect and a grammatically correct version of the NL based input 660A; para. 0182 - and has provided the user with a grammatically correct version of the additional NL based input 844A in the form of a question.).
Accordingly, it would have been obvious to one having ordinary skill before the effective filing date of the claimed invention to modify the system and method, taught in McMorran, to include wherein said generating said grammatically correct natural language comprises a second LLM inferring said grammatically correct natural language for the purpose of efficiently causing a grammatically correct LLM input to be inputted into an LLM, reducing the number of LLM input attempts and relieving computational resource strain and improving LLM output, as taught by Shin (0003, 0005, 0010).
Claim(s) 16 and 22 is/are rejected under 35 U.S.C. 103 as being unpatentable over McMorran, and further in view of Cuomo et al., US Publication 2025/0299053 (“Cuomo”).
Claims 16:
Cuomo further teaches or suggests the method further comprising retrieving a record of a past interaction by a current user; said generating the linguistic prompt is based on the text content (see Fig. 3-5; para. 0015 - enriching the user prompts by integrating contextual data from user interaction history, and adapting the enriched prompts to align with characteristics of Large Language Models (LLMs); para. 0016 - enriching the user prompts by integrating contextual data from user interaction history; para. 0017 - Categorizing the enriched user prompts has the technical effect of improving future queries by building a robust database that embodiments of the present invention can utilize. Matching the categorized prompts with a subset of LLMs and algorithmically selecting an optimal LLM has the technical effect of producing better results by optimizing a prompt to better leverage a model's strengths; para. 0070 - context database that maintains records of each user's interaction history that includes past prompts and responses and integrating past prompts and interactions. In this manner, virtualization manager 110 can incorporate past user interactions into the received user prompt; para. 0075 - ensures that the prompt is presented in a way that maximizes the model's response efficiency and quality.).
Accordingly, it would have been obvious to one having ordinary skill before the effective filing date of the claimed invention to modify the system and method, taught in McMorran, to include the method further comprising retrieving a record of a past interaction by a current user; said generating the linguistic prompt is based on the text content for the purpose of efficiently producing more effective prompts based on a user's interaction history that includes past prompts and responses, maximizing llm response efficiency and quality, as taught by Cuomo (0015, 0070, 0075).
Claim(s) 22:
Claim(s) 22 correspond to Claim 16, and thus, McMorran teaches or suggests the limitations of claim(s) 22 as well.
Allowable Subject Matter
Claims 9, 14, and 21 is/are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Andrew T McIntosh whose telephone number is (571)270-7790. The examiner can normally be reached M-Th 8:00am-5:30pm.
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, Tamara Kyle can be reached at 571-272-4241. 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.
/ANDREW T MCINTOSH/Primary Examiner, Art Unit 2144