DETAILED ACTION
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 .
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 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.
Claims 1-4, 6-11, 13-18 and 20, are rejected under 35 U.S.C. 102a2 as being anticipated by Carrara et al. (US 2025/0298585 A1).
As per claim 1, Carrara et al. teaches the invention as claimed including, “A method of application generation, the method comprising:
obtaining information about a set of pre-generated components for application generation, including obtaining input and output type information for each component of the set of pre-generated components;”
A generative AI component can also generate portions of this program documentation based in part on content stored in one of the custom models (e.g., pre-written documented control code samples, device documentation, standards documentation, training data, etc.) as well as program documentation text generated by the generative AI model in response to prompts submitted by the generative AI component (0101). Also see 0146. Examples of training data can include libraries of control code instructions or add-on instructions (AOI’s) that encode control or computational functionality and that can be added as elements to control routines, libraries or control code samples or smart objects that encapsulate reusable control code, libraries of user defined data types (UDRs), libraries of product manuals for various types of industrial devices or software platforms…etc. (0165). Each smart object definition comprises one or more industrial control programs or routines that are translatable to control code that can be executed on an industrial controller, as well as any data tags associated with the control programs (e.g., integer tags, Boolean tags, real tags, string tags, digital and analog I/O tags etc.) (0112). Parent child relationships can be specified as part of the smart object definitions (0113).
“receiving a natural language input from a user, the natural language input indicating a user-specified functionality for an application;
in response to the natural language input from the user, automatically:
generating a first prompt for a generative artificial intelligence (AI) component based on the natural language input, the first prompt requesting that the generative AI component select an appropriate set of components from the set of pre-generated components;
obtaining a first response to the first prompt from the generative AI component;
generating a second prompt for the generative AI component based on the natural language input and the response to the first prompt; and obtaining a second response from the generative AI component, the second response responsive to the second prompt;
presenting to the user a recommendation for implementing the user-specified functionality, based on the first response and the second response from the generative AI component, the recommendation corresponding to a subset of the set of pre-generated components; and
in response to receiving an acceptance of the recommendation, implementing the user-specified functionality using the subset of the pre-generated components.”
User can submit a natural language request to create a control program for a project, create smart object definitions for the project, or perform other project development tasks (0111). A user wishing to generate control code for carrying out a specific control function can submit an initial natural language request or query. The generative AI component can parse this initial request to determine the type of information or service being requested and refine and contextualize the initial query to quickly and accurately arrive at the desired answer or design solution. If the generative AI component determines that additional information from the user would yield a response having a higher probability or satisfying the user’s initial request, the generative AI component can formulate an render one or more query responses that prompt the user for more refined information that will allow the generative AI component to prompt a more complete or accurate solution to the users request. Through iterations of such chat exchange the generative AI component can collaborate with the user in exploring potential content variations likely to satisfy the user’s need. The AI component can query these natural language dialogs with the user based in part on learned knowledge of the types of questions that need to be answered in order to generate control code that aligns with the user’s need, or to provide responses having a high probability of addressed the user’s query (0084). Can present pre-composed or pre-leaded prompts to the user (0085). Also see 0165-0166. In some scenarios, if the generative AI component determines that additional specifics about the new project’s requirement which were no included in the user’s initial natural language request would allow the generative AI component to automatically create and configure elements of the system project to align with the user specific project requirement, the generative AI component can render a natural language, request asking the user to provide these projects specifics (0124). The generative AI component can also allow the user to allocate a selected smart object definition (or control code) to a selected controller definition using natural language requests (0129).
A generative AI copilot is used to generate code based on a user’s natural language request or query. A user can enter in a data field a natural language description of control code required for a system project. The natural language prompt can provide such information as a functional requirement for the code, types of equipment to be controlled by the code, a desired format for the code (e.g., ladder logic, structured text, Python, C#, etc.), description of control conditions for controlling the state of an output device, or other such descriptors. The AI component can generate one or more examples of control code determined to satisfy the requirements set forth in the prompt (0091). Control code recommendation in response to user’s request is displayed (0091). The user can choose to accept and integrate the proposed code into the current system project (0095).
As per claim 2, Carrara et al. further teaches, “The method of claim 1, wherein the information about the set of pre-generated components for application generation comprises a specification language.”
A generative AI component can also generate portions of this program documentation based in part on content stored in one of the custom models (e.g., pre-written documented control code samples, device documentation, standards documentation, training data, etc.) as well as program documentation text generated by the generative AI model in response to prompts submitted by the generative AI component (0101). The generative AI components can access any of the custom models and associated training data. Training data can include program instruction sets, libraries of pre-tested control code samples for various types of control or programming functions, programming manuals, industrial standards definitions, or other such libraries or data sources. Training data can also include customer-specific libraries that contain examples of a customer’s preferred coding standards, function standards, AOIs, program documentation standards, or other customer specific information. AI component can use prewritten code included in this training data where appropriate to satisfy the functional requirements specified by the user’s prompt (0146). Examples of training data can include libraries of control code instructions or add-on instructions (AOI’s) that encode control or computational functionality and that can be added as elements to control routines, libraries or control code samples or smart objects that encapsulate reusable control code, libraries of user defined data types (UDRs), libraries of produce manuals for various types of industrial devices or software platforms…etc. (0165).
As per claim 3, Carrara et al. further teaches, “The method of claim 2, wherein the user-specified functionality is implemented using a programming language, and wherein the specification language corresponds to a simplified subset of the programming language.”
Prompts or meta prompts are generated based on a user’s natural language inputs for submission to generative AI models such as large language models (LLMs) (0058). The generative AI component can implement prompt engineering functionality using associated custom models trained with domain-specific industrial training data. The generative AI component can generate and submit prompts or meta prompts to one or more generative AI models and associated neural networks, where these prompts are generated based on natural language requests or queries submitted by the designer as well as domain-specific information contained in the custom models. The generative AI model in response to the prompt can be used by the project generation component of the user interface component to generate portions of the system project (0063). The generative AI component formulates and submits prompts to the generative AI model designed to obtain responses. These prompts are generated based on the user’s natural language inputs as well as the industry knowledge and reference data encoded in the trained custom models. The generative AI components can reference custom models as needed in connection with processing the user’s natural language queries or requests and prompting the generative AI model for responses (0070-0071). A generative AI copilot is used to generate code based on a user’s natural language request or query. A user can enter in a data field a natural language description of control code required for a system project. The natural language prompt can provide such information as a functional requirement for the code, types of equipment to be controlled by the code, a desired format for the code (e.g., ladder logic, structured text, Python, C#, etc.), description of control conditions for controlling the state of an output device, or other such descriptors. The AI component can generate one or more examples of control code determined to satisfy the requirements set forth in the prompt (0091). The generative AI component can also generate portions of this program documentation based in part on content stored in one of the custom models (e.g., pre-written documented control code samples, device documentation, standards documentation, training data, etc.) as well as program documentation text generated by the generative AI model in response to prompts submitted by the generative AI component (0101).
User can submit a natural language request to create a control program for a project, create smart object definitions for the project, or perform other project development tasks (0111). As part of the analysis the system can also generate and submit prompts to the generative AI model, and user content of the generative AI model’s response in connection with analyzing the user’s request, analyzing the control code and generating natural language responses directed to the user if necessary (0165-0166).
As per claim 4, Carrara et al. further teaches, “The method of claim 3, wherein the set of pre-generated components corresponds to a set of predefined functions in the programming language.
A generative AI copilot is used to generate code based on a user’s natural language request or query. A user can enter in a data field a natural language description of control code required for a system project. The natural language prompt can provide such information as a functional requirement for the code, types of equipment to be controlled by the code, a desired format for the code (e.g., ladder logic, structured text, Python, C#, etc.), description of control conditions for controlling the state of an output device, or other such descriptors. The AI component can generate one or more examples of control code determined to satisfy the requirements set forth in the prompt (0091). A generative AI component can also generate portions of this program documentation based in part on content stored in one of the custom models (e.g., pre-written documented control code samples, device documentation, standards documentation, training data, etc.) as well as program documentation text generated by the generative AI model in response to prompts submitted by the generative AI component (0101). Examples of training data can include libraries of control code instructions or add-on instructions (AOI’s) that encode control or computational functionality and that can be added as elements to control routines, libraries or control code samples or smart objects that encapsulate reusable control code, libraries of user defined data types (UDRs), libraries of produce manuals for various types of industrial devices or software platforms…etc. (0165). Also see (0146).
As per claim 6, Carrara et al. further teaches, “The method of claim 1, further comprising verifying that the recommendation for implementing the user-specified functionality complies with one or more policies.
A project testing component can be configured to execute test scripts that test and validate proper execution of various aspects of a system project. The generative AI system can also generate the test scripts (0064). Also see 0151-0153.
As per claim 7, Carrara et al. further teaches, “The method of claim 1, wherein the second prompt is generated using a predefined decision tree.”
In some scenarios, if the generative AI component determines that additional specifics about the new project’s requirement which were not included in the user’s initial natural language request would allow the generative AI component to automatically create and configure elements of the system project to align with the user specific project requirement, the generative AI component can render a natural language, request asking the user to provide these projects specifics (0124).
The examiner states that a trained generative AI component is a type of decision tree.
As per claim 8-11, 13-18 and 20, they contain similar limitations to claims 1-4 and 6-7 and are therefore rejected for the same reason.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 5, 12, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Carrara et al. (US 2025/0298585 A1) as applied to claims 1, 8 and 15 above, and further in view of Bonadiman et al. (US 12,547,380 B1).
As per claim 5, Carrara et al. further teaches, “The method of claim 1, wherein the set of pre-generated components comprises one or more functional components and one or more connector components.”
A generative AI component can also generate portions of this program documentation based in part on content stored in one of the custom models (e.g., pre-written documented control code samples, device documentation, standards documentation, training data, etc.) as well as program documentation text generated by the generative AI model in response to prompts submitted by the generative AI component (0101). The generative AI components can access any of the custom models and associated training data. Training data can include program instruction sets, libraries of pre-tested control code samples for various types of control or programming functions, programming manuals, industrial standards definitions, or other such libraries or data sources. Training data can also include customer-specific libraries that contain examples of a customer’s preferred coding standards, function standards, AOIs, program documentation standards, or other customer specific information. AI component can use prewritten code included in this training data where appropriate to satisfy the functional requirements specified by the user’s prompt (0146). Examples of training data can include libraries of control code instructions or add-on instructions (AOI’s) that encode control or computational functionality and that can be added as elements to control routines, libraries of control code samples or smart objects that encapsulate reusable control code, libraries of user defined data types (UDRs), libraries of product manuals for various types of industrial devices or software platforms…etc. (0165).
However, Carrara et al. does not explicitly appear to teach, “The method of claim 1, wherein the set of pre-generated components comprises one or more functional components and one or more connector components.”
Bonadiman et al. teaches embodiments for a development environment in which a developer can leverage existing application program interface (APIs) to develop customizable interactive environments (column 2, lines 65- column 3, lines 1-10). A builder environment may have a set of common tasks or domains that include pre-built API’s, entities, plugins, and /or the like (column 10, lines 37 – 52). Also see column 7, lines 60 – column 8, lines 1-20 and column 11, lines 28-60).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Carrara et al. with Bonadiman et al. because both are similar teaching using natural language processing in-order to generate an application/program. Carrara et al. teaches that its language models can be trained using a wide variety of data as training data (0101, 0146 and 0165). Bonadiman et al. also teaches the use of a wide variety of prebuilt data including API’s and plugins. Adding API’s and plugins to the training data of Carrara et al. would be nothing more than a design choice and would have been obvious to try.
As per claims 12 and 19, they contain similar limitations to claim 5 and are rejected for the same reason.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MARK A GOORAY whose telephone number is (571)270-7805. The examiner can normally be reached Monday - Friday 10:00am - 6:00pm.
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, Lewis Bullock can be reached at 571-272-3759. 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.
/MARK A GOORAY/ Examiner, Art Unit 2199
/LEWIS A BULLOCK JR/ Supervisory Patent Examiner, Art Unit 2199