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 § 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, 6, 8-13, 15-17, 19, and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Gottlob (US 2025/0045256) and further in view of Bhadauria (US 10,761,893).
Regarding claim 1, Gottlob teaches: A method of data processing, comprising:
receiving, by a data processing system, an indication of one or more operational constraints (¶ 130, “zero or more constraints are accessible to the controller, each constraint being either a database constraint expressing a property to be fulfilled and maintained by the dataset, or a process constraint that restricts the control flow to be generated by the controller”) for an unstructured compute process to be executed by the data processing system (¶ 349, “a prompt such as ‘Please rewrite the data extraction program to significantly improve its efficiency’ will be submitted to the LLM”);
transmitting, to a large language model (LLM) that is configured to communicate with the data processing system, a request to decompose the unstructured compute process into a plurality of structured sub-processes (¶ 363, “CHAT2EXTRACT first attempts to decompose the whole data extraction task into smaller, independent sub-tasks”) and allocate the plurality of structured sub-processes to a plurality of compute resources of the data processing system in accordance with the one or more operational constraints (¶ 363, “These sub-tasks can then be distributed across different machines or computational resources to run in parallel”);
receiving, from the LLM, a response comprising information associated with an allocation scheme for the plurality of structured sub-processes of the unstructured compute process (claim 18, “Automatically generated Chain-of-Thought prompts either directly generated by the controller or obtained as response to an LLM prompt issued by the controller, the response providing explanations to the one or more LLMs on how to solve a problem by providing natural-language explanations and/or examples of how to solve concrete example problem-instances”);
allocating, by the data processing system, the plurality of structured sub-processes identified by the LLM to the plurality of compute resources of the data processing system in accordance with the allocation scheme (¶ 363, “These sub-tasks can then be distributed across different machines or computational resources to run in parallel. CHAT2EXTRACT utilizes an LLM to determine whether and how to decompose the overall data extraction task into more manageable sub-tasks”) and the one or more operational constraints (claim 1, “zero or more constraints are accessible to the controller, each constraint being either a database constraint expressing a property to be fulfilled and maintained by the dataset, or a process constraint that restricts the control flow to be generated by the controller”); and
executing, by the plurality of compute resources of the data processing system, the plurality of structured sub-processes (¶ 845, “auxiliary LLM interaction modules, which are triggered by basic functional or complementary modules and use LLM interaction for a sub-ordinate task to be executed by a basic functional or complementary module”) based at least in part on using the LLM to retrieve data from a plurality of data sources (¶ 352, “this method can also be applied to extracting data or information from other types of sources in different document repositories, such as documents in a local document repository”) in accordance with the one or more operational constraints (claim 1, “each constraint being either a database constraint expressing a property to be fulfilled and maintained by the dataset”).
Gottlob does not teach as clearly as Bhadauria discloses: an allocation scheme (col. 3:43-47, “a user can configure an auto scaling policy to monitor a resource load metric for a user's application (for example, based on CPU utilization, GPU utilization, or I/O latency) and can scale when average utilization of a selected resource for the fleet exceeds a defined threshold”).
It would have been obvious to a person having ordinary skill in the art, at the effective filing date of the invention, to have applied the known technique of an allocation scheme, as taught by Bhadauria, in the same way to the method, as taught by Gottlob. Both inventions are in the field of allocating sub-processes to a plurality of resources, and combining them would have predictably resulted in “improve the modularity and resiliency of the applications and can better enable development teams to create, deploy, and scale respective services independently, among other benefits,” as indicated by Bhadauria (col. 1:16-19).
Regarding claim 2, Bhadauria teaches: The method of claim 1, wherein allocating the plurality of structured sub-processes comprises: dynamically adjusting a quantity of the plurality of compute resources to which the plurality of structured sub-processes are allocated (col. 4:19-24, “A scaling service can thus be configured to scale the compute instances provisioned for a service in proportion to the measured worker pool utilization—that is, compute instances can be added when a fleet's worker pools become more “busy” while compute instances can be removed when worker pools become inactive”) based at least in part on performance data associated with the plurality of structured sub-processes (col. 9:33-38, “the auto scaling service 106 calculates a fleet utilization metric (indicating worker pool utilization across an entire fleet of instances) and/or fleet load metric (indicating worker pool utilization in combination with other metrics) based on the obtained worker pool utilization metric”).
Regarding claim 6, Bhadauria teaches: The method of claim 1, further comprising: allocating multiple instances of a structured sub-process to different compute resources of the data processing system (col. 3:26-32, “An auto scaling service, for example, can be used to manage a “fleet” of compute instances (for example, including any number of VMs, containers, or other types of compute resources) used to execute one or more application services and to ensure that a desired number of instances are available to maintain the health and availability of the software application”) to support failure recovery and fault tolerance (col. 3:39-42, “Existing auto scaling services typically operate by monitoring the health of running compute instances, replacing impaired instances with new instances, and dynamically scaling a number of instances in a fleet as described above”).
Regarding claim 8, Bhadauria teaches: The method of claim 1, further comprising: updating the allocation scheme for the plurality of structured sub-processes of the unstructured compute process based at least in part on feedback information provided by the plurality of compute resources (col. 4:19-24, “A scaling service can thus be configured to scale the compute instances provisioned for a service in proportion to the measured worker pool utilization—that is, compute instances can be added when a fleet's worker pools become more “busy” while compute instances can be removed when worker pools become inactive”).
Regarding claim 9, Gottlob teaches: The method of claim 1, wherein the plurality of structured sub-processes comprise searching one or more online data sources (¶ 26, “They can autonomously conduct a web search and incorporate relevant, current web information into their operational context”), searching one or more databases (claim 1, “(i) accessing and/or modifying a database by at least one processor, the database to be automatically curated, the database being accessible to, and modifiable by, a controller”), or interacting with one or more third-party systems (¶ 22, “acquiring pre-extracted structured data either in bulk form or via APIs from professional business data providers”).
Regarding claim 10, Gottlob teaches: The method of claim 1, wherein the plurality of compute resources comprise a network of artificial intelligence (AI) bots that are capable of executing the plurality of structured sub-processes (¶ 29, “The core of CHAT2DATA is not based on prompting, but more importantly on a dynamic methodology that decomposes a complex process into smaller sub-processes. It usually dynamically determines how and what to query the LLMs for each sub-process, and how to integrate their results to produce a final result”).
Regarding claim 11, Gottlob teaches: The method of claim 1, wherein the one or more operational constraints comprise a time constraint for the unstructured compute process, a quality constraint for the unstructured compute process (¶ 80, “The user may also specify a minimum confidence value c, for example, via a command @minconf (c), which means that only new results with at least confidence c should be inserted into the database”), a processing cost constraint for the unstructured compute process (¶¶ 866-870, “These criteria may be one or more of a criteria set comprising: [0868] (a) efficiency of the solution, [0869] (b) estimated quality of the result, [0870] (c) cost-efficiency”), a resource capability constraint for the unstructured compute process, or any combination thereof.
Regarding claim 12, Gottlob teaches: The method of claim1, wherein the allocation scheme identifies the plurality of structured sub-processes into which the unstructured compute process is to be decomposed (¶ 29, “a dynamic methodology that decomposes a complex process into smaller sub-processes”), the plurality of compute resources to which the plurality of structured sub-processes are to be assigned (¶ 363, “These sub-tasks can then be distributed across different machines or computational resources to run in parallel”), and a projected set of operational constraints for the unstructured compute process (¶ 856, “the controller determines according to one or more criteria that a complementary module can achieve a better performance than the LLM-based solution for the sub-task, the one or more criteria belonging to a group comprising: efficiency of the solution, estimated quality of the result, and cost-efficiency”).
Regarding claim 13, Bhadauria teaches: The method of claim 1, further comprising: monitoring a completion status of one or more ongoing structured sub-processes (col. 4:28-29, “As processors finish tasks, they notify a task master and wait for the next task”), wherein allocating the plurality of structured sub-processes to the plurality of compute resources is based at least in part on the completion status (col. 5:1-4, “in determining at block 210 how many nodes x to distribute the task to and/or how to distribute the task at blocks 216, 218, it may be useful to know how the task spawns new copies when it gets overloaded”).
Regarding claim 15, Bhadauria teaches: The method of claim 1, further comprising: detecting a failure or performance issue associated with execution of at least one structured sub-process of the plurality of structured sub-processes (col. 3:39-41, “monitoring the health of running compute instances, replacing impaired instances with new instances”); and dynamically re-allocating the at least one structured sub-process to another compute resource based at least in part on the failure or performance issue (col. 3:41-42, “and dynamically scaling a number of instances in a fleet as described above”).
Regarding claim 16, Gottlob teaches: The method of claim 1, wherein the allocation scheme is developed using a generative artificial intelligence (AI) model of the LLM (¶ 942, “A machine learning model or an LLM specifically designed for dynamic decision-making can be either pre-trained or fine-tuned, enabling it to acquire the required knowledge to effectively handle the particular problem type in question”).
Regarding claim 17, Gottlob teaches: The method of claim 1, wherein the one or more operational constraints are provided by a user of the data processing system (¶ 80, “The user may also specify a minimum confidence value c, for example, via a command @minconf (c), which means that only new results with at least confidence c should be inserted into the database”).
Claims 19 and 20 recite commensurate subject matter as claim 1. Therefore, they are rejected for the same reasons.
Claim(s) 3-5 and 7 is/are rejected under 35 U.S.C. 103 as being unpatentable over Gottlob and Bhadauria, as applied above, and further in view of Bates (US 7,730,119).
Regarding claim 3, Gottlob and Bhadauria do not teach; however, Bates discloses: decomposing the unstructured compute process into the plurality of structured sub-processes based at least in part on a complexity of the unstructured compute process (col. 2:53-55, “The determination of the number of nodes x may be based on a vector of resource quantities that describes both resource availability and the characteristics of the request”), a quantity of compute resources available to execute the unstructured compute process (col. 4:35-36, “Divisible-by-N tasks are tasks that can be divided up as much as there are available resources”), and respective processing capabilities of the available compute resources (col. 2:55-58, “Such a vector may include parameters such as processor cycles, memory space, storage (e.g., hard disk) space and network bandwidth required to process the task”).
It would have been obvious to a person having ordinary skill in the art, at the effective filing date of the invention, to have applied the known technique of decomposing the unstructured compute process into the plurality of structured sub-processes based at least in part on a complexity of the unstructured compute process, a quantity of compute resources available to execute the unstructured compute process, and respective processing capabilities of the available compute resources, as taught by Bates, in the same way to the unstructured compute process, as taught by Gottlob and Bhadauria. Both inventions are in the field of decomposing larger tasks into subtasks, and combining them would have predictably resulted in “distribution of computing tasks among multiple processors,” as indicated by Bates (col. 1:7-8).
Regarding claim 4, Gottlob and Bhadauria do not teach; however, Bates discloses: allocating at least one structured compute sub-process to a first compute resource of the plurality of compute resources based at least in part on a likelihood of the first compute resource successfully completing the at least one structured compute sub-process (col. 5:30-34, “Execution time estimates (and other resource usage estimates) may be required in order to determine the number of processor nodes x at block 210 and to determine if a particular task should be allocated locally, on a local are network (LAN), or on a wide area network (WAN), e.g., at block 216”).
It would have been obvious to a person having ordinary skill in the art, at the effective filing date of the invention, to have applied the known technique of allocating at least one structured compute sub-process to a first compute resource of the plurality of compute resources based at least in part on a likelihood of the first compute resource successfully completing the at least one structured compute sub-process, as taught by Bates, in the same way to the allocating, as taught by Gottlob and Bhadauria. Both inventions are in the field of decomposing larger tasks into subtasks, and combining them would have predictably resulted in “distribution of computing tasks among multiple processors,” as indicated by Bates (col. 1:7-8).
Regarding claim 5, Gottlob and Bhadauria do not teach; however, Bates discloses: re-allocating at least one structured sub-process from a first compute resource to a second compute resource (col. 3:48-49, “If fewer than x nodes are available the task may be split to available nodes, as indicated at block 218”) based at least in part on a change to the one or more operational constraints for the unstructured compute process (col. 3:27-28, “It is also noted that the resources and parameters may change over time”).
It would have been obvious to a person having ordinary skill in the art, at the effective filing date of the invention, to have applied the known technique of re-allocating at least one structured sub-process from a first compute resource to a second compute resource based at least in part on a change to the one or more operational constraints for the unstructured compute process, as taught by Bates, in the same way to the method, as taught by Gottlob and Bhadauria. Both inventions are in the field of decomposing larger tasks into subtasks, and combining them would have predictably resulted in “distribution of computing tasks among multiple processors,” as indicated by Bates (col. 1:7-8).
Regarding claim 7, Gottlob and Bhadauria do not teach; however, Bates discloses: generating a process dependency graph that contains information associated with the plurality of structured sub-processes and the plurality of compute resources to which the plurality of structured sub-processes are allocated (col. 4:22-25, “In Complex start-to-finish tasks a static task file describes how tasks depend on each other and their required data/code. An optimal number of processors may be statically determined from the task file”).
It would have been obvious to a person having ordinary skill in the art, at the effective filing date of the invention, to have applied the known technique of generating a process dependency graph that contains information associated with the plurality of structured sub-processes and the plurality of compute resources to which the plurality of structured sub-processes are allocated, as taught by Bates, in the same way to the method, as taught by Gottlob and Bhadauria. Both inventions are in the field of decomposing larger tasks into subtasks, and combining them would have predictably resulted in “distribution of computing tasks among multiple processors,” as indicated by Bates (col. 1:7-8).
Claim(s) 14 is/are rejected under 35 U.S.C. 103 as being unpatentable over Gottlob and Bhadauria, as applied above, and further in view of Mahamuni (US 11,656,932).
Regarding claim 14, Gottlob and Bhadauria do not teach; however, Mahamuni discloses: using a machine learning model to predict a likelihood of a first compute resource successfully completing a first structured sub-process (col. 3:47-52, “the use of predictive analytics and machine learning with the processing of batch application jobs to analyze batch job parameters and predict batch job failures for both currently running batch jobs and batch jobs within a job queue which have not yet been picked up for processing”), wherein the machine learning model is trained on historic performance data associated with the first compute resource (abstract, “Mappings of processes used by each batch job, historical data from previous batch jobs and data identifying the success or failure thereof, builds an archive that can be refined over time through active learning feedback and AI modeling to predictively recommend actions that have historically prevented or remediated failures from occurring”); and allocating the first structured sub-process to the first compute resource if the likelihood is above a threshold (col. 17:1-4, “predictions of failures may be determined wherein more than one parameter of the system management goes beyond a known threshold at a particular point in time during processing of a batch job”).
It would have been obvious to a person having ordinary skill in the art, at the effective filing date of the invention, to have applied the known technique of using a machine learning model to predict a likelihood of a first compute resource successfully completing a first structured sub-process, wherein the machine learning model is trained on historic performance data associated with the first compute resource; and allocating the first structured sub-process to the first compute resource if the likelihood is above a threshold, as taught by Mahamuni, in the same way to the unstructured compute process, as taught by Gottlob and Bhadauria. Both inventions are in the field of using LLMs to solve large tasks, and combining them would have predictably resulted in “machine learning and predictive analytics and more particularly to predictively identifying, remediating and preventing occurrences of batch job failures,” as indicated by Mahamuni (col. 1:7-9).
Claim(s) 18 is/are rejected under 35 U.S.C. 103 as being unpatentable over Gottlob and Bhadauria, as applied above, and further in view of Miller (US 2024/0289545).
Regarding claim 18, Gottlob and Bhadauria do not teach; however, Miller discloses: the one or more operational constraints are identified by the LLM (¶ 46, “the plan creation component may leverage the LLM 130 to determine a context for the prompt 112, as well as identify one or more of a goal 154, a solution plan 156, and other limitations or conditions of a solution plan”).
It would have been obvious to a person having ordinary skill in the art, at the effective filing date of the invention, to have applied the known technique of the one or more operational constraints are identified by the LLM, as taught by Miller, in the same way to the unstructured compute process, as taught by Gottlob and Bhadauria. Both inventions are in the field of using LLMs to solve large tasks, and combining them would have predictably resulted in “machine learning and predictive analytics and more particularly to predictively identifying, remediating and preventing occurrences of batch job failures,” as indicated by Miller (col. 1:7-9).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Schrader (US 2025/0110786) discloses “automatically solving computational tasks or problems” (abstract), which relates to the disclosed “unstructured compute process to be executed” (claim 1).
Lo (US 12,061,970) discloses “The natural language request and the context attributes are input into the model orchestration large language model (LLM) to output instructions to machine learning (ML) agents based on the context attributes” (abstract), which relates to the disclosed “decompose the unstructured compute process into a plurality of structured sub-processes and allocate the plurality of structured sub-processes to a plurality of compute resources of the data processing system in accordance with the one or more operational constraints” (claim 1).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JACOB D DASCOMB whose telephone number is (571)272-9993. The examiner can normally be reached M-F 9:00-5:00.
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, Pierre Vital can be reached at (571) 272-4215. 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.
/JACOB D DASCOMB/Primary Examiner, Art Unit 2198