Prosecution Insights
Last updated: October 02, 2026
Application No. 17/975,858

USING RULE ENGINE FOR MANAGING APPLICATION PROGRAMMING INTERFACE OBJECTS IN AN OPERATOR FRAMEWORK

Non-Final OA §103
Filed
Oct 28, 2022
Examiner
ESPANA, CARLOS ALBERTO
Art Unit
2199
Tech Center
2100 — Computer Architecture & Software
Assignee
Red Hat Inc.
OA Round
3 (Non-Final)
69%
Grant Probability
Favorable
3-4
OA Rounds
0m
Est. Remaining
92%
With Interview

Examiner Intelligence

Grants 69% — above average
69%
Career Allowance Rate
20 granted / 29 resolved
+14.0% vs TC avg
Strong +23% interview lift
Without
With
+23.2%
Interview Lift
resolved cases with interview
Typical timeline
3y 6m
Avg Prosecution
21 currently pending
Career history
58
Total Applications
across all art units

Statute-Specific Performance

§101
12.6%
-27.4% vs TC avg
§103
62.4%
+22.4% vs TC avg
§102
9.8%
-30.2% vs TC avg
§112
11.8%
-28.2% vs TC avg
Black line = Tech Center average estimate • Based on career data from 29 resolved cases

Office Action

§103
Response to Arguments Applicant’s arguments with respect to claim(s) 1,3,5-9,11,13-17 and 19 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. 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, 3, 5-9, 11, 13-17 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Shen (US 11436057 B2) in view of Okman (US 11550615 B2) and Proctor (US 8418135 B2). Regarding claim 1, Shen teaches: A method comprising. (Claim 1. A computer-implemented method for managing a plurality of resources in a container orchestration system, the method being executed by one or more processors and comprising) determining whether the object is an API object of a containerized computing cluster, wherein the containerized computing cluster comprises a plurality of virtualized computing environments running on one or more host computer systems; and (col 8, line 15-20.The system 100 performs automated processes to deploy a logical network that connects the deployed machines and segregates these machines from other machines in the datacenter set. The machines are connected to the deployed logical network of a VPC in some embodiments. Col 8, line 32-40.The API processing server 140 parses each received intent-based API request into one or more individual requests. When the requests relate to the deployment of machines, the API server provides these requests directly to compute managers and controllers 117, or indirectly provide these requests to the compute managers and controllers 117 through an agent running on the Kubernetes master node 135. The compute managers and controllers 117 then deploy VMs and/or Pods on host computers in the availability zone. col 9, line 42-46 “In some examples, the modify action can be implemented by using a JavaScript Object Notation (JSON) patch. The JSON patch action can be used to describe changes to the target resource. In other words, the JSON patch action can be configured to modify the target resources. See also col 8, line 52-61.) responsive to determining that the object is an API object of the containerized computing cluster, adding the object to a definition of the containerized computing cluster. (col 9, line 29-43. The API server provides the CRDs that have been defined for these extended network constructs to the NCP for it to process the APIs that refer to the corresponding network constructs. The API server also provides configuration data from the configuration storage 125 to the NCP 145. The configuration data in some embodiments include parameters that adjust the pre-defined template rules that the NCP follows to perform its automated processes. The NCP performs these automated processes to execute the received API requests in order to direct the SDN manager cluster 110 to deploy the network elements for the VPC. For a received API, the control system 100 performs one or more automated processes to identify and deploy one or more network elements that are used to implement the logical network for a VPC.) Shen does not appear to explicitly teach: identifying an object by processing, by a processing device implementing a rule engine that utilizes a rule, a data item associated with a service defined by an application programming interface (API), wherein the data item associated with the service defined by the API comprises Custom Resource (CR) data, wherein the rule specifies at least one constraint and at least one action to perform if the at least one constraint is satisfied, and wherein processing the data item comprises:; and responsive to matching the fact to the at least one constraint of the rule, generating the object by executing the at least one action However, Okman teaches: describes col 3, line 40-56 Implementations can include actions of executing, by a policy controller, a policy custom resource, the policy custom resource defining a policy that is to be applied to one or more target resources within a cluster of a cloud computing platform, the policy custom resource including a policy target defining one or more parameters for identifying a resource as a target resource, a policy condition defining one or more conditions of a target resource that are to be evaluated, and a policy action defining one or more actions that are to be executed in response to the one or more conditions evaluating to true, receiving, by the policy controller, a set of target resources based on the policy target of the policy custom resource, evaluating, by the policy controller and for each target resource in the set of target resources, the policy condition, and in response to the policy condition returning as true for a target resource, executing the policy action for the target resource. col 12, line 65- col 13, line 9 . The policy custom resource is requested (304) and received (306). For example, in response to the event, the policy controller requests the policy custom resource and receives the policy custom resource (e.g., as a computer-readable filed). As described in further detail herein, the policy custom resource includes a policy target defining one or more parameters (e.g., type, label) for identifying a resource as a target resource, a policy condition defining one or more conditions of a target resource that are to be evaluated, and a policy action defining one or more actions that are to be executed in response to the one or more conditions evaluating to true. See also col 8, line 22-59, col 7, line 11-30 and. Accordingly, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention, having the teachings of Shen and Okman before them, to include Okmas’s policy controller in Shen’s system to deploy resources. One would have been motivated to make such a combination to more increase the flexibly and efficiency on the deployment with the need of many custom controllers. Shen does not appear to explicitly teach evaluating the rule against a fact received from a working memory by comparing the fact to the at least one constraint specified by the rule, wherein the working memory comprises a data repository storing a current set of facts for the rule engine However Proctor teaches: col 3, line 11-36 As mentioned above, a rule is a logical construct for describing the operations, definitions, conditions, and/or constraints that apply to some predetermined data to achieve a goal. In some embodiments, a rule is in the form of a two-part structure with a Left Hand Side (LHS) and a Right Hand Side (RHS). Further, a rule may have additional attributes, such as salience, agenda group, auto-focus, activation group, no-loop, duration, etc. In some embodiments, the LHS of a rule includes Conditional Elements (CE) and Patterns, which are used to facilitate the encoding of propositional and first order logic. The term Pattern is used to indicate Constraints on a fact type. Some examples of CEs include and, or, not, exist, forall, accumulate, etc. Some examples of Constraints include Literal Constraint, Bound Variable Constraint, Return Value, Predicate, etc. As facts are asserted and modified in a working memory, a rule engine matches the facts against the LHS conditions of the rules. When all the LHS conditions of a rule are met and determined to be true, the rule and those matched facts are activated. When a rule is activated, the rule is placed onto an agenda of a rule engine for potential execution, where the Actions of the RHS of the rule, called the Consequence, are executed. Col 6, line 38-58 In some embodiments, a working memory is the main class for using the rule engine at runtime. The working memory holds references to data (i.e., facts) that has been "asserted" into the working memory (until retracted). Further, the working memory is the place where the interaction with the application occurs. Working memories are stateful objects. They may be shortlived, or longlived. If a rule engine is executed in a stateless manner, then a RuleBase object is used to create a new working memory for each session, and the working memory is discarded when the session is finished. Note that creating a working memory is typically a low cost operation. In an alternative approach, a working memory is kept around for a longer time (such as a conversation) and kept updated with new facts. To dispose of a working memory, a dispose( ) method may be used. The dispose( ) method removes the reference from the parent RuleBase. Since this is a weak reference (as discussed above in the section on RuleBase), the reference would eventually be garbage collected. The term working memory action may refer to assertions, retractions, and/or modifications of facts in the working memory. Accordingly, it would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention, having the teachings of Shen and Proctor before them, to include Proctor’s working memory and fact evaluation in Shen’s system to deploy resources. To improve automation and decision making during resource deployment. Regarding claim 3, Okman teaches: The method of claim 1, further comprising: creating an API rule by inserting the data item into the at least one constraint specified by the rule. (col 8, line 4-21. In some implementations, the policy custom resource can be used to describe a desired state for specific resources (i.e., the policy target) in the cluster and starts an action (i.e., the policy action) to move the resources to this desired state under certain condition(s) (i.e., the policy condition(s)). For example, the policy custom resource can be configured to, for example and without limitation define: a target object that declares how to select the resources that the policy is to be applied to; a condition to be tested on the selected resource(s), which is evaluated at runtime; the action to perform on each resource when the condition(s) is/are met; a time interval for how often the condition should be checked; a “done” condition that is resolved to true if and only if the resource would be unchanged by having the policy applied to it (i.e., was already affected by this policy in an earlier iteration); and/or a percentage value, which describes the percentage-amount of the targeted resources that meet the policy condition that action is to be taken on.) Same motivation as claim 1. Regarding claim 5, Okman teaches: The method of claim 1, further comprising: generating or updating a second fact as a result of adding the object; evaluating the rule against the second fact by comparing the second fact to the at least one constraint specified by the rule; and responsive to matching the second fact to the at least one constraint specified by the rule, generating a second object; determining whether the second object is an API object of the containerized computing cluster; and responsive to determining that the second object is an API object of the containerized computing cluster, adding the second object to the definition of the containerized computing cluster. (col 8, line 8-46. As discuss further detail herein, the policy custom resource includes the policy target, the policy condition and the policy action. In this example, when the policy controller 206 deploys the policy custom resource, the policy target, the policy condition and the policy action can be performed sequentially and iteratively.) Same motivation as claim 1 Regarding claim 6, Shen teaches: The method of claim 1, further comprising: determining whether there is an unprocessed object; responsive to determining that there is an unprocessed object, determining whether the unprocessed object is an API object of the containerized computing cluster; and responsive to determining that the unprocessed object is an API object of the containerized computing cluster, adding the unprocessed object to the definition of the containerized computing cluster. (col 8, line 8-47. In some embodiments, NCP 145 registers for event notifications with the API server 140, e.g., sets up a long-pull session with the API server to receive all CRUD (Create, Read, Update and Delete) events for various CRDs that are defined for networking. In some embodiments, the API server 140 is a Kubernetes master VM, and the NCP 145 runs in this VM as a Pod. NCP 145 in some embodiments collects realization data from the SDN resources for the CRDs and provide this realization data as it relates to the CRD status) Regarding claim 7, Okman teaches: The method of claim 1, further comprising: creating or modifying the Custom Resource (CR) data. (col 4, line 34-38. The controllers also update the Kubernetes central database with the current resource status. In some instances, a user interacts with the cluster by modifying the required state of a resource and waiting for the relevant controller to modify the actual state of the resource to match. Col 9, line 41-46. In some examples, the policy action includes a modify action. In some examples, the modify action can be implemented by using a JavaScript Object Notation (JSON) patch. The JSON patch action can be used to describe changes to the target resource. In other words, the JSON patch action can be configured to modify the target resources. ) Same motivation as claim 1 Regarding claim 8, Shen teaches: The method of claim 1, wherein the object comprises at least one of: a default API object or a domain knowledge API object. (col 14, line 8-18. The control system 100 deploys the sub-networks 504-510 based four virtual network types that are defined through Virtual Network CRDs. To deploy some or all of the unique sub-networks, the network control system of some embodiments receives and processes APIs that refer to Virtual Network CRDs to define the attributes of such sub-networks. As mentioned above, the virtual-network CRDs in some embodiments include a network type value that defines a network type for the virtual networks deployed using these CRDs) Regarding claim 9, Shen teaches: A system comprising: a memory; and a processing device coupled to the memory, the processing device implementing a rule engine that utilizes a rule, the processing device to perform operations comprising:. (FIG. 31 conceptually illustrates a computer system 3100 with which some embodiments of the invention are implemented.) Regarding claim 11, the claim recites similar limitation as corresponding claim 3 and is rejected for similar reasons as claim 3 using similar teachings and rationale. Regarding claim 13, the claim recites similar limitation as corresponding claim 5 and is rejected for similar reasons as claim 5 using similar teachings and rationale. Regarding claim 14, the claim recites similar limitation as corresponding claim 6 and is rejected for similar reasons as claim 6 using similar teachings and rationale. Regarding claim 15, the claim recites similar limitation as corresponding claim 7 and is rejected for similar reasons as claim 7 using similar teachings and rationale. Regarding claim 16, the claim recites similar limitation as corresponding claim 8 and is rejected for similar reasons as claim 8 using similar teachings and rationale. Regarding claim 17, Shen teaches: A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device implementing a rule engine that utilizes a rule, cause the processing device to perform operations comprising: . (Claim 11. A non-transitory machine readable medium storing a program for deploying network elements for a set of machines in a set of one or more datacenters, the program comprising sets of instructions for:) Regarding claim 19, the claim recites similar limitation as corresponding claim 8 and is rejected for similar reasons as claim 8 using similar teachings and rationale. Conclusion THIS ACTION IS MADE FINAL. 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 CARLOS A ESPANA whose telephone number is (703)756-1069. The examiner can normally be reached Monday - Friday 8 a.m - 5 p.m EST. 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, LEWIS BULLOCK JR can be reached at (571)272-3759. 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. /C.A.E./Examiner, Art Unit 2199 /LEWIS A BULLOCK JR/Supervisory Patent Examiner, Art Unit 2199
Read full office action

Prosecution Timeline

Oct 28, 2022
Application Filed
Jul 09, 2025
Non-Final Rejection mailed — §103
Oct 09, 2025
Response Filed
Dec 23, 2025
Final Rejection mailed — §103
Feb 20, 2026
Response after Non-Final Action
Mar 20, 2026
Request for Continued Examination
Mar 25, 2026
Response after Non-Final Action
Sep 30, 2026
Non-Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12717665
Prioritized Message Access Lists for Inter-Process Communication
3y 0m to grant Granted Aug 25, 2026
Patent 12675325
PIPELINE FOR RESOURCE AWARE WORKLOAD PLACEMENT USING A EUCLIDEAN-BASED PROJECTION METHOD
4y 2m to grant Granted Jul 07, 2026
Patent 12632305
INCREMENTAL ANALYSIS OF LEGACY APPLICATIONS
4y 4m to grant Granted May 19, 2026
Patent 12632307
Background Job Processing Framework
3y 8m to grant Granted May 19, 2026
Patent 12613737
RELATIVE DISPLACEABLE CAPACITY INTEGRATION
4y 7m to grant Granted Apr 28, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

3-4
Expected OA Rounds
69%
Grant Probability
92%
With Interview (+23.2%)
3y 6m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 29 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month