DETAILED ACTION
Remarks
Applicant presents a communication dated 3 September 2026 in response to the 7 April 2026 non-final Office action (the “Previous Action”).
With the communication:
claims 1, 3, 13 and 19 are amended;
paragraph [0060] of the specification is amended; and
Figure 11 is amended.
Claims 1-20 are pending. Claims 1, 13 and 19 are the independent claims.
Any unpersuasive arguments are addressed in the “Response to Arguments” section below. Any new ground(s) of rejection were necessitated by Applicant’s amendments.
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 .
Examiner Notes
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 apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in their 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.
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 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.
Response to Arguments
Applicant’s arguments are moot in view of the withdrawn rejections and new ground(s) of rejection below, necessitated by Applicant’s amendments.
Specification
The Previous Action’s objection to the specification is withdrawn in view of Applicant’s specification amendments.
Drawings
The Previous Action’s objection to the drawings is withdrawn in view of Applicant’s amendments to figure 11.
To clarify the record, however, it should be noted that the objection incorrectly asserted that reference characters 1150A-N were included in the drawings and not mentioned in the description when in fact those characters were mentioned in description but not the drawings. The drawings erroneously referred to 1050A-N instead of 1150A-N and should have been objected to for that reason instead. Regardless, Applicant’s amendments have corrected the inconsistency between the drawings and specification and the objection is withdrawn.
Claim Rejections - 35 USC § 112
The Previous Action’s § 112 rejection is withdrawn in view of Applicant’s amendments to that claim.
Claim Rejections - 35 USC § 101
The Previous Action’s § 101 rejection is withdrawn in view of Applicant’s claim amendments.
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, 3-5 and 7-11 and 13-20 are rejected under 35 U.S.C. 103 as being unpatentable over Hui et al. (US 2023/0023655) (art of record – hereinafter Hui) in view of Chamieh et al. (US 2008/0134207) (art made of record – hereinafter Chamieh).
As to claim 1, Hui discloses a system comprising at least one processor (e.g., Hui, par. [0161]: any of the operations and techniques described in this application may be implemented as software code executed by a processor), the at least one processor is configured to:
obtain a specification of a data processing workflow comprising a plurality of processes, (e.g., Hui, par. [0022]: a process flow may be designed though the generation of a graph that visually represents a process flow; par. [0065]: nodes 306-314 represent elements of the process flow, where an element represents a set of computer-readable instructions that can be executed during execution of the flow [i.e., each node is a process]) wherein each process is associated with input data and output data, (e.g., Hui, Fig. 4B and associated text, par. [0090]: during execution of a process flow represented by graph 430, data is extracted from a data source 432 and filtered by filter node 430, which provides filtered output to a first input of join node 436. Join node 436 performs a join operation on data inputs. The output of join node is transformed by [i.e., input to, see figure] transform node, which provides transformed data to aggregate node) and wherein links between the plurality of processes of the workflow link each process o one or more other processes of the workflow; (e.g., Hui, Fig. 4B ad associated text, par. [0034]: nodes, which may be connected by one or more connectors).
execute one or more processes of the plurality of processes of the workflow to generate, for each of the one or more processes, input data, output data, execution metadata, or some combination thereof; (e.g., Hui, Fig. 4B and associated text, par. [0090]: during execution of a process flow represented by graph 430, data is extracted from data source 432 and filtered by filter node 430, which provides filtered output to a first input of join node 436. Join node 436 performs a join operation on data inputs. The output of join node is transformed by transform node, which provides transformed data to aggregate node [note that input data, output data, execution metadata are construed in the alternative here at least because “or some combination” means they are not all required]) and
generate a pipeline execution record, wherein the pipeline execution record comprises, for each of the one or more executed processes, a process data record comprising the associated input data, output data, execution metadata, or some combination thereof (e.g., Hui, par. [0034]: a subgraph can include one or more nodes. The term “subgraph” may refer to at least a portion of a graph; par. [0031]: execution results associated with a process flow or portion thereof are stored in association with a corresponding graph or subgraph; abstract: the first portion of the process flow is executed such a that first output of executing the first portion is obtained. The first subgraph is stored in association with the first output in a first cache entry [note that input data, output data, execution metadata are construed in the alternative here at least because “or some combination” means they are not all required]).
Hui does not explicitly disclose: the process data records of the one or more executed processes are: linked to one another according to the links between the plurality of processes of the workflow; linked to one another within the pipeline execution record; and retained across executions.
However, in an analogous art, Chamieh discloses:
the process data records of the one or more executed processes are (see below):
linked to one another according to the links between the plurality of processes of the workflow; (e.g., Chamieh, par. [0148]: a producer is at least a specific instance and a specific method [i.e., a producer is a process]; par. [0148]: producer dependencies [links between processes of the workflow] are declared using dependency declarations; Fig. 11 and associated text, par. [0309]: FIG. 11C is a diagram of the producer graph(s) structure 1060 [pipeline execution record]; par. [0311]: FIG. 11C includes a producer [process] output caching column 1170 [data record] to store the current producer outputs; par. [0405]: the parent producer(s) reference(s) column 1150 is populated with a reference to the row of the parent caller producer [linking the rows, so the columns of the rows are linked as well]; the child producer(s) reference(s) column 1160 is populated with a reference to the row of the called child producer)
linked to one another within the pipeline execution record; (see immediately above, the links are within the producer graph structure 1060 [pipeline execution record]) and
retained across executions (e.g., Chamieh, par. [0194]: producer 3 and producer 4 need not be reexecuted if their prior output is available “(cached from the prior execution of the producer graph)”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the pipeline execution record and data records of executed processes taught by Hui, such that the process data records of the one or more executed processes are linked to one another according to the links between the plurality of processes of the workflow and linked to one another within the pipeline execution record; and retained across executions, as taught by Chamieh, as Chamieh would provide the advantage of a means to determine when individual processes should be executed or not and a means of avoiding unneeded or wasteful process executions. (See Chamieh, pars. [0178], [0194]).
As to claim 3, Hui/Chamieh discloses the system of claim 1 (see rejection of claim 1 above), Hui further discloses:
wherein the process data records of the one or more executed processes include a plurality of datasets each associated with a respective execution of the one or more processes of the plurality of processes of the workflow (e.g., Hui, par. [0034]: a subgraph can include one or more nodes [processes, see above, but note that a subgraph is also a process]. The term “subgraph” may refer to at least a portion of a graph; par. [0054]: builder 202 can cache output results in association with pertinent portion(s) of the user-selected subgraph)
As to claim 4, Hui/Chamieh discloses the system of any of claim 1 (see rejection of claim 1 above), Hui further discloses wherein obtaining the specification of the data processing workflow (see below) comprises:
receiving, via a graphical user interface, user selection defining the one or more processes of the plurality of processes (e.g., Hui, par. [0023]: to design a graph representing a process flow, a user typically accesses a layout design tool. Generally, the design tool presents a set of user-selectable options that enable element [process, see above] types to be selected by a user to add representations of elements to a graph. Upon selection, the user can drag-and-drop representations of elements of selected element types to the desired positions in the graph).
As to claim 5, Hui/Chamieh discloses the system of claim 4 (see rejection of claim 4 above), Hui further discloses:
wherein the user selection includes selection of one or more processes from a library of user selectable processes (e.g., Hui, par. [0023]: to design a graph representing a process flow, a user typically accesses a layout design tool. Generally, the design tool presents a set of user-selectable options [library] that enable element [process, see above] types to be selected by a user to add representations of elements to a graph. Upon selection, the user can drag-and-drop representations of elements of selected element types to the desired positions in the graph).
As to claim 7, Hui/Chamieh discloses the system of claim 1 (see rejection of claim 1 above), Hui further discloses:
wherein the pipeline execution record is stored in a graph database (e.g., Hui, abstract: the first subgraph is stored in associated with the first output in a first cache [database] entry of a cache [since a subgraph (i.e., graph) is stored, the cache is a graph database).
As to claim 8, Hui/Chamieh discloses the system of claim 1 (see rejection of claim 1 above), Hui further discloses wherein the at least one processor is further configured to:
receive a workflow query; (e.g., Hui, par. [0053]: flow builder 202 is configured to query a cache to identify cache entries for which subgraphs are equivalent to a portion of a user-selected graph/subgraph [workflow, so the selection here is the query])
use the workflow query to search the pipeline execution record for one or more processes of the data processing workflow that match the workflow query; (e.g., Hui, par. [0053]: flow builder 202 is configured to query a cache to identify cache entries for which subgraphs are equivalent to a portion of a user-selected graph/subgraph [workflow]; par. [0104]: to find a node within the cached subgraph that matches a node of the current subgraph for which a preview is requested) and
obtain output data associated with the one or more processes of the data processing workflow that match the workflow query (e.g., Hui, par. [0069]: FIG. 3B shows a diagram illustrating example preview 350 of a subgraph. In this example the preview presents output of the execution of a portion of the process flow, where the portion corresponds to the user-selected subgraph).
As to claim 9, Hui/Chamieh discloses the system of claim 8 (see rejection of claim 8 above), Hui further discloses wherein the at least one processor is further configured to:
receive an input data query; (e.g., Hui, par. [0053]: flow builder 202 is configured to query a cache to identify cache entries for which subgraphs are equivalent to a portion of a user-selected graph/subgraph; par. [0053]: flow builder 202 is configured to query a cache [i.e., that query (input data query) is received] to identify cache entries for which subgraphs are equivalent to a portion of a user-selected graph/subgraph)
determine if the input data query matches input data associated with the one or more processes of the data processing workflow that match the workflow query; (e.g., Hui, par. [0053]: flow builder 202 is configured to query a cache to identify cache entries for which subgraphs are equivalent to [match] a portion of a user-selected graph/subgraph; par. [0083]: the system can compare the last node of the cached subgraph with the last node of the subgraph selected by the user. The comparison can include comparing parameters of an input node or corresponding method);
in response to determining a match of the input data query, obtain the output data by retrieving output data associated with the one or more processes of the data processing workflow in the pipeline execution record; (e.g., Hui, par. [0053]: flow builder is configured to identify cache entries for which subgraphs are equivalent to or a portion of a user-selected graph/subgraph. Flow builder can apply output stored in these identified cache entries to avoid re-execution of portions of the process flow) and
in response to determining a non-match of the input data query (see immediately below)
execute the one or more processes of the data processing workflow that match the workflow query to generate the new output data; (e.g., Hui, par. [0074]: assuming that results of execution of the first portion of the process flow have not been cached, the system executes the first portion of the process flow such that a first output of executing the first portion of the process flow is obtained; par. [0102]: since output results have not been cached, transform node 546, node 548 and 544 execute to generate preview results; par. [0098]: graphs for which previews have been requested) and
obtain the new output data as the output data associated with the one or more processes of the data processing workflow that match the workflow query (see immediately above).
As to claim 10, Hui/Chamieh discloses the system of claim 8 (see rejection of claim 8 above), wherein:
the pipeline execution record is stored in a graph database; (e.g., Hui, abstract: the first subgraph is stored in associated with the first output in a first cache [database] entry of a cache [since a subgraph (i.e., graph) is stored, the cache is a graph database) and
the workflow query comprises a sub-graph (e.g., Hui, par. [0053]: flow builder 202 is configured to query a cache to identify cache entries for which subgraphs are equivalent to a portion of a user-selected graph/subgraph [again the selection here is the query])
As to claim 11, Hui/Chamieh discloses the system of any of claim 8 (see rejection of claim 8 above), Hui further discloses wherein the at least one processor is further configured to:
display the pipeline execution record in a graph; (e.g., Hui, par. [0026]: to generate a “preview” of a graph. The system can generate an interactive “preview” that includes results of execution. For example, results of execution can be provided for display; par. [0027]: a user can interact with a representation of an element (e.g., icon) within a graph to request a preview of the subgraph having the endpoint represented by the element selected by a user [so the graph represents different results previews that can be selected]; par. [0069]: Fig. 3B shows an example preview 350 of a subgraph. The output can be presented in the form of a graph) and
receive user selection defining at least a portion of the graph as the workflow query (e.g., Hui, par. [0053]: flow builder 202 is configured to query a cache to identify cache entries for which subgraphs are equivalent to a portion of a user-selected graph/subgraph [again the selection here is the query]).
As to claim 13, it is method claim having limitations substantially the same as those of claim 1. Accordingly, it is rejected for substantially the same reasons.
As to claim 14, Hui/Chamieh discloses the method of claim 13 (see rejection of claim 13 above), Hui further discloses:
wherein the process data record includes:
one or more pointers that reference to data in one or more external data sources; or
optionally, a plurality of datasets each associated with a respective execution of the one or more processes of the plurality of processes of the workflow (e.g., Hui, par. [0034]: a subgraph can include one or more nodes [processes, see above, but note that a subgraph is also a process]. The term “subgraph” may refer to at least a portion of a graph; par. [0054]: builder 202 can cache output results in association with pertinent portion(s) of the user-selected subgraph).
As to claim 15, it is method claim having limitations substantially the same as those of claim 5. Accordingly, it is rejected for substantially the same reasons.
As to claim 16, it is method claim having limitations substantially the same as those of claim 6. Accordingly, it is rejected for substantially the same reasons.
As to claim 17, it is method claim having limitations substantially the same as those of claim 7. Accordingly, it is rejected for substantially the same reasons.
As to claim 18, it is method claim having limitations substantially the same as those of claim 8. Accordingly, it is rejected for substantially the same reasons.
As to claim 19, it is medium claim having limitations substantially the same as those of claim 1. Accordingly, it is rejected for substantially the same reasons. Further limitations, disclosed by Hui, include:
a non-transitory computer-readable media comprising instructions that, when executed, cause at least one processor to perform operations (e.g., Hui, par. [0161] any of the operations and techniques described in this application may be implemented as software code [instructions] executed by a processor. The software code may be stored on a computer-readable medium; par. [0160]: examples of computer-readable media include disks), comprising (see rejection of claim 1 above).
As to claim 20, it is method claim having limitations substantially the same as those of claim 8. Accordingly, it is rejected for substantially the same reasons.
Claims 2 and 12 are rejected under 35 U.S.C. 103 as being unpatentable over Hui (US 2023/0023655) in view of Chamieh (US 2008/0134207) in further view of Burnett et al. (US 2020/01004401) (art of record -- hereinafter Burnett).
As to claim 2, Hui/Chamieh discloses the system of claim 1 (see rejection of claim 1 above) but does not explicitly disclose wherein the process data record includes one or more pointers that reference to data in one or more external data sources.
However, in an analogous art, Burnett discloses:
wherein the process data record includes one or more pointers that reference to data in one or more external data sources (e.g., Burnett, par. [0168]: the indexer includes the identified keywords in an index, which associates each stored keyword with reference pointers to events containing that keyword; par. [0268]: the index contains reference pointers to events containing the keyword, which allows for efficient retrieval of the relevant events from the raw record store).
It would have been obvious ton one of ordinary skill in the art before the effective filing date of the claimed invention to modify the process data record of Hui such that it includes one or more pointers that reference to data in one or more external data sources, as taught by Burnett, as Burnett would provide the advantage of a means of permitting efficient retrieval of the data. (See Burnett, par. [0268]). Hui also suggests the combination in paragraph [0157].
As to claim 12, Hui/Chamieh discloses the system of any of claim 8 (see rejection of claim 8 above) Hui further discloses: the process data record, obtaining the output data associated with the one or more processes of the data processing workflow that match the workflow query and the output data (see rejection of claim 8 above) but does not explicitly disclose wherein the process data record comprises one or more pointers that reference to data in one or more external data sources, and wherein obtaining the output data associated with the one or more processes of the data processing workflow that match the workflow query comprises: retrieving the output data from at least one of the one or more external data sources using at least one of the one or more pointers.
However, in an analogous art, Burnett discloses:
wherein the data record comprises one or more pointers that reference to data in one or more external data sources, (e.g., Burnett, par. [0168]: the indexer includes the identified keywords in an index, which associates each stored keyword with reference pointers to events containing that keyword; par. [0268]: the index contains reference pointers to events containing the keyword, which allows for efficient retrieval of the relevant events from the raw record store) and wherein obtaining the data comprises:
retrieving the data from at least one of the one or more external data sources using at least one of the one or more pointers (see immediately above).
It would have been obvious ton one of ordinary skill in the art before the effective filing date of the claimed invention to modify the process data record and obtaining of output data associated with one or more processes of the data processing workflow that match a workflow query taught by Hui such that the data record includes one or more pointers that reference to data in one or more external data sources the data is obtained by retrieving the data from at least one of the one or more external data sources using the one or more pointers, as taught by Burnett, as Burnett would provide the advantage of a means of permitting efficient retrieval of the data. (See Burnett, par. [0268]). Hui also suggests the combination in paragraph [0157].
Claim 6 is rejected under 35 U.S.C. 103 as being unpatentable over Hui (US 2023/0023655) in further view of Chamieh (US 2008/0134207) in further view of “Nextflow’s documentation” (art of record -- hereinafter Nextflow).
NOTE: The copy of Nextflow provided by Applicant has no page numbers. Page numbers 1-234 are assumed when cited herein, starting with the page of Nextflow having the “Get started” section. Note too that the copy of the document in the file record has two portions and one treated as having pp. 1-145 and the other as having pp. 146-234.
As to claim 6, Hui/Chamieh discloses the system of any of claim 1 (see rejection of claim 1 above) but does not explicitly disclose wherein the specification of the data processing workflow comprises a script file.
However, in an analogous art, Nextflow discloses
wherein the specification of the data processing workflow comprises a script file (e.g., Nextflow, p. 2 “Your first script” copy the following example into your favorite text editor and save it to a file; p. 3 par. 1: the script defines two processes. The first splits a string into chunks, writing each to a file, the second receives these files and transforms their contents; p. 85 “Dag Visualisation”, a Nextflow pipeline is implicitly modelled by a direct acyclic graph (DAG). The verticies in the graph represent the pipeline’s processes and operators, while the efges represent the data connections (i.e., channels) between them).
It would have been obvious ton one of ordinary skill in the art before the effective filing date of the claimed invention to modify the specification of the data processing workflow of Nextflow such that the specification comprises a script file, as taught by Nextflow, as Nextflow would provide the advantages of a means of providing a format for storing the pipeline as well as a means of easing the writing of data-intensive computational pipelines. (See Nextflow, p. 2 “Your first script”, p. 6 “Basic concepts”).
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). 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 TODD AGUILERA whose telephone number is (571)270-5186. The examiner can normally be reached M-F 11AM - 7:30PM 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, Hyung S Sough can be reached at (571)272-6799. 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.
/TODD AGUILERA/Primary Examiner, Art Unit 2192