DETAILED ACTION
This action is in response to the claims filed November 11, 2025. Claims 1-19 and 21 are pending. Claims 1, 9, and 17 are independent claims. Claims 1-6, 8-14, and 16-19 have been amended. Claim 21 is a new claim. Claim 19 has been cancelled.
The 35 U.S.C. 101 rejection of the claims are maintained in view of Applicant’s arguments and amendments to the claims.
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 § 112(b)
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-19 and 21 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claims 1, 9, and 17 recite the limitation “train a generative artificial intelligence (GenAI) model to understand connections between the diagrams of the architecture components and the descriptions of the architecture components by executing the GenAI model on the software architecture documents”. Specifically in regards to “by executing the GenAI model on the software architecture documents”, it is unclear whether it is means to modify the “train a generative artificial intelligence” or “understand connections between the diagrams…”. For the purposes of examination, “executing the GenAI model” is interpreted to apply to the “understand connections” part of the claim limitation. Claims 2-8, 10-16, 18-19, and 21 are rejected in view of their dependency on claim 1.
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-19 and 21 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Regarding claims 1, 9, and 17, the limitations “convert the diagram into a description of the software architecture” and “identify a missing component from the description of the software architecture and generate a textual description of the missing component” as drafted, are functions that, under its broadest reasonable interpretation, recite the abstract idea of a mental process. The limitation encompasses a human mind carrying out the function through observation, evaluation, judgement, and/or opinion, or even with the aid of pen and paper. Thus, these limitations recite and call under the “Mental Processes” grouping of abstract ideas under Prong 1.
Under Prong 2, this judicial exception is not integrated into a practical application. The additional limitations “An apparatus comprising: a memory configured to store software architecture documents which include text-based descriptions mapped to diagrams of architecture components; and a processor coupled to the memory configured to”, “a computer-readable medium comprising instructions stored therein which when executed by a processor cause a computer to perform”, “train a generative artificial intelligence (GenAI) model to understand connections between the diagrams of the architecture components and the descriptions of the architecture components by executing the GenAI model on the software architecture documents”, “… using a first modality of the GenAI model”, and “…using a second modality of the GenAI model” are recited at a high-level of generality such that they amount to no more than mere instructions to apply the exception using a generic computer, and/or mere computer components. See MPEP 2106.05(f). The limitation “receive an input comprising a diagram of a software architecture implemented by a computing platform” does nothing more than add the insignificant extra solution activity of merely gathering and transmitting data to the judicial exception. See 2106.05(g). The limitation “output the textual description of the missing component on a user interface” does nothing more than add the insignificant post solution activity of merely transmitting data to a user interface and displaying, to the judicial exception. See 2106.05(g). Accordingly, the additional elements do not integrate the recited judicial exception into a practical application and the claim is therefore directed to the judicial exception.
Under Step 2B, the claims to not recite additional elements that re sufficient to amount to significantly more. As discussed above with respect to integration of the abstract idea into a practical application, the limitations “An apparatus comprising: a memory configured to store software architecture documents which include text-based descriptions mapped to diagrams of architecture components; and a processor coupled to the memory configured to”, “a computer-readable medium comprising instructions stored therein which when executed by a processor cause a computer to perform”, “train a generative artificial intelligence (GenAI) model to understand connections between the diagrams of the architecture components and the descriptions of the architecture components by executing the GenAI model on the software architecture documents”, “… using a first modality of the GenAI model”, and “…using a second modality of the GenAI model” amount to no more than mere instructions, or generic computer/computer components to carry out the exception. Mere instructions to apply an exception cannot provide an inventive concept. See MPEP 2106.05(d). For the limitations, “receive an input comprising a diagram of a software architecture implemented by a computing platform” and “output the textual description of the missing component on a user interface”, the courts have identified mere data gathering and transmitting as well-understood, routine, and conventional activity. See MPEP 2106.05(d). Accordingly, the claims are not patent eligible under 35 U.S.C. 101.
Regarding claims 2, 10, and 18, the limitation “wherein the software architecture documents comprise a combination of diagrams and descriptions of a plurality of different software architectures” merely describes the software architecture documents recited in the mental step of claims 1, 9, and 17 and thus are part of the mental step. The same generic computer/component components are recited as in claims 1, 9, and 17 which does not amount to practical application under Prong 2, nor to significantly more under Step 2B.
Regarding claims 3, 11, and 19, the limitation “generate a diagram of the missing component based on…the description of the missing component” is an additional mental step. The limitation “…based on the execution of the GenAI model” merely applies a generic computer component to the abstract idea of generating the description, which does not amount to practical application under Prong 2, nor to significantly more under Step 2B as discussed above. The limitation “display the diagram via the user interface” amounts to nothing more than the insignificant post-solution activity of mere data transmission to a display or user interface, which does not amount to practical application under Prong 2, nor amount to significantly more under Step 2B, as discussed above.
Regarding claims 4 and 12, the limitation “generate the description of the missing component based on…the sequence of prompts and the sequences of responses” is an additional mental step. The limitation “…based on the execution of the GenAI model” merely applies a generic computer component to the abstract idea of generating the description, which does not amount to practical application under Prong 2, nor to significantly more under Step 2B, as discussed above. The limitations “display a sequence of prompts via the user interface” and “receive a sequence of responses to the sequence of prompts via the user interface” amounts to the insignificant extra solution activity of merely gathering and transmitting data, which does not amount to practical application under Prong 2, nor to significantly more under Step 2B, as discussed above.
Regarding claims 5 and 13, the limitation “generate a description of a new software component to add to the software architecture based on the missing component” is an additional mental step. The limitation “display the description of the new software component via the user interface” amounts to nothing more than the insignificant post-solution activity of mere data transmission to a display, which does not amount to practical application under Prong 2, nor amount to significantly more under Step 2B, as discussed above. The same generic computer/computer components are recited as in claims 1 and 9 which do not amount to practical application under Prong 2, nor to significantly more under Step 2B as explained above.
Regarding claims 6 and 14, the limitation “generate source code for the new software component based on the description of the new software component” is an additional mental step. The limitation “output the source code via the user interface” amounts to nothing more than the insignificant post-solution activity of mere data transmission to a display, which does not amount to practical application under Prong 2, nor amount to significantly more under Step 2B, as discussed above. The same generic computer/computer components are recited as in claims 1 and 9 which do not amount to practical application under Prong 2, nor to significantly more under Step 2B as explained above.
Regarding claims 7 and 15, the limitation “generate a description of a modification to an existing software component within the software architecture” is an additional mental step. The limitation “display the description of the modification via the user interface” amounts to nothing more than the insignificant post-solution activity of mere data transmission to a display, which does not amount to practical application under Prong 2, nor amount to significantly more under Step 2B, as discussed above. The same generic computer/computer components are recited as in claims 1 and 9 which do not amount to practical application under Prong 2, nor to significantly more under Step 2B as explained above.
Regarding claims 8 and 16, the limitation “is configured to convert text within the digital document into an encoding prior to inputting the encoded text into the GenAI model” is an additional mental step. The limitation “wherein the input comprises a digital document that includes the diagram” merely further describes the “input” of the data gathering and transmission step of claims 1 and 9, and thus amounts to no more than merely gathering and transmitting data, which does not amount to practical application under Prong 2, nor amount to significantly more under Step 2B, as discussed above. The same generic computer/computer components are recited as in claims 1 and 9 which do not amount to practical application under Prong 2, nor to significantly more under Step 2B as explained above.
Regarding claim 21, no additional mental steps are recited. The limitation “the processor is configured to capture runtime data of the architecture components operating on the computing platform” amounts to the insignificant extra solution activity of merely gathering and transmitting data, which does not amount to practical application under Prong 2, nor to significantly more under Step 2B, as discussed above. The limitation “further train the GenAI model to understand the connections by executing the GenAI model on the runtime data of the architecture components” merely applies a generic computer component to the abstract idea of understanding component connections based on runtime data of architecture components, which does not amount to practical application under Prong 2, nor to significantly more under Step 2B, as discussed above
Claims 17-19 are rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter.
Claim 17 is directed to “a computer-readable medium”. However, it is noted that the specification does not provide an explicit definition of what constitutes a “a computer-readable medium”. The broadest reasonable interpretation of a claim drawn to a “computer-readable medium” typically covers forms of non-transitory tangible media and transitory propagating signals per se in view of the ordinary and customary meaning of “computer-readable medium”, particularly when the specification is silent. See MPEP § 2111.01. When the broadest reasonable interpretation of a claim covers a signal per se, the claim must be rejected under 35 US.C. § 101 as covering non-statutory subject matter. See In re Nuijten, 500 F.3d 1346, 1356-57 (Fed. Cir. 2007) (transitory embodiments are not directed to statutory subject matter) and Interim Examination Instructions for Evaluating Subject Matter Eligibility Under 35 U.S.C. § 101, Aug. 24, 2009; p. 2. Therefore, the claimed “computer-readable medium” is ineligible subject matter under § 101. Applicant is advised to amend the claim to recite “non-transitory computer-readable storage medium” in order to overcome the 35 U.S.C. § 101 rejection.
Claims 18 and 19 depend on Claim 17 and do not cure the deficiency of Claim 17. Therefore, Claims 18 and 19 are rejected for the same reason set forth in the rejection of Claim 17.
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 1-5, 7, 9-13, 15, 17-19, and 21 are rejected under 35 U.S.C. 103 as being unpatentable over US 20230161561 A1 (hereinafter “Ghosh”), further in view of US 12321700 B2 (hereinafter “Akbari”).
Regarding claim 1, Ghosh discloses:
An apparatus comprising:
a memory configured to store software architecture documents which include text-based descriptions mapped to diagrams of architecture components; and a processor coupled to the memory configured to (Fig. 1, Fig. 2):
- train a generative artificial intelligence (GenAI) model to understand connections between the diagrams of the architecture components and the descriptions of the architecture components by executing the GenAI model on the software architecture documents (Paragraph [0017], “The illustrative embodiments provide mechanisms for using artificial intelligence (AI) and machine learning (ML) to analyze various software requirements and types and thereby recommend in real time placement of components, connection types, data flow and pipeline sequences, and steps and sequences during creation of digital architectural diagram images aligning with software requirements so that the architectural diagram images are created in an optimized manner. The illustrative embodiments also provide mechanisms for validating software architectural diagrams and generating alerts or notifications when discrepancies or breaches are detected in the blocks or components of various architectural diagrams and models based on security, functionality, firewall, connection types, and services”; Paragraph [0062], “Smart architectural diagram recommendation engine 350 creates a corpus of digital diagram images and their correlated standard software requirements. The corpus 380 is a historical data store comprising multifarious architectural diagram images, their types, and their corresponding software requirement artifacts. Smart architectural diagram recommendation engine 350 is an evolving system and thus the utility of corpus generation is important to re-learn and/or evolve the machine learning model based on real time security incidents, accessibility, or software in work” [train a generative artificial intelligence (GenAI) model to understand connections between the diagrams of the architecture components and the descriptions of the architecture components by executing the GenAI model on the software architecture documents]) [Examiner’s remarks: Ghosh discloses an AI model which may be trained to understand the connection between software requirements (descriptions of the software components) and architecture diagrams (software architecture diagrams).];
- receive an input comprising a diagram of a software architecture implemented by a computing platform (Paragraph [0052], “A designer uses drawing tools 310 to generate digital architectural diagram image 315. Drawing tools 310 may include line drawing and painting software, vector-based graphics programs, computer-aided design (CAD) software, presentation software, and the like. In one example embodiment, drawing tools 310 comprise a special-purpose software architectural diagram authoring environment including premade drawing shapes and specialized tools”; Paragraph [0053], “Smart architectural diagram recommendation engine 350 analyzes architectural diagram image 315 with reference to software requirements 320 and using cognitive services 330 [receive an input comprising a diagram of a software architecture implemented by a computing platform]”) [Examiner’s remarks: The recommendation engine may receive as input, a software architecture diagram for analysis.];
- convert the diagram into a description of the software architecture using a first modality of the [engine] (Paragraph [0004], “The method comprises analyzing, by the architectural diagram recommendation engine, a software requirements specification document using natural language processing to identify functional requirements and security requirements. The method further comprises analyzing, by the architectural diagram recommendation engine, a digital software architectural diagram image to identify functional components [convert the diagram into a description of the software architecture using a first modality of the [engine]]”) [Examiner’s remarks: The recommendation engine may be used to perform analysis on a diagram to retrieve functional components which is a description of the functional portions of the diagram.];
- identify a missing component from the description of the software architecture and generate a textual description of the missing component, using a second modality of the [engine] (Paragraph [0004], “The method further comprises identifying, by the architectural diagram recommendation engine, one or more discrepancies between the functional components of the digital software architectural diagram image and the functional requirements or security requirements. The method further comprises generating, by the architectural diagram recommendation engine, an alert concerning the one or more discrepancies. The method further comprises presenting, by the architectural diagram recommendation engine, the alert in association with the digital software architectural diagram image”; Paragraph [0056], “The smart architectural diagram recommendation engine 350 derives a checklist of software elements, user roles, etc., based on analysis of the software requirements 320. The smart architectural diagram recommendation engine 350 generates a relationship graph to represent relationships between roles, software components, services, and software requirements. Also, the smart architectural diagram recommendation engine 350 uses rules, classifiers, and neural networks to analyze the software requirements 320 and the software architectural diagram image 315, to detect discrepancies, and to generate recommendations. More particularly, the smart architectural diagram recommendation engine 350 analyzes statement of work, statement of purpose, technical requirements, functional and non-functional requirements, accessibility, security requirements, use case, end users, roles, standard and customized service level agreements, etc. in software requirements 320 and compares the results of the analysis to the software components, user roles, services, etc. detected in architectural diagram image 315”; Paragraph [0068], “With reference to FIG. 4A, the smart architectural diagram recommendation engine displays 400 presents digital software architectural diagram image 401. In the depicted example, the smart architectural diagram recommendation engine presents an alert 411 and a recommendation 412. The alert 411 notifies the user that the software architectural diagram image 401 is missing a firewall between the external network and the internal network. The smart architectural diagram recommendation engine also recommends including a load balancer” [identify a missing component from the description of the software architecture and generate a textual description of the missing component, using a second modality of the [engine]]) [Examiner’s remarks: The engine compares the previous description (identified functional components of the diagram) with requirements of the software to retrieve some missing component (e.g. a firewall) and generates an alert of the missing part (a textual description).]; and
- output the textual description of the missing component on a user interface (Paragraph [0061], “Smart architectural diagram recommendation engine 350 generates alerts when a discrepancy or breach of security is detected. Smart architectural diagram recommendation engine 350 then outputs an annotated architectural diagram image 355 with recommendations… Smart architectural diagram recommendation engine 350 thereby suggests the correlated diagram element/component in an architectural diagram image”; Paragraph [0068], “With reference to FIG. 4A, the smart architectural diagram recommendation engine displays 400 presents digital software architectural diagram image 401. In the depicted example, the smart architectural diagram recommendation engine presents an alert 411 and a recommendation 412. The alert 411 notifies the user that the software architectural diagram image 401 is missing a firewall between the external network and the internal network. The smart architectural diagram recommendation engine also recommends including a load balancer”) [Examiner’s remarks: The engine outputs an alert that there is a missing firewall, which is a textual description of a missing component.].
Ghosh discloses use of different modalities of an engine. Ghosh does not explicitly disclose using different modalities of the GenAI model. However, Akbari discloses:
- the GenAI model (Column 2, line 66 – Column 3, line 8, “Methods and systems are provided for joint learning of NL and NA and their relations. Example embodiments may provide a generative model trained with a bi-modal understanding of NL and NA for generative purposes, including NA answer generation in response to NL questions, text-based NA generation, architecture-based NL generation (e.g., NA captioning), NA translation, multi-modal NA translation assisted by NL information, NA completion, NA repair, and/or multi-modal NA completion or repair assisted by NL information”) [Examiner’s Remarks: Akbari discloses a Generative AI model with bi-modal understanding of both Natural language descriptions of architecture and neural architecture which may be regarded as a type of software architecture. The described bimodal model is able to perform text-based NA generation (generating architecture based on natural language) and architecture-based NL generation (generating a natural language description based on architecture) which corresponds to the two modes as described in claim 1. Therefore, one of ordinary skill in the art may use the multi-modal AI model of Akbari to complete the tasks described in Ghosh.].
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Akbari into the teachings of Ghosh to include “the GenAI model”. As stated in Akbari, “Some efforts have been made to address this problem by using multi-modal learning, wherein a model is configured and trained to jointly learn from multiple modalities of input data, such as two or more of: audio, video, image, text, etc. These approaches seek to impart to the model a better understanding of various senses (i.e. sensory modalities) in information processing. Some such approaches provide the possibility of supplying a missing modality based on the observed ones (e.g., using a trained model to generate captions or textual description for a given input image)” (Column 1, lines 43-52). Multi-modal AI models allow users to train a model with more context, and to use the model for more than one task, thereby decreasing the number of models needed for a task. Training a model on both software requirements and architecture gives the model more context for future tasks. Therefore, it would be obvious to one of ordinary skill in the art to combine software architecture analysis and generation with use of a multi-modal AI.
Regarding claim 2, the rejection of claim 1 is incorporated; and Ghosh further discloses:
wherein the software architecture documents comprise a combination of diagrams and descriptions of a plurality of different software architectures (Paragraph [0062], “Smart architectural diagram recommendation engine 350 creates a corpus of digital diagram images and their correlated standard software requirements. The corpus 380 is a historical data store comprising multifarious architectural diagram images, their types, and their corresponding software requirement artifacts [wherein the software architecture documents comprise a combination of diagrams and descriptions of a plurality of different software architectures]”).
Regarding claim 3, the rejection of claim 1 is incorporated; and Ghosh further discloses:
wherein the processor is further configured to generate a diagram of the missing component based on execution of the GenAI model on the description of the missing component, and display the diagram via the user interface (Paragraph [0069], “Turning to FIG. 4B, in response to the user selecting alert 411, the smart architectural diagram recommendation engine presents a recommended firewall position 420. Then, in FIG. 4C, the smart architectural diagram recommendation engine places firewall 425 in the software architectural diagram image in response to the user accepting the recommended position 420. Also, in response to the user selecting recommendation 412, the smart architectural diagram recommendation engine presents a recommended load balancer position 430. Turning to FIG. 4D, in response to the user accepting the recommended load balancer position, the smart architectural diagram recommendation engine places load balancer 435 in the software architectural diagram image”) [Examiner’s remarks: The diagram of the missing component (i.e. firewall, load balancer) is generated within the software architecture diagram.].
Regarding claim 4, the rejection of claim 1 is incorporated; and Ghosh further discloses:
wherein the processor is configured to display a sequence of prompts on the user interface, receive a sequence of responses to the sequence of prompts via the user interface, respectively, and generate the description of the missing component based on execution of the GenAI model on the sequence of prompts and the sequence of responses (Paragraph [0019], “The smart recommendation engine of the illustrative embodiments may apply to any field or technology where AI and ML techniques can be used to ingest and understand textual design specifications and to recognize and classify design elements in a digital image”; Paragraph [0069], “Turning to FIG. 4B, in response to the user selecting alert 411, the smart architectural diagram recommendation engine presents a recommended firewall position 420. Then, in FIG. 4C, the smart architectural diagram recommendation engine places firewall 425 in the software architectural diagram image in response to the user accepting the recommended position 420. Also, in response to the user selecting recommendation 412, the smart architectural diagram recommendation engine presents a recommended load balancer position 430. Turning to FIG. 4D, in response to the user accepting the recommended load balancer position, the smart architectural diagram recommendation engine places load balancer 435 in the software architectural diagram image”) [Examiner’s remarks: A sequence of prompts (alerts followed by acceptance of a recommendation) is received and used to generate the description of the missing component.].
Regarding claim 5, the rejection of claim 1 is incorporated; and Ghosh further discloses:
- wherein the processor is further configured to generate a description of a new software component to add to the software architecture based on the missing component, and display the description of the new software component via the user interface (Paragraph [0069], “Turning to FIG. 4B, in response to the user selecting alert 411, the smart architectural diagram recommendation engine presents a recommended firewall position 420. Then, in FIG. 4C, the smart architectural diagram recommendation engine places firewall 425 in the software architectural diagram image in response to the user accepting the recommended position 420. Also, in response to the user selecting recommendation 412, the smart architectural diagram recommendation engine presents a recommended load balancer position 430. Turning to FIG. 4D, in response to the user accepting the recommended load balancer position, the smart architectural diagram recommendation engine places load balancer 435 in the software architectural diagram image”) [Examiner’s remarks: A description of the missing component (an alert) is generated for the missing component (firewall) and displayed to the user interface.].
Regarding claim 7, the rejection of claim 1 is incorporated; and Ghosh further discloses:
wherein the processor is configured to generate a description of a modification to an existing software component within the software architecture, and display the description of the modification via the user interface (Paragraph [0004], “The method further comprises presenting, by the architectural diagram recommendation engine, the alert in association with the digital software architectural diagram image”; Paragraph [0080], “The system also recommends limits for each of the components (user profiles, services, firewall, connections, configuration, etc.) during the creation of digital architectural diagram images”) [Examiner’s remarks: The processor generates a description of the modification (alerts pertaining to limits on an existing component) and displays (presents) the alerts to user in relation to the architectural diagram image.].
Regarding claim 21, the rejection of claim 1 is incorporated; and Ghosh further discloses:
- wherein the processor is configured to capture runtime data of the architecture components operating on the computing platform, and further train the GenAI model to understand the connections by executing the GenAI model on the runtime data of the architecture components (Paragraph [0062], “Smart architectural diagram recommendation engine 350 is an evolving system and thus the utility of corpus generation is important to re-learn and/or evolve the machine learning model based on real time security incidents, accessibility, or software in work”) [Examiner’s remarks: The machine learning model is able to train on collected runtime data (real time security incidents) and train the model to understand architecture components through the collected data.].
Claims 9-13 and 15 are method claims corresponding to the apparatus claims hereinabove (claims 1-5 and 7 respectively). Therefore, claims 9-13 and 15 are rejected for the same reasons as set forth in the rejections of claims 1-5 and 7 respectively.
Claims 17-19 are computer program product claims corresponding to the apparatus claims hereinabove (claims 1-3). Therefore, claims 17-19 are rejected for the same reasons as set forth in the rejections of claims 1-3 respectively.
Claims 6 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over US 20230161561 A1 (hereinafter “Ghosh”), in view of US 12321700 B2 (hereinafter “Akbari”), further in view of US 20230251833 A1 (hereinafter “Kaitha”).
Regarding claim 6, the rejection of claim 5 is incorporated; and the combination of Ghosh and Akbari does not explicitly disclose:
wherein the processor is further configured to generate source code for the new software component based on the description of the new software component, and display the source code via the user interface.
However, Kaitha discloses:
wherein the processor is further configured to generate source code for the new software component based on the description of the new software component, and output the source code via the user interface (Paragraph [0035], “In a variety of embodiments, the AI module 104 can perform the search by comparing the parameters or descriptions associated with the software templates 138 to the application specific inputs 106 to determine if any of the software templates 138 exist that perform the same functions required as indicated by the application specific inputs 106. For example, this can be done by parsing a textual description of the software templates 138, as indicated by the descriptions or parameters, and determining, based on using a natural language processing (NLP) method, what functions the software templates 138 perform. If a software template is found matching the application specific inputs 106, the software template can be used to generate the source code 102”; Paragraph [0069], “The user interface 412 may present information generated by the system 100”) [Examiner’s remarks: Kaitha discloses generating a component from a description of a component. One understands that this may be combined with the description generated in Ghosh to generate a component for a software architecture using GenAI generated descriptions of a component.].
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Kaitha into the combined teachings of Ghosh and Akbari to include “wherein the processor is further configured to generate source code for the new software component based on the description of the new software component, and output the source code via the user interface”. As stated in Kaitha, “These rules and constraints include, at least, application specific requirements and corporate rules and/or guidelines for developing software code. These rules and/or guidelines should remain consistent across applications” (Paragraph [0003]). Automatic code generation based on existing standards allows for faster code development, with less man hours spent on generating generic code. Display allows developers to confirm that the computer generated code is correct before deploying. Therefore, it would be obvious to one or ordinary skill in the art to combine descriptions of software components with automated code generation.
Claim 14 is a method claim corresponding to the apparatus claim hereinabove (claim 6). Therefore, claim 14 is rejected for the same reasons as set forth in the rejection of claim 6.
Claims 8 and 16 are rejected under 35 U.S.C. 103 as being unpatentable over US 20230161561 A1 (hereinafter “Ghosh”), in view of US 12321700 B2 (hereinafter “Akbari”), further in view of WO2020058120 A1 (hereinafter “Han”).
Regarding claim 8, the rejection of claim 1 is incorporated; and Ghosh further discloses:
wherein the input comprises a digital document that includes the diagram, and the processor is configured to convert text within the digital document …into the GenAI model (Paragraphs [0071]-[0073]; “The smart architectural diagram recommendation engine performs text and document analytics on the software requirements documents (block 502). The smart architectural diagram recommendation engine may use natural language processing (NLP), optical character recognition (OCR), parsers, neural networks, etc. … The smart architectural diagram recommendation engine then performs image analytics (block 503). In one embodiment, the image analysis may use neural networks, OCR, and the like. The neural networks may include CNN, LSTM, artificial neural network (ANN), R-YOLO, or the like. Next, the smart architectural diagram recommendation engine classifies the diagram image and document elements, templates, components, and corresponding labels and meta content (block 504). The smart architectural diagram recommendation engine performs relationship graph modeling between diagram elements, components, and spatial regions (block 505). Then, the smart architectural diagram recommendation engine generates an architectural diagram machine learning (ML) model (block 506)”) [Examiner’s remarks: The input software requirements documents includes diagrams which is parsed using NLP and other models to place the text in a format which may be input into the GenAI model for analysis.].
The combination of Ghosh and Akbari does not explicitly disclose:
…into an encoding prior to inputting the encoded text….
However, Han discloses
…into an encoding prior to inputting the encoded text (Page 9, “Specifically the architecture design document is divided into a sentence sent and a word set…Then, the word is converted into a vector by a one-hot encoding method…In Fig. 2, on an input layer 202, the word set is traversed. For each word (namely the target word) in the word set, one-hot encoded vectors of C context words of the word are used as inputs…”) [Examiner’s remarks: Han discloses encoding text in a software architecture diagram to place the text in a format that is usable in a machine learning model. Ghosh discloses preprocessing text to be placed in the GenAI model. The encoding process may be used in place of the text preprocessing as the method for processing text for a machine learning model.]…
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teachings of Han into the combined teachings of Ghosh and Akbari to include “…into an encoding prior to inputting the encoded text…”. As stated in Han, “After an input of the entity extraction model is generated, the input is converted into word embedding (distributed representation of words), namely a digital vector representing a word. The meaning of the word is inferred from the context of the word (C represents the number of words before and after a target word), so that there is a hypothesis that words having similar contexts should have similar meanings” (Page 9). Generating word embeddings for text allows words to be entered into the genAI using their contextual meaning in the form of vectors, whereas normal text does not have inherent meaning to a machine learning algorithm. The embedding may then be used by the model to generate the required result. Therefore, it would be obvious to one or ordinary skill in the art to combine textual descriptions of software architecture with word embeddings.
Claim 16 is a method claim corresponding to the apparatus claim hereinabove (claim 8). Therefore, claim 16 is rejected for the same reasons as set forth in the rejection of claim 8.
Response to Arguments
Applicant’s arguments with respect to claims 1-20 under 35 U.S.C. 103 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
In the Remarks, Applicant Argues:
MPEP 2106.04(II) notes the claim should be considered "as a whole" when performing the analysis under Prong I of the Step 2A analysis. Applicant respectfully submits that when Claim 1 is viewed "as a whole", Claim 1 is not directed to an abstract concept, but rather a specific improvement in computer technology. The invention trains a generative artificial intelligence model to understand explicit mappings between software architecture diagrams and corresponding textual descriptions, and then applies that trained model to generate descriptive content and identify missing components in a given architecture diagram. This is not a mental process or a mere idea of organizing human activity.
Rather, the process recited in Claim 1 includes specialized training of a GenAI model on a set of software architecture documents and the technical application of converting multi-modal diagrammatic input into textual architectural output. This improvement enables a computing platform to automatically bridge diagrammatic and textual modalities. Furthermore, the model then identifies a missing component of the software architecture which is something that is only possible when the model is trained on other software architectures.
The claims are therefore directed to a technological solution to a technological problem by identifying incomplete or ambiguous architecture diagrams that can be completed using trained AI systems. Such a capability improves the functioning of the computer itself, by enabling automated diagram-to-text conversion and missing-component identification that is beyond conventional manual methods. As the USPTO's guidance acknowledges, inventions that improve how computers function, including how they process and generate data across modalities, are not abstract ideas. Thus, the claims satisfy Prong 2A by being directed to a specific technological improvement, rather than to an abstract concept.
Thus, Applicant contends that the inquiry into the abstraction of Applicant's claims should end at this first prong as Applicant's claims do not fall into any of the enumerated groupings and therefore cannot be abstract.
Examiner’s Response:
Examiner respectfully disagrees. In regards to the argument that Claim 1 viewed “as a whole” is not directed to an abstract concept, Applicant describes the invention to “trains a generative artificial intelligence model to understand explicit mappings between software architecture diagrams and corresponding textual descriptions, and then applies that trained model to generate descriptive content and identify missing components in a given architecture diagram”. Understanding explicit mappings between diagrams and corresponding descriptions, generating descriptive content, and identifying missing components are all steps with may be performed mentally. The use of “training a generative artificial intelligence model” and using a model is not addressed under Prong 1 as being mental, but rather under Prong 2 and Step 2B for merely applying a generic computer/computer component to a judicial exception, in this case, the mental steps.
In regards to the argument that Claim 1 recites specialized training of a GenAI model, Examiner respectfully disagrees. While claim 1 does recite training of a GenAI model using specified data, it does not specify specialized training, but merely recites generally that training should be done. Therefore, the training step is considered to be mere application of a generic computer/computer component, and not an abstract idea, which does not amount to practical application under Prong 2, nor to significantly more under Step 2B. See MPEP 2106.05(f).
In regards to the argument that the claims are directed to a technological solution to a technological problem, Examiner respectfully disagrees that this overcomes the rejection of claim 1 as an abstract idea. While inventions that improve how computers function may amount to practical application under Prong 2, under Prong 1, an abstract idea that improves computer function is still considered an abstract idea. Therefore, the rejection of claim 1 as an abstract idea under 35 U.S.C. 101 is proper, and maintained.
In the Remarks, Applicant Argues:
"A claim is not 'directed to' a judicial exception, and thus is patent eligible, if the claim as a whole integrates the recited judicial exception into a practical application of that exception. A claim that integrates a judicial exception into a practical application will apply, rely on, or use the judicial exception in a manner that imposes a meaningful limit on the judicial exception, such that the claim is more than a drafting effort designed to monopolize the judicial exception." Page 13 of the 2019 Guidance.
Applicant notes that Applicant's claims impose meaningful, practical, and succinct operations that use a memory and processor to train and apply a generative AI model that operates directly on stored software architecture documents, receives a diagram as input, and generates descriptive and corrective textual output. These steps are not performed in the abstract but are tied to a particular machine including a processor executing the trained GenAI model, and the result in a concrete outcome the describes the missing software architecture component. This constitutes a meaningful application of any alleged abstract idea in a real-world computing context.
Furthermore, the claims do not monopolize the general idea of "analyzing diagrams" or "generating descriptions." Instead, they narrowly focus on a defined process that uses generative AI to create accurate mappings between diagrams and text of "software architecture", and then apply those mappings to identify and describe missing components in the software architecture. This practical application is rooted in computer technology and provides a tangible tool for developers. Furthermore, the claims describe a process for solving the specific problem of incomplete or under-specified architecture diagrams which is a practical and concrete use case, thereby satisfying Prong 2B.
In the recent decision of Ex parte Desjardins, the Appeals Review Panel (ARP)
overturned a rejection under Section 101. In that case, Claim 1 included the limitation of "adjust the first values of the plurality of parameters to optimize performance of the machine learning model on the second machine learning task while protecting performance of the machine learning model on the first machine learning task." In overturning the rejection, the ARP pointed to the Federal Circuit's decision in Enfish, which observes that many advancements in computer technology, "by their very nature, may not be defined by particular physical features but rather by logical structures and processes." Enfish, LLC v. Microsoft Corp., 822 F.3d 1327, 1339 (Fed. Cir. 2016).
In the present application, Claim 1 recites use of a "first modality" of the GenAI model to convert a diagram into a description, and a "second modality" of the GenAI model to identify a missing component from the diagram based on the description. Therefore, just as in the case of Ex parte Desjardins, the first modality optimizes performances of the GenAI model for the second machine learning task (second modality of the GenAI model) by converting the input diagram into text. This optimizes the ability of the second modality to identify the missing description from the software architecture which is now in text form, rather than image form.
Thus, Applicant's numerous claim limitations would clearly integrate an alleged abstract idea into a practical application that does not monopolize a judicial exception and are thereby patent eligible because the practical application of Applicant's claims allow for a real-world benefit through computing systems.
Examiner’s Response:
Examiner respectfully disagrees. Factors to determine whether the claim is designed to monopolize the judicial exception or whether it has been integrated into a practical application is described under subsection I of MPEP 2106.04(d). In regards to the argument that the claim does not monopolize the judicial exception, the MPEP considers whether the claim merely recites “the words “apply it” (or an equivalent) with the judicial exception, or merely including instructions to implement an abstract idea on a computer, or merely using a computer as a tool to perform an abstract idea”. Applicant’s description of the invention merely applies use of generic computer components (processors, memory, GenAI model) to perform the abstract ideas of understanding, identifying, and describing parts of a software architecture diagram. The computer components are recited at a high level of generality, such that they amount to merely applying computer components to the judicial exception.
In regards to Applicant’s arguments that the limitations of claim 1 optimizes the task using a “first modality” and “second modality” of the GenAI model, the first and second modalities of the GenAI model are recited at a high level of generality such that they amount to mere application of a generic computer component, which does not amount to practical application under Prong 2, nor to significantly more under Step 2B. See MPEP 2106.05(f). The claim does not recite optimization using the two modalities, but rather merely asserts their use. Therefore, this does not integrate the judicial exception into a practical application, and the rejection under 35 U.S.C. 101 is maintained.
In the Remarks, Applicant Argues:
While applicant submits that the claimed invention is not directed to an abstract idea as discussed above, should the Office nonetheless maintain its position that the claims are directed to an abstract idea, Applicant respectfully submits that under the second step (2B) of Alice the ordered combination of elements in the independent claims are sufficient to ensure that the claim amounts to significantly more than the judicial exception.
Examiner’s Response:
Examiner respectfully disagrees. Applicant is directed to the above 35 U.S.C. 101 rejection for an analysis of the current claim 1 under Step 2B of Alice.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to VIVIAN WEIJIA DUAN whose telephone number is (703)756-5442. The examiner can normally be reached Monday-Friday 8:30AM-5PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Wei Y 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.
/V.W.D./Examiner, Art Unit 2191 /WEI Y MUI/Supervisory Patent Examiner, Art Unit 2191