DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA and is in response to communications filed on 1/16/2025 in which claims 1-21 are canceled and 22-41 newly added for examination.
Priority
Acknowledgment is made of Continuation of 16/990,506, filed on 8/11/2020 and Provisional Application No. 62/927187, filed on 10/29/2019.
Considerations under - 35 USC § 101
Claims are NOT directed to an abstract idea because Independent claims recite the use of static analysis which is a method of computer program debugging that is done by examining the code without executing the program integrates with the invention and provides an inventive concept to the claims. This improves efficiency in inference queries in a database management system (DBMS) and in generating code in such a system.
Dependent claims also recite significantly more than a judicial exception due at least to their dependency on their respective independent claims.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102 of this title, 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 22, 25-27, 31-37, and 40-41 are rejected under 35 U.S.C. 103 as being unpatentable over Nguyen et al. US 20160034530 A1 (hereinafter referred to as “Nguyen”) in view of Song et al. US 20210174238 A1 (hereinafter referred to as “Song”) and further in view of Wang et al. US 11797876 B1 (hereinafter referred to as “Wang”).
As per claim 22, Nguyen teaches:
A device-implemented method, comprising:
…
performing static analysis of the inference query (Nguyen, [0039] – Optimization engine module 102 can generate candidates to be run on different machines, with different threads, and then determine whether or not to take that route. In some embodiments, the process can start with a single machine and/or single thread, followed by the generation of candidates, evaluation (e.g., compute the objective function), and then comparing the objective functions. For multiple machines, the merging of the results implies some network I/O to transmit intermediate results between machines, wherein this is interpreted as a unified intermediate representation. [0117] – The optimization module 328 can use both static information (e.g., the query text and explicitly specified priorities) and dynamic information (e.g., statistics on tables collected from prior queries, network state of data source replicas, etc.) to perform the optimization) …
performing cross-optimization of the graph based, at least in part, upon the one or more relational database operators and the one or more machine learning operators (Nguyen, [0052] – The machine learning module 202 is configured to optimize query execution using various machine learning techniques. These techniques can involve an inference stage that, for any given query, determines how to search efficiently through a space of possible combination of transformations to identify which transformations will yield the fastest computation graph when applied. The techniques can also include a training stage from which the machine learning module 202 can learn various information and/or metrics from running queries in a computing environment. Moreover, the techniques can also include a sampling stage which involves determining how to write computation graphs which, as queries are executed, allow the machine learning module 202 to collect the most information to be used for training a computing system (e.g., learning to learn)); and
generating code for the database based at least in part on the cross- optimization, wherein, when executed, the code produces a result of the inference query based at least in part on the one or more relational operators and the one or more machine learning operators (Nguyen, [0049] – The optimization engine module 102 can include a machine-level optimization module 110 that can leverage compiler technology, for example, when Just-In-Time (JIT) code is being compiled for a query. The leveraged compiler technology can include, but is not limited to, loop-invariant code motion, inlining, and constant folding. Because the code generated is dynamic, the whole optimization process guarantees that execution will be optimized up to the machine level. See also paragraph [0120]).
Nguyen doesn’t go into detail about machine learning runtimes and code running in the machine learning environment, however, Song teaches:
receiving an inference query for a database having a database relational engine and an integral machine learning runtime (Song, [0041] – The request includes a structured query language (SQL) query to be performed on at least a portion of a dataset in the database service and wherein the request identifies a machine learning service to be used in processing the SQL query, creating a virtual operator to perform at least a portion of the SQL query, generating a first batch of machine learning requests based at least on the portion of the SQL query performed by the virtual operator. Using a machine learning model in response to receiving the second batch of machine learning requests, and generating a query response based on the machine learning responses. [0052] – The ML training containers 730 may include individual a runtime 734, code 737, and dependencies 732 needed by the code);
It would have been obvious for one of ordinary skill in the art prior to the effective filing date of the claimed invention to modify Nguyen’s invention as modified in view of Song in order to include machine learning operators; this is advantageous because it allows the system to identify portions of the query that need to be sent to the machine learning service (Song, paragraph [0029]).
Nguyen doesn’t include nodes representing operators in a graph; however, Wang teaches:
to generate a graph representing the inference query with one or more relational database operators and one or more machine learning operators (Wang, column 8, lines 65 – column 9, lines 2 – A CNN model 205 is obtained (e.g., model artifacts from a storage service) and used to build a computational graph 210 using techniques known to those of skill in the art, in which the nodes of the graph correspond to operators to be performed);
It would have been obvious for one of ordinary skill in the art prior to the effective filing date of the claimed invention to modify Nguyen’s invention as modified in view of Wang in order to include a graphical representation of operators; this is advantageous because it allows for graph-level tuning and graph-level optimization has great impact on CNN model performance (Wang, column 11, lines 60-67).
As per claim 25, Nguyen as modified teaches:
The device-implemented method of claim 22, wherein the graph includes:
a first node representing a relational database operator that performs a join operation on data from multiple data sources to obtain joined data (Wang, column 9, lines 1-5 – The nodes of the graph correspond to operators to be performed); and
a second node representing a machine learning operator that performs a machine learning operation based at least in part on the joined data (Wang, column 8, lines 53-62 – The model compilation system 132 obtains high performance and wide model coverage using a unified optimization approach, in which vision-specific operators are optimized for integrated GPUs (which is non-trivial and ignored in existing systems), nonoptimized operators that are not GPU-friendly are fallen back to CPUs if needed, and/or two types of machine learning-based techniques are implemented to explore the optimization space for achieving better performance).
As per claim 26, Nguyen as modified teaches:
The device-implemented method of claim 25, wherein the graph includes a third node representing another relational database operator that performs a select operation based at least in part on output of the machine learning operation (Wang, [0062] – Select operations).
As per claim 27, Nguyen as modified teaches:
The device-implemented method of claim 26, wherein the join data is obtained from multiple relational data tables (Nguyen, [0035] – Generally manipulate data on a variety of platforms including, cloud computing systems or platforms, relational database management systems (RDBMS)).
As per claim 31, Nguyen as modified teaches:
The device-implemented method of claim 22, further comprising:
executing the code on one or more data sources of the database, the executing providing a result (Nguyen, [0004] – The respective portions of the optimized computation graph are distributed to a plurality of distributed computing systems for execution. A result for the at least one database query is provided. [0031] – Query optimization can involve determining an optimal approach for executing a query); and
outputting the result in response to the inference query (Nguyen, [0004] – The respective portions of the optimized computation graph are distributed to a plurality of distributed computing systems for execution. A result for the at least one database query is provided).
As per claim 32, Nguyen as modified teaches:
The device-implemented method of claim 31, the one or more data sources comprising multiple relational data tables (Nguyen, [0131] – The SQL-driven distributed operating system 302 can include a join module 310 that can be configured to efficiently perform SQL joins, for example, of database tables from the same data source (e.g., relational databases) or from multiple, disparate sources (e.g., relational databases and NoSQL-based databases)).
Claims 33-37 are directed to a system performing steps recited in claims 22, 25, 27, 31-32 with substantially the same limitations. Therefore, the rejections made to claims 22, 25, 27, 31-32 are applied to claims 33-37.
Claim 40 is directed to a computer storage media performing steps recited in claim 22 with substantially the same limitations. Therefore, the rejection made to claim 22 is applied to claim 40.
As per claim 41, Nguyen as modified teaches:
The computer storage media of claim 40, the acts further comprising:
generating a result for the inference query by executing the code on data from a relational database (Nguyen, [0004] – The respective portions of the optimized computation graph are distributed to a plurality of distributed computing systems for execution. A result for the at least one database query is provided. [0031] – Query optimization is typically utilized in relational database management systems for purposes of determining the most efficient way to execute a given query).
Claims 23-24 are rejected under 35 U.S.C. 103 as being unpatentable over Nguyen in view of Song in view of Wang and further in view of Amos et al. US 20130332449 A1 (hereinafter referred to as “Amos”).
As per claim 23, Nguyen as modified doesn’t explicitly teach directed acyclic graphs, however, Amos teaches:
The device-implemented method of claim 22, wherein the graph is a directed acyclic graph (Amos, [0010] – Individuals can build a data processing model using a Directed Acyclic Graph (DAG) that shows the flow of data from input tables to output tables. Each node has attributes that specify a number of input tables, a number of output tables, and the operations performed on the data. The present invention generates code (e.g., declarative, procedural) from the DAG that can be evaluated by a third-party data processing tool like Apache Pig or a relational database).
It would have been obvious for one of ordinary skill in the art prior to the effective filing date of the claimed invention to modify Nguyen’s invention as modified in view of Amos in order to include a directed acyclic graph; this is advantageous because it can show the flow of data from input tables to output tables which allows full analysis of the data (Amos, paragraph [0010]).
As per claim 24, Nguyen as modified with Amos teaches:
The device-implemented method of claim 23, wherein the directed acyclic graph includes nodes representing individual relational database operators, other nodes representing individual machine learning operators, and directed edges connecting the nodes and the other nodes (Amos, Individuals can build a data processing model using a Directed Acyclic Graph (DAG) that shows the flow of data from input tables to output tables. Each node has attributes that specify a number of input tables, a number of output tables, and the operations performed on the data. The present invention generates code (e.g., declarative, procedural) from the DAG that can be evaluated by a third-party data processing tool like Apache Pig or a relational database).
Claims 28-30 are rejected under 35 U.S.C. 103 as being unpatentable over Nguyen in view of Song in view of Wang and further in view of Ghosh et al. US 20160034530 A1 (hereinafter referred to as “Ghosh”).
As per claim 28, Nguyen as modified doesn’t explicitly teach identification of zero weights, however, Ghosh teaches:
The device-implemented method of claim 22, wherein the cross- optimization is based at least on identifying zero weights in a machine learning model that implements a particular machine learning operator (Ghosh, [0070] – Testing parameters with a zero weight in LASSO).
It would have been obvious for one of ordinary skill in the art prior to the effective filing date of the claimed invention to modify Nguyen’s invention as modified in view of Ghosh in order to identify zero-weight connections; this is advantageous because this can be used to eliminate redundant tests (Gosh, [0070]).
As per claim 29, Nguyen as modified with Ghosh teaches:
The device-implemented method of claim 28, wherein the cross- optimization involves:
identifying features representing input data accessed by the inference query (Ghosh, [0070] – Identify a set of principle components that explain variance in data);
and removing a subset of the features that would be multiplied by the zero weights when processed by the machine learning model (Gosh, [0070] – Accordingly, the server 24 may determine the candidate testing parameters for removal based on the testing parameters with a zero weight in LASSO).
As per claim 30, Nguyen as modified with Ghosh teaches:
The device-implemented method of claim 29, wherein the machine learning model is a linear regression model (Ghosh, [0080]).
Claim 38 is rejected under 35 U.S.C. 103 as being unpatentable over Nguyen in view of Song in view of Wang and further in view of Ghosh et al. US 20160034530 A1 (hereinafter referred to as “Ghosh”).
As per claim 38, Nguyen doesn’t teach a dynamically linked library, however, Harkness teaches:
The system of claim 33, wherein the integral machine learning runtime of the database comprises a dynamically-linked library that runs in-process with the database relational engine (Harkness, [0070] – An application assembly 322 may comprise computer-readable code or instructions, scripts, statically-linked libraries, dynamically-linked libraries).
It would have been obvious for one of ordinary skill in the art prior to the effective filing date of the claimed invention to modify Nguyen’s invention as modified in view of Harkness in order to include a dynamically-linked library; this is advantageous because this allows the transmitted data and commands to be generated in response to calculations performed by the worker integration library (Harkness, [0074]).
Claim 39 is rejected under 35 U.S.C. 103 as being unpatentable over Nguyen in view of Song in view of Wang and further in view of Singh et al. US 20190065523 A1 (hereinafter referred to as “Singh”).
As per claim 39, Nguyen as modified doesn’t explicitly teach decision trees, however, Singh teaches:
The system of claim 33, wherein the one or more machine learning operators correspond to at least one of a decision tree model or a regression model (Singh, [0039] – Decision tree learning represents a predictive modeling approach that may be used in machine learning. Decision tree learning uses a decision tree (as a predictive model) to go from observations about an item (represented in the branches) to conclusions about the item's target value (represented in the leaves). The Tree may be pruned until the results are satisfactory (e.g., reach a threshold, achieve a desired accuracy rate, etc.));
It would have been obvious for one of ordinary skill in the art prior to the effective filing date of the claimed invention to modify Nguyen’s invention as modified in view of Singh in order to include pruning as an optimization mechanism; this is advantageous because it allows the system to identify an accuracy rate and to prune the decision tree until the desired accuracy rate is achieved (Singh, paragraph [0039]).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure:
Lee et al. US 20200133964 A1 teaches analyzing data from a variety of data sources as well as generating responses to specific questions based on the analyzed data, wherein the generating includes: retrieving related documents associated with the analyzed data; determining which information should be reported from which of the retrieved related documents; and providing a response based on the determination and a graph schema associated with the related documents (Abstract).
Chaudhuri et al. US 20190378028 A1 teaches utilizing probabilistic predicates (PPs) to speed up searches requiring machine learning inferences (Abstract).
Li et al. US 20200193288 A1 teaches A trained neural network is stored in memory, defining input nodes representing respective attribute values of attribute types, and weights embodying strengths of connections between the input nodes and hidden nodes, as trained for the particular user. Sub-models of the neural network are defined from sets of input nodes of the same attribute type and a corresponding hidden state matrix of trained weights (Abstract).
“Predicting Hospital Length of Stay”, http://web.archive.org/web/20170625124538/https://microsoft.github.io/r-server-hospital-length-of-stay/, June 25, 2017, 2 Pages.
Contact Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Matthew Ellis whose telephone number is (571)270-3443. The examiner can normally be reached on Monday-Friday 8AM-5PM.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Neveen Abel-Jalil can be reached on (571)270-0474. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
January 7, 2026
/MATTHEW J ELLIS/Primary Examiner, Art Unit 2152