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 .
Claims 1-20 are presented for examination.
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claim(s) 1-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Chen et al. (US 2024/0020096 A1) in view of Canedo et al. (US 2022/0276628 A1).
Regarding Claim 1, Chen (US 2024/0020096 A1) teaches
A system, comprising:
a memory that stores executable components and one or more custom models; and a processor, operatively coupled to the memory, that executes the executable components (Para [0016], a system for generating computer code based on natural language input may include at least one memory storing instructions and at least one processor configured to execute the instructions to perform operations);
a user interface component configured to render an integrated development environment (IDE) interface and to receive, via interaction with the IDE interface, design input that defines aspects of an industrial system project (Para [0090], a user interface, as used herein, may refer to any means through which a user interacts with a software application or computer system … a user interface may include a graphical user interface (GUI), a command line interface, a touch user interface, a voice user interface; Para [0078], Example tasks include code completion (e.g., suggesting code completions for developers as they write code; e.g., if a developer starts typing a line of code and then pauses, code snippets may be suggested to complete the task, which may save time and improve the accuracy of the code being written)) Examiner Comments: Chen's user interface that receives natural language docstrings from a developer and displays generated code reads on the claimed user interface component configured to render an IDE interface and to receive design input.;
a project generation component configured to generate system project data based on the design input, the system project data comprising at least an industrial control program (Para [0005]-[0006], generating, using a trained machine-learning model and based on the docstring, one or more computer code samples configured to produce respective candidate results … causing each of the one or more computer code samples to be executed) Examiner Comments: Chen's generation of executable computer code samples from a natural language docstring reads on the claimed project generation component that produces program data including a control program based on the design input.;
a generative artificial intelligence (AI) component configured to formulate and send a prompt to a generative AI model in response to receipt of a natural language input, submitted via the IDE interface, comprising at least one of a request to generate a portion of the industrial system project or a question about the industrial system project (Para [0005], receiving a docstring representing natural language text specifying a digital programming result; generating, using a trained machine-learning model and based on the docstring, one or more computer code samples) Examiner Comments: Chen's receipt of a natural language docstring and its supply to a trained machine-learning model to generate code reads on the claimed generative AI component formulating and sending a prompt to a generative AI model in response to a natural language request.;
wherein the generative AI component formulates the prompt to obtain a response from the generative AI model comprising information used by the generative AI component to at least one of generate the portion of [the industrial system project] or generate a natural language answer to the question about [the industrial system project] (Para [0015], the trained machine learning model may be developed by applying training data comprising annotated computer code to a precursor model comprising a machine learning model trained on natural language prompts) Examiner Comments: Chen's machine-learning model returns computer code samples in response to natural language prompts, which reads on the claimed AI-model response containing information used by the generative AI component to generate the portion of the project.;
the generative AI component formulates the prompt based on analysis of the natural language input and industry-specific information encoded in the one or more custom models (Para [0012], the trained machine learning model may be fine-tuned based on at least one of a public web source or software repository … fine-tuned based on a set of training problems constructed from examples within the at least one public web source or software repository) Examiner Comments: Chen's fine-tuning of the machine-learning model on domain-specific training data drawn from software repositories reads on industry-specific information encoded in one or more custom models that is used to formulate the prompt.
Chen did not specifically teach
the industrial system project;
the industrial control program that, in response to execution on an industrial controller, causes the industrial controller to monitor and control an industrial automation system in accordance with the industrial control program.
However, Canedo (US 2022/0276628 A1) teaches
the industrial system project and an industrial control program that, in response to execution on an industrial controller, causes the industrial controller to monitor and control an industrial automation system in accordance with the industrial control program (Abstract, Applications of artificial intelligence (AI) in industrial automation have focused mainly on the runtime phase due to the availability of large volumes of data from sensors. Methods, systems, and apparatus that can use machine learning or artificial intelligence (AI) to complete automation engineering tasks are described herein.) Examiner Comments: Canedo expressly directs machine-learning/AI techniques to the industrial automation engineering domain and to the completion of automation engineering tasks, which reads on applying an AI-based code-generation system to the specific context of industrial control programs executing on industrial controllers to monitor and control industrial automation systems..
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chen's teaching into Canedo's in order to apply the well-known benefits of generative-AI-assisted code authoring faster development, reduced syntax errors, and accessibility for non-expert programmers to the domain-specific task of authoring industrial control code, thereby accelerating industrial automation engineering and reducing the expertise barrier for developing control programs, consistent with Canedo's stated goal of using AI to complete automation engineering tasks.
Regarding Claim 2, Chen and Canedo teach
The system of Claim 1.
Chen further teaches
wherein the industry-specific information encoded in the one or more custom models comprises at least one of libraries of control program instructions, libraries of add-on instructions, libraries of control program samples, libraries of user-defined data types (UDTs), libraries of product manuals for industrial devices or software platforms, specification data for industrial devices, training data, information defining industrial standards, design standards for respective different types of industrial control applications, design standards for respective different industrial verticals, knowledge of industrial best practices, control design rules, or industrial domain-specific language (DSL) syntax data (Para [0069], the trained machine learning model may be fine-tuned based on … packages (e.g., software components such as applications, libraries, drivers, and plugins), metadata (e.g., information associated with each package, such as version numbers, descriptions, dependencies, and other data relating to a particular software component), or text (e.g., blog entries, comments, descriptions) … stored in a software repository) Examiner Comments: Chen's fine-tuning training data includes libraries of software components and associated metadata/text, which reads on at least the claimed libraries of control program instructions, libraries of control program samples, and training data recited in the Markush-style list..
Regarding Claim 3, Chen and Canedo teach
The system of Claim 1.
Chen further teaches
wherein the generative AI component is further configured to perform contextual analysis on the industrial system project to determine at least one of a type of industrial application or an industrial vertical for which the industrial system project is being developed, and to generate at least one of the prompt, the portion of the industrial system project, or the answers to questions about the industrial system project based on a result of the contextual analysis (Para [0003], conventional methods and systems lack a capability to understand the context of programming tasks in order to generate code that is tailored to a given context or environment) Examiner Comments: Chen expressly identifies context-aware code generation as a technical improvement of the disclosed system, reading on the claimed contextual analysis performed by the generative AI component to tailor output to the project's application type or vertical.
Regarding Claim 4, Chen and Canedo teach
The system of Claim 1.
Chen further teaches
wherein the question about the industrial system project comprises a request for a recommended design tool that is supported by the system and that is capable of performing a design function described by the natural language input, and the answer to the question comprises a natural language description of the recommended design tool (Para [0078], intelligent coding assistants (e.g., building intelligent coding assistants that can help developers perform complex coding tasks; Para [0047], Practical application examples of the present disclosure may include converting comments into computer code, providing predictive code suggestions based on user comments, auto-filling computer code (e.g., repetitive code, routine coding tasks), suggesting alternative code based on user comments, and identifying redundant or unnecessary code to produce faster and more efficient code which requires less memory and resources) Examiner Comments: Chen's intelligent coding assistant that responds to a user's natural language comments/questions with recommended code and tool suggestions reads on the claimed question requesting a recommended design tool and the natural language description of the recommended tool..
Regarding Claim 5, Chen and Canedo teach
The system of Claim 1.
Chen further teaches
wherein the user interface component is configured to, in response to receipt of a user interaction at a location on a workspace canvas area of the IDE interface in which the industrial control program is being displayed, render an in-line chat window as an overlay on the workspace canvas area, and receive the natural language input via interaction with the in-line chat window (Para [0078], intelligent coding assistants that can help developers perform complex coding tasks … suggesting code completions for developers as they write code; e.g., if a developer starts typing a line of code and then pauses, code snippets may be suggested to complete the task) Examiner Comments: Chen's intelligent coding assistant that provides in-context, in-line code suggestions to a developer at the point of code authoring reads on the claimed in-line chat window rendered as an overlay on the workspace canvas area at the location of user interaction..
Regarding Claim 6, Chen and Canedo teach
The system of Claim 1.
Chen further teaches
wherein the generative AI component is configured to formulate and send the prompt in response to determining that the response from the generative AI model will cause the portion of the industrial system project or the natural language answer to have a probability of satisfying the request or the question represented by the natural language input that exceeds a defined threshold (Para [0012], identifying at least one of the computer code samples may further be based on a mean-log probability, Para [0073] A higher mean-log probability may indicate that the machine learning model is assigning higher probabilities to correct output (e.g., correct computer code samples), thereby suggesting better performance) Examiner Comments: Chen's mean-log-probability-based identification of computer code samples reads on the claimed threshold-based determination that the AI response will satisfy the request with a probability exceeding a defined threshold..
Regarding Claim 7, Chen and Canedo teach
The system of Claim 1.
Chen further teaches
wherein the request to generate the portion of the industrial system project comprises a request to create at least a portion of the industrial control program (Para [0047], generate code snippets, functions, and even entire programs, based on natural language descriptions, in several programming languages) Examiner Comments: Chen's generation of code snippets, functions, or entire programs based on natural language descriptions reads on the claimed request to create a portion of the industrial control program..
Chen did not specifically teach
a controller definition representing an industrial controller, or a binding definition that assigns the industrial control program to the controller definition.
However, Canedo teaches
a controller definition representing an industrial controller, or a binding definition that assigns the industrial control program to the controller definition (Abstract, Methods, systems, and apparatus that can use machine learning or artificial intelligence (AI) to complete automation engineering tasks are described herein.) Examiner Comments: Canedo's AI-based completion of automation engineering tasks encompasses the conventional industrial engineering tasks of defining industrial controllers and binding control programs to those controller definitions, which reads on the claimed controller definition and binding definition.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chen's teaching into Canedo's in order to extend the generative-AI code authoring of Chen to the controller-definition and program-to-controller binding operations of industrial engineering, providing a complete end-to-end AI-assisted workflow from natural-language specification to deployable-and-bound industrial control code.
Regarding Claim 8, Chen and Canedo teach
The system of Claim 1.
Chen further teaches
wherein the generative AI component is configured to formulate the prompt based on analysis of the natural language input and selected subsets of the industry-specific information determined to be relevant to the natural language input (Para [0011], the trained machine learning model may be fine-tuned based on a set of training problems constructed from examples within the at least one public web source or software repository) Examiner Comments: Chen's fine-tuning on selected subsets of training data constructed from relevant examples in the software repository reads on the claimed formulation of the prompt based on selected subsets of the industry-specific information determined to be relevant..
Regarding Claim 9, Chen and Canedo teach
The system of Claim 1.
Chen further teaches
wherein the natural language input comprises a request to add one or more instances of a specified project element to the industrial system project, the specified project element comprising at least one of a control code instruction, an add-on instruction, a data tag, or a device definition, and the generative AI component is configured to, in response to receipt of the natural language input, add the one or more instances of the specified project element to the industrial system project (Para [0047], converting comments into computer code, providing predictive code suggestions based on user comments, auto-filling computer code (e.g., repetitive code, routine coding tasks), suggesting alternative code based on user comments) Examiner Comments: Chen's auto-filling of code based on user comments and addition of code snippets to a project reads on adding one or more instances of a specified project element such as a control code instruction or a data tag to the project in response to the natural language input..
Regarding Claim 10, Chen and Canedo teach
The system of Claim 1.
Chen further teaches
wherein the generative AI component is further configured to, in response to determining, based on analysis of the natural language input, that additional natural language input will yield a response having a probability of satisfying the natural language query that exceeds a threshold, generate a first natural language response that prompts for the additional natural language input and render the first natural language response via the user interface component; and in response to receipt of a natural language answer to the first natural language response, generate a second natural language response to the natural language input based on analysis of the industrial system project, the natural language answer, the industry knowledge encoded in the one or more custom models, and a response prompted from a generative AI model (Para [0003], conventional methods and systems lack an ability to continually learn and improve through interaction with users, feedback, and/or self-generated data) Examiner Comments: Chen expressly identifies continuous, iterative interaction with the user as an improvement of the disclosed system, which reads on the claimed multi-turn dialogue pattern of prompting the user for additional information and then generating a second response based on the user's answer together with the custom-model knowledge..
Regarding Claim 11, Chen (US 2024/0020096 A1) teaches
A method, comprising:
rendering, by a system comprising a processor, an integrated development environment (IDE) interface; receiving, by the system via interaction with the IDE interface, design input that defines aspects of an industrial system project (Para [0057], A user interface, as used herein, may refer to any means through which a user interacts with a software application or computer system. For example, a user interface may include a graphical user interface (GUI), a command line interface, a touch user interface, a voice user interface, or a virtual reality user interface) Examiner Comments: Chen's rendering of a user interface that receives natural language input from a developer reads on the claimed rendering of an IDE interface and receiving of design input.;
generating, by the system, system project data based on the design input, the system project data comprising at least an industrial control program (Para [0081], generating, using a trained machine-learning model and based on the docstring, one or more computer code samples configured to produce respective candidate results) Examiner Comments: Chen's generation of executable computer code samples based on the docstring reads on the claimed generation of system project data including a control program based on the design input.;
generating, by the system, a prompt directed to a generative artificial intelligence (AI) model in response to receiving, via interaction with the IDE interface, a natural language input comprising at least one of a request to generate a portion of the industrial system project or a question about the industrial system project (Para [0005], receiving a docstring representing natural language text specifying a digital programming result; generating, using a trained machine-learning model and based on the docstring, one or more computer code samples) Examiner Comments: Chen's supply of the natural language docstring to the trained machine-learning model to generate code reads on the claimed generation of a prompt directed to a generative AI model in response to a natural language input.;
wherein the generating of the prompt comprises generating the prompt to obtain a response from the generative AI model comprising information used by the system to at least one of generate the portion of the industrial system project or generate a natural language answer to the question, and the generating of the prompt further comprises generating the prompt based on analysis of the natural language input and industry-specific information encoded in one or more custom models (Para [0011], the trained machine learning model may be fine-tuned based on at least one of a public web source or software repository … fine-tuned based on a set of training problems constructed from examples within the at least one public web source or software repository) Examiner Comments: Chen's fine-tuning of the machine-learning model on domain-specific training data drawn from software repositories reads on generating the prompt based on industry-specific information encoded in one or more custom models..
Chen did not specifically teach
the industrial system project
and the industrial control program that, in response to execution on an industrial controller, causes the industrial controller to monitor and control an industrial automation system in accordance with the industrial control program.
However, Canedo (US 2022/0276628 A1) teaches
an industrial system project and an industrial control program that, in response to execution on an industrial controller, causes the industrial controller to monitor and control an industrial automation system in accordance with the industrial control program (Abstract, Applications of artificial intelligence (AI) in industrial automation have focused mainly on the runtime phase due to the availability of large volumes of data from sensors. Methods, systems, and apparatus that can use machine learning or artificial intelligence (AI) to complete automation engineering tasks are described herein.) Examiner Comments: Canedo expressly directs machine-learning/AI techniques to the industrial automation engineering domain, which reads on applying the generative-AI method to an industrial control program that executes on an industrial controller to monitor and control an industrial automation system..
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chen's teaching into Canedo's in order to apply the well-known benefits of generative-AI-assisted code authoring faster development, reduced syntax errors, and accessibility for non-expert programmers to the domain-specific task of authoring industrial control code, thereby accelerating industrial automation engineering and reducing the expertise barrier for developing control programs, consistent with Canedo's stated goal of using AI to complete automation engineering tasks.
Regarding Claim 12, Chen and Canedo teach
The method of Claim 11.
The additional limitation of Claim 12 is rejected for the same reasons set forth with respect to Claim 2.
Regarding Claim 13, Chen and Canedo teach
The method of Claim 11.
The additional limitation of Claim 13 is rejected for the same reasons set forth with respect to Claim 3.
Regarding Claim 14, Chen and Canedo teach
The method of Claim 11.
The additional limitation of Claim 14 is rejected for the same reasons set forth with respect to Claim 4.
Regarding Claim 15, Chen and Canedo teach
The method of Claim 11.
The additional limitation of Claim 15 is rejected for the same reasons set forth with respect to Claim 5.
Regarding Claim 16, Chen and Canedo teach
The method of Claim 11.
The additional limitation of Claim 16 is rejected for the same reasons set forth with respect to Claim 6.
Regarding Claim 17, Chen and Canedo teach
The method of Claim 11.
The additional limitation of Claim 17 is rejected for the same reasons set forth with respect to Claim 7.
Regarding Claim 18, Chen and Canedo teach
The method of Claim 11.
The additional limitation of Claim 18 is rejected for the same reasons set forth with respect to Claim 8.
Regarding Claim 19, is a non-transitory computer-readable medium claim corresponding to the system claim above (Claim 1) and, therefore, is rejected for the same reasons set forth in the rejection of claim 1.
Regarding Claim 20, Chen and Canedo teach
The non-transitory computer-readable medium of Claim 19.
The additional limitation of Claim 20 is rejected for the same reasons set forth with respect to Claim 2.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to AMIR SOLTANZADEH whose telephone number is (571)272-3451. The examiner can normally be reached M-F, 9am - 5pm ET.
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, Wei Mui can be reached at (571) 272-3708. 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.
/AMIR SOLTANZADEH/Examiner, Art Unit 2191
/WEI Y MUI/Supervisory Patent Examiner, Art Unit 2191