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 .
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 04/14/2026 has been entered.
Response to Arguments
Applicant's arguments filed 08/26/2025 have been fully considered and they are partially persuasive.
Regarding applicant’s remarks directed to the rejection of claims under 35 USC § 103, the arguments are directed to newly amended limitations that were not previously examined by the examiner. Therefore, applicants arguments are rendered moot. The examiner refers to the rejection under 35 USC § 103 in the current office action for more details.
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.
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-2, 4-5, 10-11, 13-14, and 19-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Pub. No. US20210097444A1 Bansal et al. (“Bansal”) in view of Ono, Jorge Piazentin, et al. "Pipelineprofiler: A visual analytics tool for the exploration of automl pipelines." (“Ono”) in further view of U.S. Pub. No. US20220058334A1 Joshi et al. (“Joshi”).
In regards to claim 1,
Bansal teaches A method comprising: obtaining a trained machine learning (ML) pipeline skeleton model configured to predict a plurality of functional blocks to use within a new ML pipeline based on meta-features of a dataset associated with the new ML pipeline;
(Bansal, [0018], “The AMPGS system can generate a single trained ML pipeline [obtaining a trained machine learning (ML) pipeline skeleton model] that can be deployed to execute real time or batch inference, and in some embodiments allows users to have visibility into the details of the resulting ML model, the details of the training job leading to the ML model, the parameters and operations of the ML pipeline, and optionally some or all of these details of other ML pipelines that were explored yet ultimately determined to be less-performant [to predict a plurality of functional blocks within a new ML pipeline]. In some embodiments the AMPGS system also produces feature processing code and interactive code exploration “notebooks” that educate users regarding the components of the ML pipeline(s), providing explanation of the steps taken by the system.”)
(Bansal, [0047], “The preliminary operations may also include generating metadata describing the dataset [based on meta-features of a dataset associated with the new ML pipeline] (e.g., a total number of rows, a number of columns, data types of the columns, value distributions and other statistics based on values of the columns) that can be used as part of later processing, cleaning the dataset, or the like.”)
Bansal teaches receiving a request to generate the new ML pipeline based on the dataset;
(Bansal, “[0019] In some embodiments, users are thus enabled to quickly build ML models—e.g., classification and regression models—without any substantial ML knowledge. For example, users in some embodiments may provide a tabular dataset [based on the dataset] and identify a target column in the dataset to predict [receiving a request], and the AMPGS system then automatically explores ML pipeline solutions with different combinations of data preprocessors, algorithms, and/or algorithm parameter settings to find a “best” model [generate the new ML pipeline]. In some embodiments, users may then directly deploy this best model (in terms of a ML pipeline) to a production environment (e.g., with just one click) or iterate on the recommended solution(s) to further improve the model quality.”)
However, Bansal does not explicitly teach obtaining a plurality of parametric templates, each of the parametric templates including one or more fillable portions and one or more static text portions that in combination describe a given functional block in a natural language structure; determining a plurality of functional blocks to populate within the new ML pipeline based on the trained ML pipeline skeleton model;
extracting decision-making conditions and associated meta-features leading to use of at least one of the plurality of functional blocks to populate the new ML pipeline;
generating, using the parametric templates, explanations explaining one or more decisions made in determining to use at least one of the plurality of functional blocks to populate the new ML pipeline, at least one of the fillable portions being filled based on the decision-making conditions and the associated meta-features leading to the use of at least one of the plurality of functional blocks to populate the new ML pipeline;
and instantiating the new ML pipeline including the plurality of functional blocks with the generated explanations.
Ono teaches obtaining a plurality of parametric templates, each of the parametric templates including one or more fillable portions and one or more static text portions that in combination describe a given functional block [in a natural language structure];
(Ono, Fig. 1. PipelineProfiler applied to the analysis of binary classification pipelines generated by five different AutoML systems for the Statlog (Heart) Data Set. A) The system is integrated with Jupyter Notebook and can be invoked with one line of code [obtaining a plurality of parametric templates ie Jupyter Notebook, each of the parametric templates including one or more fillable portions (see fig. 1 C with populated information for System A #1, System A #2, etc) and one or more static text portions (see fig. 1 B-D) that in combination describe a given functional block (see fig. 1 C5 Primitives ie computational steps / ML algorithms)]. B) PipelineProfiler menu, with options to subset, export, sort, and perform automated analysis on pipelines. C) Pipeline Matrix: C1) Primitives (columns) used by the pipelines (rows). C2) Tooltip showing the metadata and hyperparameters for a primitive. C3) One-hot-encoded hyperparameters (columns) for the primitive Xgboost Gbtree across pipelines (rows). C4) Pipeline scores: users can select different metrics to rank pipelines. C5) Primitive Contribution View, showing correlations between primitive usage and pipeline scores (here, Deep Feature Synthesis has the highest correlation with F1 scores). D) Pipeline Comparison View: visual comparison of the top-3 scoring pipelines.”)
PNG
media_image1.png
603
1032
media_image1.png
Greyscale
Ono teaches determining a plurality of functional blocks to populate within the new ML pipeline based on the trained ML pipeline skeleton model;
(Ono, Section 1, “We propose PipelineProfiler, a visual analytics tool that enables the exploration and comparison of end-to-end ML pipelines produced by multiple AutoML systems. PipelineProfiler takes as input pipelines [based on the trained ML pipeline skeleton model] represented with a common description language, consisting of pipeline architecture – the set of primitives and data flow between primitives (encoded as a Directed Acyclic Graph); and pipeline metadata – hyperparameters, running time, evaluation scores, etc [determining a plurality of functional blocks to populate within the new ML pipeline]. Fig. 1 shows the main components of the system. The Pipeline Matrix provides a visual summary of a collection of AutoML pipeline instances that captures structural information, including the primitives and associated hyperparameters, used in the pipelines, as well as the outcome of the pipeline encoded in a score. This representation is compact and can effectively encode pipelines derived by multiple AutoML systems that have both complex structure and use a variety of primitives. By showing the correlations between primitive usage and pipeline scores and how much primitives contribute to the score, the representation can also help uncover insights into the suitability (or effectiveness) of primitives for specific data and problem types. Users can drill down into the structural details of pipelines, and examine both their differences and similarities. As we discuss later, these analyses enable the identification of patterns which can, for example, expose interesting aspects of the search strategies used by AutoML systems. PipelineProfiler is integrated with Jupyter Notebooks. This enables complex analyses to be performed over pipeline collections that leverage the rich ecosystem of Python tools for data science.”)
Ono teaches extracting decision-making conditions and associated meta-features leading to use of at least one of the plurality of functional blocks to populate the new ML pipeline;
generating, using the parametric templates, explanations explaining one or more decisions made in determining to use at least one of the plurality of functional blocks to populate the new ML pipeline, at least one of the fillable portions being filled based on the decision-making conditions and the associated meta-features leading to the use of at least one of the plurality of functional blocks to populate the new ML pipeline;
(Ono, Section 1, “We propose PipelineProfiler, a visual analytics tool that enables the exploration and comparison of end-to-end ML pipelines produced by multiple AutoML systems. PipelineProfiler takes as input pipelines represented with a common description language [using the parametric templates; wherein the parametric templates are provided in the format of Ono], consisting of pipeline architecture – the set of primitives and data flow between primitives (encoded as a Directed Acyclic Graph);..”)
(Ono, Section 3.2, “Domain experts were interested in exploring pipeline metadata [R4], including training and testing scores, training time and execution time. PipelineProfiler shows the pipeline metadata in the Metric View (Fig. 1(C4)). Users can select which metric to display using a drop down menu, and the numerical values are shown in bar chart aligned with the matrix rows. In C4, the user can choose to display the metric FI or the prediction time. Pipeline rows can be re-ordered based on the metric, and to enable a comparison across systems, users can also interactively group pipelines based by the system that generated them.
To convey information about the relationships between primitive usage and pipeline scores [R5], we designed the Primitive Contribution view. This view shows an estimate of how much a primitive contributes to the score of the pipeline using a bar chart encoding, aligned with the columns of the matrix (Fig. 1 (C5)) [extracting decision-making conditions and associated meta-features leading to use of at least one of the plurality of functional blocks to populate the new ML pipeline]. The contribution can be either positive or negative, representing positive or negative primitive correlation with the scores. For example, in C5, Deep Feature Synthesis is the primitive most highly correlated with F1 [generating, using the parametric templates, explanations explaining one or more decisions made in determining to use at least one of the plurality of functional blocks to populate the new ML pipeline, at least one of the fillable portions being filled based on the decision-making conditions and the associated meta-features leading to the use of at least one of the plurality of functional blocks to populate the new ML pipeline; see fig. 1 C5].”)
Ono teaches and instantiating the new ML pipeline including the plurality of functional blocks with the generated explanations.
(Ono, Fig. 1 teaches instantiating the new ML pipeline ex System A #1 including the plurality of functional blocks ie primitives in C5 with the generated explanations ie primitive contribution and DAG)
However, Ono does not explicitly teach obtaining a plurality of parametric templates, each of the parametric templates including one or more fillable portions and one or more static text portions that in combination describe a given functional block in a natural language structure
Joshi teaches obtaining a plurality of parametric templates, each of the parametric templates including one or more fillable portions and one or more static text portions that in combination describe a given functional block in a natural language structure;
PNG
media_image2.png
645
604
media_image2.png
Greyscale
(Joshi, Fig. 5, “[0052] In various embodiments, the notebook view portion 506 is configured to be populated with one or more input-output cells [obtaining a plurality of parametric templates] (e.g., markdown cell 510, code cell 520, raw cell 530, and/or the like) [each of the parametric templates including one or more fillable portions and one or more static text portions]. For example, the IUI 500 provided in FIG. 5 is populated with a markdown cell 510, a code cell 520, and a raw cell 530; however, other various example embodiments may comprise an IUI configured to be populated by a different number and/or different combination of cells and cell classes as to follow a default configuration, a user input configuration, or any other configuration means [that in combination describe a given functional block in a natural language structure; see fig. 5 element 510 wherein the cell describes “THIS MODEL DOES XYZ. HERE’S SOME INFORMATION ABOUT HOW THIS MODEL WAS CREATED AND HOW IT PERFORMED IN THE VALIDATION TESTING” wherein XYZ would be the fillable portion as well as the information on how the model was created and how it performed]. In various embodiments, a model documentation may be generated by executing a notebook and/or a project comprising one or more notebooks with a kernel of the code-text platform and via an execution engine of model documentation generation tool 400. In an example embodiment, the controller layer 460 comprises the execution engine. For example, the notebook and/or one or more notebooks of a project may be first executed by a kernel of the code-text platform and the results thereof may be passed to an execution engine of the model documentation generation tool 400 wherein the various content (e.g., results of executing the notebook and/or one or more notebooks of the project; graphical representations of executing one or more model tests; text, tables, and/or figures extracted from documentation corresponding to a model corresponding to the model documentation; and/or the like) maintained by and/or accessed via the model layer 410, may be combined and/or further processed (e.g., by the controller layer 460) to generate the model documentation in accordance with the project template 452, parameters 462, configuration input 464, and/or the like. In various embodiments, executing the notebook and/or one or more notebooks of a project (e.g., via the kernel of the code-text platform and the controller layer 460) causes model documentation to be generated. In various embodiments, the model documentation may be PDF document and/or other printable and/or displayable document format. In an example embodiment, the controller layer 460 may execute the results of executing the notebook and/or one or more notebooks of a project (including any raw cells 530 not executed by the kernel) using a LaTeX or other type-setting system compiler. For example, the controller layer 460 may comprise a LaTeX compiler and/or other type-setting system compiler configured to execute the results of executing the notebook and/or one or more notebooks of the project to generate the model documentation.”)
Bansal and Ono are both considered to be analogous to the claimed invention because they are in the same field of machine learning model generation. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Bansal to incorporate the teachings of Ono in order to provide an interactive visualization tool integrated with Jupyter Notebook to provide data scientists with valuable insights for pipeline exploration (Ono, Abstract, “In recent years, a wide variety of automated machine learning (AutoML) methods have been proposed to generate end-to-end ML pipelines. While these techniques facilitate the creation of models, given their black-box nature, the complexity of the underlying algorithms, and the large number of pipelines they derive, they are difficult for developers to debug. It is also challenging for machine learning experts to select an AutoML system that is well suited for a given problem. In this paper, we present the Pipeline Profiler, an interactive visualization tool that allows the exploration and comparison of the solution space of machine learning (ML) pipelines produced by AutoML systems. PipelineProfiler is integrated with Jupyter Notebook and can be combined with common data science tools to enable a rich set of analyses of the ML pipelines, providing users a better understanding of the algorithms that generated them as well as insights into how they can be improved. We demonstrate the utility of our tool through use cases where PipelineProfiler is used to better understand and improve a real-world AutoML system. Furthermore, we validate our approach by presenting a detailed analysis of a think-aloud experiment with six data scientists who develop and evaluate AutoML tools.”)
Joshi is considered to be analogous to the claimed invention because they are in the same field of managing machine learning model generation. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Bansal and Ono to incorporate the teachings of Joshi in order to provide automated validation that a model is compliant with rules and regulations as well as a method for automated model documentation generation to reduce human error (Joshi, “[0003] In various scenarios, quantitative and qualitative models must be validated, for example, for an entity that developed or uses the models to be in compliance with applicable rules and regulations. However, model documentation, such as model validation reports that document the validation of the models, are conventionally generated manually. This manual model documentation generation takes a significant amount of time and manpower and is prone to human error. Moreover, use of manual model documentation generation results in model documentation that cannot be easily regenerated. For example, if a relatively minor change is made in the model, significant reworking of the model documentation may be required. Thus, a technical problem exists in the conventional model documentation (e.g., model validation report) generation. [0004] Various embodiments provide technical solutions to the field of model documentation generation.”)
In regards to claim 2,
Bansal and Ono and Joshi teaches The method of claim 1,
Ono teaches further comprising: determining dependencies between the plurality of functional blocks; and generating explanations regarding an order of the plurality of functional blocks within the new ML pipeline based on the dependencies.
(Ono, Fig. 2 (a) teaches the dependencies ie arrows between the plurality of functional blocks ie primitives wherein the explanations in Fig. 1 D includes the Directed Acyclic Graph)
PNG
media_image3.png
145
647
media_image3.png
Greyscale
In regards to claim 4,
Bansal and Ono and Joshi teach The method of claim 1,
Bansal teaches wherein determining the functional blocks includes determining a ML model from multiple models to use
(Bansal, “[0058] A model ensembler 525 may also be utilized to create one or more ensemble models, if desired by the user or configured by the system, based on use of ones of the explored models [determining a ML model from multiple models to use]. For example, as indicated above, multiple models can be used in an ensemble using one or more ensemble techniques known to those of skill in the art (e.g., using some sort of aggregation or selection of outputs).”)
Bansal teaches based on the meta-features of the dataset.
(Bansal, [0047], “The preliminary operations may also include generating metadata describing the dataset [based on the meta-features of the dataset] (e.g., a total number of rows, a number of columns, data types of the columns, value distributions and other statistics based on values of the columns) that can be used as part of later processing, cleaning the dataset, or the like.”)
In regards to claim 5,
Bansal and Ono and Joshi teach The method of claim 4,
Bansal teaches wherein generating the explanation related to the ML model includes identifying at least one of the meta-features of the dataset that most influenced the determination of the ML model from the multiple models.
(Bansal, “[0044] The pipeline recommender system 112, in some embodiments, is responsible for determining the set of ML pipelines to explore and be optimized by the pipeline optimizer system 116. The pipeline recommender system 112, in some embodiments, can analyze the user's provided dataset and infer one or more of the probabilistic schema of the data set, target leakage, feature importance, the type of ML problem (e.g., classification, regression, etc.) based on the user-identified target column, etc. The pipeline recommender system 112 can use the dataset provided by the user and knowledge learned from metadata collected to recommend a promising and diverse set of feature processing pipelines to apply to the customer dataset along with the code for the feature processing model [identifying at least one of the meta-features of the dataset that most influenced the determination of the ML model from the multiple models].”)
In regards to claim 10,
Bansal teaches One or more non-transitory computer-readable media containing instructions that, when executed by one or more processors, cause a system to perform operations, the operations comprising:
(Bansal, “[0150] In some embodiments, system memory 1320 may be one embodiment of a computer-accessible medium configured to store program instructions and data as described above. However, in other embodiments, program instructions and/or data may be received, sent or stored upon different types of computer-accessible media. Generally speaking, a computer-accessible medium may include non-transitory storage media or memory media such as magnetic or optical media, e.g., disk or DVD/CD coupled to computer system 1300 via I/O interface 1330. A non-transitory computer-accessible storage medium may also include any volatile or non-volatile media such as RAM (e.g., SDRAM, double data rate (DDR) SDRAM, SRAM, etc.), read only memory (ROM), etc., that may be included in some embodiments of computer system 1300 as system memory 1320 or another type of memory. Further, a computer-accessible medium may include transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as a network and/or a wireless link, such as may be implemented via network interface 1340.”)
The rest of the steps of claim 10 are taught by Bansal and Ono in the analogous steps of claim 1.
Claims 11 and 20 are rejected on the same grounds under 35 U.S.C. 103 as claim 2 as they are substantially similar.
Claim 13 is rejected on the same grounds under 35 U.S.C. 103 as claim 4 as they are substantially similar.
Claim 14 is rejected on the same grounds under 35 U.S.C. 103 as claim 5 as they are substantially similar.
Claim 19 is rejected on the same rationale under 35 U.S.C. 103 as claim 10 as they are substantially similar.
Claim(s) 3 and 12 is/are rejected under 35 U.S.C. 103 as being unpatentable over Bansal in view of Ono and Joshi in further view of U.S. Pub. No. US20210342490A1 Briancon et al. (“Briancon”).
In regards to claim 3,
Bansal and Ono and Joshi teach The method of claim 2,
Briancon teaches wherein determining dependencies comprises constructing an acyclic graph of the functional blocks using a dataflow model of the dataset within the new ML pipeline.
(Briancon, [0029], “In some embodiments, the machine-learning components 20 include model parameters 24 (such as weights and biases of neural networks or other parameters of other types of models like those described below), model hyperparameters 26, architectures of machine learning models 28 (such as directed acyclic graphs [constructing an acyclic graph of the functional blocks] with transformer nodes, connection graphs of perceptrons in deep neural networks, arrangements of Bayesian classifiers in dynamic Bayesian networks, reinforcement learning policies, and the like, again with substantially more examples discussed below), and a machine learning pipeline architecture 30, such as a call graph of a collection of machine learning models or dataflow through a sequence (which may include branching components) of machine learning models [using a dataflow model of the dataset within the new ML pipeline], again examples of which are described below.”)
Briancon is considered to be analogous to the claimed invention because they are in the same field of managing machine learning model generation. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Bansal in view of Ono and Joshi to incorporate the teachings of Briancon in order to provide a mechanism to protect companies’ algorithms, ETL methods, data structures, software implementations, and pipelines from reverse-engineering and tampering (Briancon, “[0003] Advanced machine learning is becoming essential for many businesses. To address this need, many companies complement their internal development effort with third-party, machine-learning packages and other systems. Machine learning systems can be exceedingly complex and costly to develop. Because of the nature of the development of machine learning, especially for validation, this opens the door for abuse. As a result, machine-learning companies often desire to protect their algorithms, ETL (extract, transform, and load) methods, data structures, software implementations, and pipelines from reverse-engineering by competitors, from copying by internal customer teams (e.g., those using such libraries or frameworks), or from tampering by persons attempting to undermine the integrity of the software's operation.”)
Claim 12 is rejected on the same grounds under 35 U.S.C. 103 as claim 3 as they are substantially similar.
Claim(s) 6-7 and 15-16 is/are rejected under 35 U.S.C. 103 as being unpatentable over Bansal in view of Ono and Joshi in further view of U.S. Pub. No. US20210081837A1 Polleri et al. (“Polleri”).
In regards to claim 6,
Bansal and Ono and Joshi teaches The method of claim 1,
Polleri teaches wherein generating the explanation for a given functional block includes: traversing a path in a decision-tree model
(Polleri, [0224], “In some embodiments, the second binary classification model may include a support vector machine (SVM) classifier, a logistic regression classifier, a naive Bayes classifier, a decision tree classifier, a nearest neighbor classifier, or a neural network classifier.”)
Polleri teaches from a root of the decision-tree model to a leaf corresponding to a decision to include the given functional block;
(Polleri, “[0224] In some embodiments, classifying the input as associated with the class in the plurality of classes may include classifying, by a binary classification model associated with the root node [from a root], the input as belonging to classes associated with a first child node of the root node [to a leaf corresponding to a decision], where the first child node may be on a second layer of the tree structure. In some embodiments, classifying the input as belonging to the classes associated with the first child node of the root node may include: determining, by the binary classification model, a first value indicating a likelihood that the input belongs to the classes associated with the first child node of the root node; determining, by the binary classification model, a second value indicating a likelihood that the input belongs to classes associated with a second child node of the root node; and classifying the input as belonging to the classes associated with the first child node of the root node based on determining that the first value is greater than the second value or based on determining that the first value is greater than a threshold value [to include the given functional block; wherein determining to include the given functional block is based on the first value being greater than some threshold value]. In some embodiments, classifying the input as associated with the class in the plurality of classes may further include classifying, by a second binary classification model associated with the first child node on the second layer, the input as belonging to classes associated with a child node of the first child node, where the child node of the first child node may be on a third layer of the tree structure.”)
Polleri teaches collecting decisions along the decision-tree model made based on the meta-features of the dataset; and
(Polleri, “[0389] In various embodiments the techniques can include saving supplemental metadata concerning the second machine learning model based at least in part on the one or more first parameters the one or more second results. In various embodiments, the metadata [based on the meta-features of the dataset] includes at least one of a number of levels for a decision tree [collecting decisions along the decision-tree model made] and a number of parameters of an algorithm for the second machine learning model.”)
However, Polleri does not explicitly teach and populating the one or more fillable portions of a given parametric template corresponding to the given functional block based on the collected decisions, the meta- features, or both.
Joshi teaches populating the one or more fillable portions of a given parametric template corresponding to the given functional block based on the collected decisions, the meta- features, or both.
PNG
media_image2.png
645
604
media_image2.png
Greyscale
(Joshi, Fig. 5, “[0052] In various embodiments, the notebook view portion 506 is configured to be populated with one or more input-output cells (e.g., markdown cell 510, code cell 520, raw cell 530, and/or the like). For example, the IUI 500 provided in FIG. 5 is populated with a markdown cell 510, a code cell 520, and a raw cell 530; however, other various example embodiments may comprise an IUI configured to be populated by a different number and/or different combination of cells and cell classes as to follow a default configuration, a user input configuration, or any other configuration means [populating the one or more fillable portions of a given parametric template corresponding to the given functional block based on the collected decisions, the meta- features, or both; wherein the configuration means is provided by the decision tree of Polleri].”)
Polleri is considered to be analogous to the claimed invention because they are in the same field of managing machine learning model generation. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Bansal in view of Ono and Joshi to incorporate the teachings of Polleri in order to provide users an automated machine learning generation system that doesn’t require detailed knowledge to increase ease of use and provide an automatic feedback and adjustment mechanism (Polleri, “[0009] Certain aspects and features of the present disclosure relate to machine learning platform that generates a library of components to generate machine learning models and machine learning applications. The machine learning infrastructure system allows a user (i.e., a data scientist) to generate machine learning applications without having detailed knowledge of the cloud-based network infrastructure or knowledge of how to generate code for building the model. The machine learning platform can analyze the identified data and the user provided desired prediction and performance characteristics to select one or more library components and associated API to generate a machine learning application. The machine learning techniques can monitor and evaluate the outputs of the machine learning model to allow for feedback and adjustments to the model. The machine learning application can be trained, tested, and compiled for export as stand-alone executable code.”)
In regards to claim 7,
Bansal in view of Ono, Joshi and Polleri teach The method of claim 6,
Ono teaches wherein populating the fillable portions includes applying data obtained from a third-party source hosting the given functional block.
(Ono, Section 3.2, “PipelineProfiler is implemented as a Python 3 library. The front-end is
implemented in Javascript with React [21], D3 [5] and Dagre [11]. The back-end, responsible for data management, graph merging and the Jupyter Notebook hooks is implemented in Python with Numpy [61] and NetworkX [29] [populating the fillable portions includes applying data obtained from a third-party source hosting the given functional block; wherein Jupyter Notebook can be hosted locally and the user can provide data to populate the fillable portions ie cells].”)
Claim 15 is rejected on the same grounds under 35 U.S.C. 103 as claim 6 as they are substantially similar.
Claim 16 is rejected on the same grounds under 35 U.S.C. 103 as claim 7 as they are substantially similar.
Claim(s) 8-9 and 17-18 is/are rejected under 35 U.S.C. 103 as being unpatentable over Bansal in view of Ono and Joshi in further view of U.S. Pub. No. US20210011696A1 Makkar et al. (“Makkar”).
In regards to claim 8,
Bansal and Ono and Joshi teach The method of claim 1,
Makkar teaches wherein generating the explanation for a given functional block includes providing a suggestion of an alternative to the given functional block.
(Makkar, “[0015] In selected illustrative embodiments, the server/computer system 10 may include a library suggestion engine 13 that is embodied as a Question Answering (QA) system to use NLP, machine learning, and/or artificial intelligence processing techniques which are augmented with the mechanisms of the illustrative embodiments described hereafter. In a QA system implementation, the library suggestion engine 13 may be embodied as a computer program stored in memory 12 which uses one or more processors 11 to query a structured or unstructured knowledge or information database 29 which includes a library knowledge base 28. Input source code files 22 are available from an external system and/or may be stored in memory 12 and/or in the database storage device 29. Illustrated as being stored in memory 12, the library suggestion engine 13 may be configured to assess input source code files 22 against a library knowledge base 28 for purposes of suggestion library functions as replacement for one or more lines of code from the input source code files [providing a suggestion of an alternative to the given functional block].”)
Makkar is considered to be analogous to the claimed invention because they are in the same field of automated code generation. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Bansal in view of Ono and Joshi to incorporate the teachings of Makkar in order to provide a method to improve code reuse and code maintainability by automating recommendations of replacement and substitution of code (Makkar, “[0003] A system, apparatus, and methodology are described for efficiently improving code reuse and improving codebase maintainability by automating the generation of library functions recommendations for replacement or substitution of source code which is written by developers. In selected embodiments, customized code suggestions for library function substitutions are efficiently generated for a programmer's submitted source code by using a matching process to identify source code snippets from the source code which match with library function code suggestions on the basis of shared inputs and outputs. Selected embodiments of the disclosed system, apparatus, and methodology use machine learning, natural language processing (NLP), and/or artificial intelligence (AI) in combination with static and/or dynamic code analysis techniques to automatically analyze code and yield library substitution opportunities.”)
In regards to claim 9,
Bansal in view of Ono, Joshi and Makkar teach The method of claim 8,
Makkar teaches wherein: determining the plurality of functional blocks includes removing a second functional block that performs a duplicative function to the given functional block; and
(Makkar, “[0013] A library suggestion engine, methodology, and apparatus are described for efficiently generating automated library function recommendations to replace input source code written by developers by matching candidate source code snippets from the input source code with corresponding library function code snippets to generate validated code snippets which are recommended for substitution or replacement [removing] by matching library function recommendations. As disclosed herein, a blackbox matching process may be used to identify source code snippets and library code snippets which generate similar outputs from a shared input by parsing each and every line of code in a candidate code snippet to generate a templatized code snippet data structure, and then testing the extracted code snippet information against extracted library function code information to check for similarity of outputs between the candidate code snippet and library function code in response to a shared input [second functional block that performs a duplicative function to the given functional block].”)
Makkar teaches the alternative is the removed second functional block.
(Makkar, [0113], “In selected embodiments, the candidate code snippets are identified by pruning the input source code files with an NLP analysis of the input source code files to keep each candidate code snippet which meets at least a first similarity threshold measure for a first library function stored in the system library [alternative is the removed second functional block; wherein the removed second functional block is kept if it meets a similarity threshold].”)
Claim 17 is rejected on the same grounds under 35 U.S.C. 103 as claim 8 as they are substantially similar.
Claim 18 is rejected on the same grounds under 35 U.S.C. 103 as claim 9 as they are substantially similar.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
U.S. Pub. No. US20220036246A1: Chen et al. teaches Automated machine learning pipeline generation
NPL: Olson, Randal S., et al. "Evaluation of a tree-based pipeline optimization tool for automating data science." Proceedings of the genetic and evolutionary computation conference 2016. 2016.
NPL: Guo, Daya, et al. "Graphcodebert: Pre-training code representations with data flow." arXiv preprint arXiv:2009.08366 (2020).
NPL: Woźnica, Katarzyna, and Przemysław Biecek. "Towards explainable meta-learning." Joint European Conference on Machine Learning and Knowledge Discovery in Databases. Cham: Springer International Publishing, 2021.
US Pub no. US20150356085A1 Panda et al. teaches A technique is described that simplifies the process for applying predictive analysis to a dataset. The technique can recommend multiple templates to a user.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JASMINE THAI whose telephone number is (703)756-5904. The examiner can normally be reached M-F 8-4.
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, Michael Huntley can be reached at (303) 297-4307. 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.
/J.T.T./Examiner, Art Unit 2129
/MICHAEL J HUNTLEY/Supervisory Patent Examiner, Art Unit 2129