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 .
This action is responsive to the Applicant’s amendments filed on 04/15/2026. Claims 1-7, 10-17, and 20 remain pending in the application. Claims 1, 10-11, and 20 have been amended. Claims 8-9 and 18-19 have been canceled. Any examiner’s note, objection, and rejection not repeated is withdrawn due to Applicant’s amendment.
Priority
Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Priority documents have been electronically received, available 08/24/2023.
This application claims the priority benefit to Chinese Patent Application No. 202310890194.6, filed 07/19/2023. The priority date is acknowledged by the Examiner.
Examiner’s Note
The Examiner cites particular columns, paragraphs, figures, and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may also apply. It is respectfully requested that, in preparing responses, the Applicant fully consider the references in its entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner.
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, 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-2, 7, 10-12, 17, 20 are rejected under 35 U.S.C. 103 as being unpatentable over Armbrust et al. (US 20220309104 A1) hereafter Armbrust in view of Miyata et al. (US 5323387 A) hereafter Miyata, further in view of Wei et al. (US 20100318343 A1) hereafter Wei, further in view of Shen et al. (US 20220038368 A1) hereafter Shen.
Regarding claim 1, Armbrust teaches:
a memory; and a processor, electrically connected to the memory (Paragraph 15; “such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor”) and configured to execute a data flow (Paragraph 17; “A system for dataflow graph processing is disclosed. The system comprises a communication interface and a processor.”),
wherein the processor executes task nodes in the data flow and generates output data (Paragraphs 31 and 37; “The dataflow graph deployer is configured to connect the dataflow graph to one or more external sources indicated by one or more source nodes included in the dataflow graph. Subsequently, the dataflow graph deployer is configured to execute the dataflow graph”, where the nodes in the dataflow graph correspond to the applicant’s task nodes. Further, “The dataflow graph is comprised of a plurality of flows that read data from one or more inputs, transform the data using relational or functional operations, and write the results to destination. Inputs to a flow can either be a source or a table”);
wherein the processor determines whether a data state of the output data reaches a target data state (Paragraph 108; “the expectation node checks a condition on input data… [and] drops an input data in response to the input data not meeting a condition (e.g., shunt process to a fork node that directs processing to a next input data)”, where the expectation node, implemented by the processor, evaluates output data against a defined expectation, corresponding to determining whether output data has reached a target data state), so as to decide whether to acquire a next task node of the task nodes in the data flow (Paragraphs 107-108; “finds an ordering of the nodes… [and] reflects the data dependencies”, and “shunt process to a fork node that directs processing to a next input data”, where the DAG defines task nodes and execution order. The condition-based behavior of the expectation node determines whether processing proceeds to a subsequent node in the data flow or is stopped/redirected, corresponding to a decision as to whether to acquire the next task node);
wherein when the processor determines that the data state of the output data does not reach the target data state (Paragraph 108; “checks a condition on input data… [and] in response to an input data not meeting a condition…”, where the expectation node evaluates data against an expected condition and explicitly detects when the data fails to meet the target state), the processor acquires the next task node (Paragraphs 107-108; “ordering of the nodes” and “node subsequent to the insertion”, where the DAG defines a sequence of task nodes, and upon completion one such node, processing advances to a subsequent node), and the processor decides whether to execute the next task node in a data branching mode or in a data shunting mode (Paragraph 108; “forking on a condition”, “branches processing”, “stops processing”, shows that the expectation node conditionally routes execution either by branching to another node or by stopping/shunting processing);
wherein when the processor determines that the data state of the output data reaches the target data state (Paragraph 140; “it is determined whether an expectation is met”, where meeting the expectation corresponds to the output data reaching a target data state), the processor ends the data flow (Paragraphs 140 and 145; “in the event there are no more nodes to traverse, process 700 proceeds to step 716” where “the test is ended”, in which reaching a state where no further nodes are able to be traversed represents termination of the data flow).
the processor executes the next task node in the data branching mode (Paragraphs 107-108; “forking on a condition [and] branches processing”, where the processor conditionally routes execution resulting in branching to a subsequent node in the data flow, corresponding to executing the next task node in a data branching mode).
Armbrust does not teach that it is performed according to a data feature set and a branch identifier.
However, Miyata teaches:
according to a data feature set and a branch identifier (Col. 14, lines 41-44; “packet data is branched or shunted, based on the result of comparison between the identifier included in the packet data and the predetermined branch destination”, where the identifier included in the data corresponds to the data feature set, the predetermined branch destination corresponds to a branch identifier, and their comparison determines whether branching or shunting is performed).
Armbrust and Miyata are considered to be analogous to the claimed invention because they are in the same field of task management. 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 Armbrust to incorporate the teachings of Miyata and decide whether to execute the next task node in a particular mode according to a data feature set of branch identifier. A person of ordinary skill in the art would have recognized the utilization of feature-based conditions and branch identifiers as a known control technique for directing execution paths in data flow systems, and the implementation of such would have yielded the predictable result of deterministic task selection based on data characteristics and the identified branch.
Armbrust in view of Miyata does not teach wherein each of data features in the data feature set comprises a data feature code, feature name information, feature matching mode information, and feature matching rule information.
However, Wei teaches:
wherein each of data features in the data feature set comprises a data feature code (Paragraph 23; “state code returned by the data access interface”), feature name information (Paragraph 23; “it is compulsory for a supervisory information system application to afford its application name or identification”, where the data access layer uses named entities in its feature table), feature matching mode information (Paragraph 23; “checked according to some rules set by the user” and “check whether the data request is authorized”, where user-defined rules specify how a feature is evaluated or matched, corresponding to a feature matching mode), and feature matching rule information (Paragraph 23; “a table indicating which feature can be read and/or written by which applications”, where the table defines explicit rules governing how features are matched against requesting applications).
Armbrust, Miyata, and Wei are considered to be analogous to the claimed invention because they are in the same field of task management. 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 Armbrust in view of Miyata to incorporate the teachings of Wei and have the data features in the data feature set comprise a data feature code, feature name information, feature matching mode information, and feature matching rule information. A person of ordinary skill in the art would have recognized the representation of each feature with a code, descriptive name, and rules/modes for matching against input requests to be a known method in the art, and application of this method would have yielded the predictable result of enabling consistent deterministic evaluation of each feature during data flow processing to ensure downstream tasks may reliably interpret and act upon the feature set.
Armbrust in view of Miyata, further in view of Wei does not teach the feature matching rule information is configured to get a value from a flow variable.
However, Shen teaches:
the feature matching rule information is configured to get a value from a flow variable (Paragraph 111; “the flow tracing request specifies parameters for the flow tracing operation... users can define the tracing requests using high-level expressions... translated into network addresses and other data”, where the matching rule is defined to retrieve values from flow-related variables supplied as parameters or expressions of the flow, corresponding to configuring the feature matching rule to get a value from a flow variable).
Armbrust, Miyata, Wei, and Shen are considered to be analogous to the claimed invention because they are in the same field of task management. 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 Armbrust in view of Miyata, further in view of Wei to incorporate the teachings of Shen and have the feature matching rule information configured to get a value from a flow variable. A person of ordinary skill in the art would have recognized the use of a flow variable to be a known method in workflow, dataflow, and network tracing systems, and the utilization of such would have yielded the predictable result of allowing the next task node to be dynamically determined based on the current state or attributes of the flow to ensure consistent behavior.
Claim 11 recites similar limitations as those of claim 1. Claim 11 is rejected for similar reasons as those of claim 1.
Regarding claim 2, Armbrust in view of Miyata, further in view of Wei, further in view of Shen teach the system of claim 1. Armbrust teaches:
wherein the processor uses the output data as input data for the next task node (Paragraphs 67-68; “writes the results to dataset 222” [and] “Flow 216 transforms data associated with dataset 222”, where the results written by an earlier flow constitute output data which is consumed as input data by a dependent subsequent node in the data flow graph, corresponding to the next task node using the prior output as its input).
Claim 12 recites similar limitations as those of claim 2. Claim 12 is rejected for similar reasons as those of claim 2.
Regarding claim 7, Armbrust in view of Miyata, further in view of Wei, further in view of Shen teach the system of claim 1. Wei teaches:
wherein the data state of the output data comprises a data state code (Paragraph 23; data access layer... informs [the] applications about data validation status through a state code”), a data state name (Paragraph 23; “it is compulsory for a supervisory information system application to afford its application name or identification”, where the data access layer associates the returned state code with an identified state such that the state is identifiable by a name or identifier understood by the application), and a data feature (Paragraph 23; “a table indicating which feature can be read and/or written by which applications”, where the data access layer tracks features associated with the data and uses those features when validating access).
It would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have incorporated the teachings of Wei and have the data state of the output data comprise a data state code, data state name, and a data feature. A person of ordinary skill in the art would have been motivated to represent the data state of output data using a code, name, and feature, because returning a coded state value with an interpretable identifier is a known technique in data access interfaces for communicating status and conditions. Applying this known method would have yielded the predictable outcome of enabling consistent interpretation of data status and feature availability.
Claim 17 recites similar limitations as those of claim 7. Claim 17 is rejected for similar reasons as those of claim 7.
Regarding claim 10, Armbrust in view of Miyata, further in view of Wei, further in view of Shen teaches the system of claim 1. Shen teaches:
wherein the feature matching rule information is an expression or a request address of an application programming interface (Paragraph 111; “users can define the tracing requests using high-level expressions and Kubernetes concepts, which are translated into network addresses and other data required for the flow tracing operation”, which may be “the Kubernetes API”. The tracing rule is explicitly defined as a high-level expression or as translated network/request address information used by an interface such as the Kubernetes API, corresponding to feature matching rule information being based on an expression or an API request address).
Armbrust, Miyata, Wei, and Shen are considered to be analogous to the claimed invention because they are in the same field of task management. 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 Armbrust in view of Miyata, further in view of Wei to incorporate the teachings of Shen and implement the feature matching rule information as an expression or a request address of an API. A person of ordinary skill in the art would have recognized that defining rules as expressions or references to external interface addresses for retrieving runtime values is known in the art, and the application of this method would yield the predictable outcome of enabling dynamic, determinable evaluation of features, ensuring that subsequent task nodes are executed correctly based on the evaluated rule.
Claim 20 recites similar limitations as those of claim 10. Claim 20 is rejected for similar reasons as those of claim 10.
Claims 3-4 and 13-14 are rejected under 35 U.S.C. 103 as unpatentable over Armbrust in view of Miyata, further in view of Wei, further in view of Shen, further in view of Mericas et al. (US 6694427 B1) hereafter Mericas.
Regarding claim 3, Armbrust in view of Miyata, further in view of Wei, further in view of Shen teach the system of claim 1. Armbrust teaches:
wherein the processor acquires the data state of the output data (Paragraph 108; “the expectation node checks a condition on input data”, where checking the condition requires evaluating the state of the data produced by a prior node, corresponding to obtaining the data state of the output data) and matches the data state with the data flow (Paragraphs 107-108; “an ordering of the nodes... that reflects the data dependencies” and “connect input of expectation node to output of node prior to insertion”, where the data flow graph defines how data moves between nodes and the expectation node evaluates the data state in the context of its position within the DAG, thereby matching the evaluated data state to the corresponding location in the data flow);
wherein the processor queries the next task node in the data flow (Paragraphs 107-108; “finds an ordering of the nodes... that reflect the data dependencies” and “node subsequent to the insertion”, where the processor identifies the next node to process in the data flow graph, corresponding to querying the next task node in the execution order) according to the data state (Paragraph 108; “the expectation node checks a condition on the input data”, where the processor evaluates the state of output data from the prior node to determine the next action, corresponding to using the data state to query the next node).
Armbrust in view of Miyata, further in view of Wei, further in view of Shen does not teach the data feature set, and the branch identifier.
However, Mericas teaches:
the data feature set (Col. 7, line 66 – Col. 8, line 13; “information... such as the address or unique identifier of the branch instruction”, where attributes of the data are used by the processor to determine control flow, corresponding to the data feature set), and the branch identifier (Col. 7, line 66 – Col. 8, line 13; “address of the instruction to which the program is redirected and the number of instructions executed since the last redirect”, where the processor uses branch-related information stored in traces to determine which path or node to execute next, corresponding to the claimed branch identifier).
Armbrust, Miyata, Wei, Shen, and Mericas are considered to be analogous to the claimed invention because they are in the same field of task management. 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 Armbrust in view of Miyata, further in view of Wei, further in view of Shen to incorporate the teachings of Mericas and have queried the next task node according to the data state, the data feature set, and the branch identifier. A person of ordinary skill in the art would have recognized that state information, feature-based conditions, and identifiers are known techniques for labeling graphs, workflow engines, and for use in conditional execution systems, the implementation of such yielding the predictable result of selecting the appropriate next task based on current data condition and identified execution paths.
Claim 13 recites similar limitations as those of claim 3. Claim 13 is rejected for similar reasons as those of claim 3.
Regarding claim 4, Armbrust in view of Miyata, further in view of Wei, further in view of Shen further in view of Mericas teaches the system of claim 3. Armbrust teaches:
wherein when the processor determines the number of the next task node is plural (Paragraph 107-108; “finds an ordering of the nodes... reflects the data dependencies” and “the expectation node inserts... forking on a condition”, where the processor identifies multiple subsequent nodes in the DAG when a conditional fork occurs, corresponding to determining that the number of next task nodes is plural), the processor decides whether to execute the next task nodes in the data branching mode or in the data shunting mode (Paragraph 108; “branches processing to output count... shunt process to a fork node”, where the expectation node conditionally routes processing either to multiple nodes via branching, or stops/shunts processing, corresponding to deciding whether to execute the next nodes in either data branching or data shunting mode).
Miyata teaches:
according to the branch identifier (Col. 14, lines 41-48; “packet data is branched or shunted, based on the result of comparison between the identifier included in the packet data and the predetermined branch destination”, where the branch identifier determines which path the processor takes among multiple possible nodes, implementing conditional branching or shunting).
Claim 14 recites similar limitations as those of claim 4. Claim 14 is rejected for similar reasons as those of claim 4.
Claims 5-6 and 15-16 are rejected under 35 U.S.C. 103 as being unpatentable over Armbrust in view of Miyata, further in view of Wei, further in view of Shen, further in view of Mericas, further in view of Grube et al. (US 20120054581 A1) hereafter Grube.
Regarding claim 5, Armbrust in view of Miyata, further in view of Wei, further in view of Shen, further in view of Mericas teaches the system of claim 4. Armbrust teaches:
wherein when the processor decides to execute the next task nodes in the data shunting mode (Paragraph 108; “shunt process to a fork node... in response to not meeting a condition”).
Miyata teaches:
according to the branch identifier (Col. 14, lines 41-48; “packet data is branched or shunted, based on the result of comparison between the identifier included in the packet data and the predetermined branch destination”, where the branch identifier determines which path the processor takes among multiple possible nodes, implementing conditional branching or shunting).
Armbrust in view of Miyata, further in view of Wei, further in view of Shen, further in view of Mericas does not teach the processor decides to execute one of the next task nodes according to a plurality of weight values corresponding to the next task nodes.
However, Grube teaches:
the processor decides to execute one of the next task nodes according to a plurality of weight values corresponding to the next task nodes (Paragraphs 142-143; “determines a weighted current memory status for the pluralities... [and] branches to step 242 when the weighted current memory status does not compare favorably” where the processor computes weight values for multiple candidates and selects a path or node based on the weighted evaluation, corresponding to executing one of the next task nodes based on the plurality of weight values).
Armbrust, Miyata, Wei, Shen, Mericas, and Grube are considered to be analogous to the claimed invention because they are in the same field of task management. 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 Armbrust in view of Miyata, further in view of Wei, further in view of Shen, further in view of Mericas to incorporate the teachings of Grube and execute one of the next task nodes according to a plurality of weight values. A person of ordinary skill in the art would have recognized the use of weight values for optimal task selection to be a known method in the art in which the implementation would yield the predictable outcome of optimal task processing based on weights.
Claim 15 recites similar limitations as those of claim 5. Claim 15 is rejected for similar reasons as those of claim 5.
Regarding claim 6, Armbrust in view of Miyata, further in view of Wei, further in view of Shen, further in view of Mericas, further in view of Grube teach the system of claim 5. AAA teaches:
wherein the processor selects to execute one of the next task nodes corresponding to a weight value of the weight values (Paragraphs 142-143; “determines a weighted current memory status for the pluralities... [and] branches to step 242 when the weighted current memory status does not compare favorably” where the processor computes weight values for multiple candidates and selects a path or node based on the weighted evaluation.).
It would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to execute one of the next task nodes corresponding to a highest weight value of the weight values as a matter of routine optimization because Grube already utilizes weight values to determine task execution. Selection of the highest weight among available weight values merely optimizes the known weighting technique to prioritize a most preferred task node, yielding the predictable result of selecting the highest priority candidate.
Claim 16 recites similar limitations as those of claim 6. Claim 16 is rejected for similar reasons as those of claim 6.
Response to Arguments
Applicant's arguments filed 04/15/2026 have been fully considered. Applicant’s arguments are summarized below:
Applicant submits that the prior art of record, alone or in combination, fail to disclose “when the feature matching rule information is configured to get a value from a flow variable, the processor executes the next task node in the data branching mode” as recited in amended claim 1.
Dependent claims are submitted as allowable for at least the above reasons.
Examiner’s response:
The Examiner respectfully disagrees. Armbrust teaches that the DAG “represents how data is going to flow” (Paragraph 107) and that an expectation node “checks a condition on input data” and, based on that evaluation, may “stop processing”, “shunt process to a fork node”, or “direct processing to a next input data” (Paragraph 108). Therefore, contrary to Applicant’s arguments, Armbrust does operate with consideration of data state or data conditions by explicitly evaluating “a condition on input data” (Paragraph 108) and that evaluation controls whether execution proceeds, halts, or is redirected through the DAG, where the input at one node corresponds to an output of another node, constituting a data-dependent execution decision. Further, Shen is relied upon for teaching that feature matching rule information is configured to get a value from a flow variable, in which a flow tracing request “specifies parameters for the flow tracing operation” using “high-level expressions” (Paragraph 111) for the operation. These teachings reasonably correspond to flow-defined parameters obtained and processed as part of system execution, such as values associated with the flow that are available for use by the controller. For the limitation in question, Armbrust is cited to disclose execution of the next task node in data branching mode, where it “checks a condition on input data”, and depending on the result, may “stop processing”, “shunt process to a fork node”, or “direct processing to a next input data”, which corresponds to runtime execution control of task nodes along different branching execution paths, thereby corresponding to execution in a data branching mode as claimed. The Examiner notes that while Fig. 5B discloses a diagram of data branching according to one possible embodiment of the disclosure, the instant specification does not limit data branching mode to solely task duplication as disclosed in Fig. 5B. Under the broadest reasonable interpretation consistent with the specification, data branching mode reasonably encompasses execution along a branching path of a data flow due to the claim not explicitly defining data branching mode and the specification not limiting data branching mode to the embodiment illustrated by Fig. 5B. Therefore, contrary to Applicant’s arguments, Armbrust and Shen teach the features “when the feature matching rule information is configured to get a value from a flow variable, the processor executes the next task node in the data branching mode” as recited in amended claim 1.
Independent claims 1 and 11 remain rejected for the reasons stated above. Therefore, contrary to Applicant's arguments, because the dependent claims depend from an unpatentable claim and does not add limitations that overcome the rejection, it likewise remains rejected.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Raghavan et al. (US 20230198907 A1) discusses APIs including an update function (update (flow, val)), where the flow variable corresponds to a Berkely Packet Filter (BPF) matching rule.
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 KENNETH P TRAN whose telephone number is (571)272-6926. The examiner can normally be reached M-TH 4:30 a.m. - 12:30 p.m. PT, F 4:30 a.m. - 8:30 a.m. PT, or at Kenneth.Tran@uspto.gov.
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, April Blair can be reached at (571) 270-1014. 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.
/KENNETH P TRAN/ Examiner, Art Unit 2196
/APRIL Y BLAIR/ Supervisory Patent Examiner, Art Unit 2196