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 .
Response to Arguments
Applicant’s remarks filed 26 September 2026 have been fully considered but are not persuasive.
Applicant argues that Larson does not teach “generating multiple augmented dataflow graphs from the multiple dataflow graphs based on the selections received via the at least one GUI, the generating comprising: configuring the multiple dataflow graphs using the first reference to the first catalogued dataflow graph stored in the first entry by linking the respective input nodes in the multiple dataflow graphs to the output of the first catalogued dataflow graph to generate the multiple augmented dataflow graphs wherein the multiple augmented dataflow graphs receive, as an input, the output dataset generated when the first catalogued dataflow graph is executed” because it would, with respect to Fig. 2A of Larson “require (1) recasting component 208A as a second sub-graph interface, (2) interpreting that sub-graph interface as a catalogued dataflow graph, and (3) removing the input dataset 202B upstream of the component 208A such that data generated by the catalogued dataflow graph is provided as input to the graph” and that “[e]ach of these is a separate modification unsupported by Larson’s disclosure. Examiner respectfully disagrees. These features aren’t obvious because they are a modification of the disclosure of Larson; they are taught because Applicant’s invention is a species of Larson’s invention that one, at the time of filing, would have at once envisaged from Larson’s disclosure.
In Applicant’s invention, the “multiple dataflow graphs” are “configured” to “us[e] the first reference to the first catalogued dataflow graph stored in the first entry by linking the respective input nodes in the multiple dataflow graphs to the output of the first catalogued dataflow graph to generate the multiple augmented dataflow graphs wherein the multiple augmented dataflow graphs receive, as an input, the output dataset generated when the first catalogued dataflow graph is executed” because a user told it to. Specification ¶ [0017[.
The capacity to do so is the basis for finding an improvement to technology.
The inventors have developed techniques for allowing software applications developed as dataflow graphs and/or portions thereof to be stored and then accessed through a data catalog by other software applications (e.g., developed as other dataflow graphs) as a source of dynamic input data in the other software applications. The stored dataflow graphs may be incorporated (e.g., as inputs) into one or more other software application programs (e.g., programs developed as dataflow graphs or other types of software programs) through the use of the data catalog. This enables data dynamically generated by executing the catalogued dataflow graphs to be provided as input to the other software application program(s). The catalog maintains entries corresponding to dataflow graphs. The entries allow reuse of the dataflow graphs in other software applications, instead of requiring redevelopment and/or replication of code in the software applications. This enables more efficient usage of computing resources and, in turn, efficient execution of data operations in a dynamic environment with multiple datasets.
Specification ¶ [0096]. See Applicant’s remarks of 29 August 2025, pg. 7. The sub-graphs of Lowry are used for the same purpose as the instant catalogued dataflow graphs: to allow for re-use of dataflow graphs in user-designed dataflow graphs.
Among other advantages, the approaches to managing sub-graph interfaces, including dynamic linking of sub-graphs, facilitate code abstraction and re-use in dataflow graph development environments. Dynamic linking of a sub-graph into a subgraph interface involves delaying (e.g., until just before execution) the determination of which of multiple possible sub-graphs is to be used to implement the function associated with that sub-graph interface. Thus, a container graph (i.e., a dataflow graph that has one or more sub-graph interfaces) can be used as a template that can be re-used and customized. Template dataflow graphs can be shipped to customers. The customer can then supply graph logic that implements the sub-graph interfaces and customizes template dataflow graphs to the customer's needs and operational environment. Customers may include users of the customized dataflow graphs, and/or developers who provide customized dataflow graphs to other users.
Larson ¶ [0031]. Like as in the instant invention, the particular arrangement of sub-graph interfaces and components is left to the user. Larson ¶¶ [0096]-[0099]. The “sub-graph interface” of Larson is therefore analogous to the claimed “catalogued data graph.” There is one difference between the two: unlike as in Applicant’s invention, which only describes data output from a catalogued dataflow graph, the flow junctions for a sub-graph interface are capable of both input and output from and to components. Larson ¶ [0058] (“The sub-graph interface includes one or more flow junctions, which define a point of connection between a flow in the container graph and the sub-graph associated with the sub-graph interface (as is described in further detail below). Each flow junction represents a connection (or ‘junction’) between a flow of data to or from a port on a component of the first dataflow graph and a flow of data to or from a port on a component of the second dataflow graph.”). In the terms that Applicant uses in the disclosure, the “sub-graph interface” of Larson can be incorporated into a dataflow graph acting as either a software application program or an input dataset, while Applicant “catalogued data graph” can only be incorporated into a dataflow graph acting as an input dataset. Indeed, by its literal terms, Fig. 2A describes a catalogued dataflow graph acting as a software application program, while the claimed invention is directed to a catalogued dataflow graph acting as an input dataset.
For instance, in Fig. 2A of Larson, a user has configured the first dataflow graph using the reference to the first-catalogued dataflow graph stored in the first graph entry by linking the respective input nodes in the multiple dataflow graphs, including the first output node of the first dataflow graph (204E), to the input of the first catalogued dataflow graph (204F) to generate the multiple augmented dataflow graphs, whereas the claim takes the input and links it to the output. Applicant has, indeed, found a difference in the description of the single disclosed embodiment of the invention of Larson and the claimed invention.
However, the invention of Larson is not the single embodiment, but the general idea of using sub-graph interfaces in place components in any arbitrary dataflow graph in general use. Larson ¶ [0031]. Flow junctions are flow junctions; it makes no difference whether the underlying port is a direct port of a component or indirectly a port of a component within the sub-graph interface. Larson ¶¶ [0057]-[0058]. Components can take input from sub-graph interfaces (Component 208B) and from datasets (Component 208A). Components can have multiple inputs. Fig. 2B (Component 208D). That is, Figs. 2A and 2B are not Larson’s invention, they are simply an embodiment of Larson’s invention. MPEP § 2123.
That is, Larson is indeed capable of “ (1) recasting component 208A as a second sub-graph interface, (2) interpreting that sub-graph interface as a catalogued dataflow graph, and (3) removing the input dataset 202B upstream of the component 208A such that data generated by the catalogued dataflow graph is provided as input to the graph” when that is what the user chooses to do using the configuration tools of Larson. Larson ¶¶ [0096]-[0099]; MPEP § 2131.02(III). The invention in both Larson and the instant application is not, strictly speaking, the particular configuration, but the ability to configure, and the instant claims are directed to a particular configuration. There is nothing in Larson teaching away from the user being able to use the interface to input this configuration. Therefore, the invention of Larson teaches the limitations to which it is applied. MPEP §§ 2141.01(II), 2123, 2131.02(III).
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.
Claim(s) 1, 3, and 5-24 is/are rejected under 35 U.S.C. 103 as being unpatentable over Larson et al., US 2015/0160926 A1 and Wholey et al., US 2007/0011668 A1, in view of Dickie, US 2019/0370407 A1.
Wholey is incorporated by reference by Larson. Larson ¶ 0054; see MPEP §§ 608.01(p); 2163.07(b).
As per claims 1, 22, and 23, Larson teaches:
generating at least one graphical user interface (GUI) displaying graphical representations of multiple dataflow graphs and indicating entries of a dataset catalog, Larson ¶¶ 0005-0006, the entries of the dataset catalog including:
the entries of the dataset catalog including: one or more dataset entries associated with datasets, stored in data storage of the data processing system, that can be provided as input to the software application program, wherein the one or more entries storing references to datasets comprises a first dataset entry storing a reference to a first dataset stored in the data storage, Larson ¶ 0054; Wholey ¶¶ 0149, 0247, 0249, where datasets are stored, and where the input dataset repository stores said entries; and
one or more graph entries storing references to dataflow graphs stored in the data storage of the data processing system, that can be executed at runtime of the software application program to generate respective datasets that can be provided as input to the software application program, wherein the one or more graph entries storing references to dataflow graphs include a first graph entry storing a reference to a first catalogued dataflow graph stored in the data storage, the first catalogued dataflow graph comprising: one or more input nodes representing one or more respective data sources, one or more data processing nodes representing one or more respective data processing operations, and an output representing an output dataset generated during execution of the first catalogued dataflow graph by applying the one or more data processing operations represented by the one or more data processing nodes to data obtained from the one or more respective data sources represented by the one or more input nodes, Larson ¶¶ 0062, 0133, where the library comprises entries of respective implementation sub-graphs, where each implementation sub-graph has ports conforming to a sub-graph interface, where the ports correspond to the input nodes and output links;
receiving, via the at least one GUI displaying the graphical representations of the multiple dataflow graphs selections for input nodes in the multiple dataflow graphs, the input nodes each configurable to link to: (1) one of the datasets stored in the data storage, or (2) an output of one of the catalogued dataflow graphs stored in the data storage, wherein the selections: associate the first graph entry storing the reference to the first catalogued dataflow graph with respective ones of the input nodes in the multiple dataflow graphs, including a first input node of a first dataflow graph of the multiple dataflow graphs, and associate the first dataset entry storing the reference to the first dataset with a second input node of the first dataflow graph, Larson ¶¶ 0005-0006, 0054, 0133; Wholey ¶¶ 00247-50, where the choosing of the sub-graph interface from the library and the dataset from the dataset repository is the identification, which is received;
generating multiple augmented dataflow graphs from the multiple dataflow graphs based on the selections received via the at least one GUI, the generating comprising: configuring the multiple dataflow graphs using the first reference to the first catalogued dataflow graph stored in the first entry by linking the respective input nodes in the multiple dataflow graphs to the output of the first catalogued dataflow graph to generate the multiple augmented dataflow graphs wherein the multiple augmented dataflow graphs receive, as an input, the output dataset generated when the first catalogued dataflow graph is executed, Larson ¶¶ 0140-52, where inserting a sub-graph into a dataflow graph associates an input node (or output node, as the case may be) of the dataflow graph with the sub-graph.
Larson, however, does not teach, while the analogous and compatible art of Dickie teaches:
compiling the multiple augmented dataflow graphs into multiple software application programs for execution, the compiling comprising: optimizing the multiple augmented dataflow graphs at least in part by: transforming structures of the multiple augmented dataflow graphs resulting in multiple optimized dataflow graphs, Dickie ¶ 0046 (“applying the first optimization rule to the first portion of the initial dataflow graph”).
executing each of the compiled multiple software application programs, Dickie ¶ 0121.
It would therefore have been obvious to one of ordinary skill in the art to combine the teachings of Larson and Dickie to analyze the augmented dataflow graph of Larson using the dataflow graph optimization rules of Dickie because the optimization rules of Dickie can be generally applied to dataflow graphs. Dickie ¶ 0042.
As per claim 3, the rejection of claim 1 is incorporated, and Larson further teaches:
applying data processing operations represented by data processing nodes of the multiple augmented dataflow graphs to the output dataset generated when the first catalogued dataflow graph is executed, Larson ¶ 0004.
As per claim 5, the rejection of claim 1 is incorporated, and Larson further teaches:
the dataset catalog includes multiple graph entries storing references respective catalogued dataflow graphs previously generated and stored in the data storage of the data processing system, Larson ¶ 0133 and multiple dataset entries storing references to respective datasets previously stored in the data storage of the data processing system Larson ¶ 0054; Wholey ¶¶ 0149, 0247, 0249.
As per claim 6, the rejection of claim 1 is incorporated, and Larson further teaches:
the one or more dataset entries storing references to datasets comprise a second dataset entry storing a second reference to a physical dataset stored in the data storage of the data processing system Larson ¶ 0054; Wholey ¶¶ 0149, 0247, 0249.
As per claim 7, the rejection of claim 6 is incorporated, and Larson further teaches:
receiving, via the at least one GUI displaying the graphical representations of the multiple dataflow graphs and the entries of the dataset catalog, second selections that associate an identification of the second dataset entry associated with the physical dataset stored in the data storage with input nodes of at least some of the multiple dataflow graphs, Larson ¶ 0054; Wholey ¶¶ 00247-50, where the choosing the dataset from the dataset repository is the identification, which can be repeated; and
based on the second selections, configure the at least some dataflow graphs to receive, as an input, data from the physical dataset at the input nodes of the at least some dataflow graphs Larson ¶¶ 0140-52, where inserting a sub-graph into a dataflow graph associates an input node (or output node, as the case may be) of the dataflow graph with the sub-graph.
As per claim 8, the rejection of claim 1 is incorporated, but Larson does not teach, while the analogous and compatible art of Dickie teaches:
wherein transforming the structures of the multiple augmented dataflow graphs resulting in the multiple optimized dataflow graphs comprises: transforming the multiple augmented dataflow graphs to obtain multiple transformed dataflow graphs different from the multiple augmented dataflow graphs as the multiple optimized dataflow graph, Dickie ¶ 0051.
It would therefore have been obvious to one of ordinary skill in the art to combine the teachings of Larson and Dickie to analyze the augmented dataflow graph of Larson using the dataflow graph optimization rules of Dickie because the optimization rules of Dickie can be generally applied to dataflow graphs. Dickie ¶ 0042.
As per claim 9, the rejection of claim 1 is incorporated, and Larson further teaches:
wherein the multiple augmented dataflow graphs incorporate the first catalogued dataflow graph as a first subgraph at the respective input nodes associated with the first graph entry, Larson ¶¶ 0062, 0133, where the library comprises entries of respective implementation sub-graphs, where each implementation sub-graph has ports conforming to a sub-graph interface, where the ports correspond to the input nodes and output links.
Larson, however, does not teach, while the analogous and compatible art of Dickie teaches:
transforming the structure of the multiple augmented dataflow graphs comprises: applying at least one optimization of the one or more optimizations to the first subgraph in the multiple augmented dataflow graphs to obtain subgraphs in the multiple augmented dataflow graphs that are each different from the first subgraph and from other ones of the subgraphs, Dickie ¶ 0051.
It would therefore have been obvious to one of ordinary skill in the art to combine the teachings of Larson and Dickie to analyze the augmented dataflow graph of Larson using the dataflow graph optimization rules of Dickie because the optimization rules of Dickie can be generally applied to dataflow graphs. Dickie ¶ 0042.
As per claim 10, the rejection of claim 9 is incorporated, but Larson does not teach:
wherein applying the optimizations to the multiple augmented dataflow graphs comprises: applying, in each of the multiple augmented dataflow graphs, at least one optimization to the first subgraph incorporated at a respective input node linked to the output of the first catalogued dataflow graph based at least in part on at least one operation represented by at least one node in the augmented dataflow graph downstream of the input node that is linked to the output of the first catalogued dataflow graph.
The analogous and compatible art of Dickie, however, teaches:
determining at least one optimization to a first subgraph based at least in part on at least one operation represented by at least one node in a dataflow graph downstream of the input node that is associated with the subgraph, Dickie ¶ 0125.
It would therefore have been obvious to one of ordinary skill in the art to combine the teachings of Larson and Dickie to analyze the augmented dataflow graph of Larson using the dataflow graph optimization rules of Dickie because the optimization rules of Dickie can be generally applied to dataflow graphs. Dickie ¶ 0042.
As per claim 11, the rejection of claim 9 is incorporated, but Larson does not teach, while the analogous and compatible art of Dickie teaches:
applying at least one of the optimizations to the first subgraph in at least one of the multiple augmented dataflow graphs to obtain the second subgraph such that the second at least one subgraph that reads less data than the first subgraph and/or performs fewer operations than the first subgraph, Dickie ¶ 0051.
It would therefore have been obvious to one of ordinary skill in the art to combine the teachings of Larson and Dickie to analyze the augmented dataflow graph of Larson using the dataflow graph optimization rules of Dickie because the optimization rules of Dickie can be generally applied to dataflow graphs. Dickie ¶ 0042.
As per claim 12, the rejection of claim 9 is incorporated, but Larson does not teach, while the analogous and compatible art of Dickie teaches:
wherein the optimizations include at least one of: removing at least one node of the first subgraph; replacing at least one node of the first subgraph; changing an order of a plurality of nodes of the first subgraph; combining a plurality of nodes of the first subgraph; parallelizing processing of at least one operation represented by least one node of the first subgraph; or deleting data in at least one node of the first subgraph such that it is not used in a subsequent operation represented by a node downstream of the at least one node in the first subgraph, Dickie ¶ 0051.
It would therefore have been obvious to one of ordinary skill in the art to combine the teachings of Larson and Dickie to analyze the augmented dataflow graph of Larson using the dataflow graph optimization rules of Dickie because the optimization rules of Dickie can be generally applied to dataflow graphs. Dickie ¶ 0042.
As per claim 13, the rejection of claim 1 is incorporated, but Larson does not teach:
wherein transforming the structures of the multiple augmented dataflow graphs comprises: transforming portions of the multiple augmented dataflow graphs, the portions including the first catalogued dataflow graph associated with the first graph entry.
The analogous and compatible art of Dickie, however, teaches:
transforming portions of the multiple augmented dataflow graphs, the portions including the first catalogued dataflow graph associated with the first graph entry, Dickie ¶ 0123, where nodes 532 and 534 are transformed to node 536.
It would therefore have been obvious to one of ordinary skill in the art to combine the teachings of Larson and Dickie to analyze the augmented dataflow graph of Larson using the dataflow graph optimization rules of Dickie because the optimization rules of Dickie can be generally applied to dataflow graphs. Dickie ¶ 0042.
As per claim 14, the rejection of claim 1 is incorporated, and Larson further teaches:
wherein the first catalogued dataflow graph was generated from a subgraph embedded in another dataflow graph separate from the multiple dataflow graphs, the other dataflow graph having nodes representing data processing operations and links representing flow of data between the nodes, Larson ¶ 0037.
As per claim 15, the rejection of claim 1 is incorporated, and Larson further teaches:
displaying, in a GUI, a graphical representation of the other dataflow graph, Larson ¶ 0037; and
receiving, through the GUI, user input indicating that the subgraph within the dataflow graph is to be catalogued, Larson ¶ 0005, where the interface is used to save the sub-graph; and
storing the subgraph as the first catalogued dataflow graph in response to receiving the user input indicating that the subgraph within the dataflow graph is to be catalogued, Larson ¶ 0034, where the sub-graph is saved in a library.
As per claim 16, the rejection of claim 1 is incorporated, and Larson further teaches:
wherein the first catalogued dataflow graph has only a single output link representing the output dataset during execution of the first catalogued dataflow graph, Larson ¶ 0090, where the sub-graph has a single output flow junction.
As per claim 17, the rejection of claim 1 is incorporated, and Larson further teaches:
wherein the first graph reference to the first catalogued dataflow graph stored in the first graph entry comprises a reference to a location of the first catalogued dataflow graph in the data storage, Larson ¶ 0133, where the sub-graph is saved in a library, where the reference is inherently stored for later recall.
As per claim 18, the rejection of claim 1 is incorporated, and Larson further teaches:
wherein the reference to the first catalogued dataflow graph stored in the first graph entry comprises a reference to a file storing information indicating nodes of the first catalogued dataflow graph and/or configuration parameters of the first catalogued dataflow graph, Larson ¶ 0134, where the implementation on disk is the file.
As per claim 19, the rejection of claim 1 is incorporated, and Larson further teaches:
receiving, via the at least one GUI, user input indicating an association of the first graph entry with the respective input nodes in the multiple dataflow graphs, Larson ¶ 0133, where placing the sub-graph interface is the input
As per claim 20, the rejection of claim 19 is incorporated, and Larson further teaches:
receiving, via the at least one GUI, user input indicating association of a first graphical element representing the first graph entry with a second graphical element representing the respective input nodes in the multiple dataflow graphs, Larson ¶ 0069, where the second dataflow graph is linked in place of the sub-graph interface.
As per claim 21, the rejection of claim 20 is incorporated, and Larson further teaches:
wherein the user input indicating the association of the first graphical element representing the first graph entry with the graphical elements representing the respective input nodes in the multiple dataflow graphs comprises dragging the first graphical element to second graphical elements representing the respective input nodes in the multiple dataflow graphs, Larson ¶ 0005, where the user interacts with the graphical user interface by dragging elements.
As per claim 24, the rejection of claim 1 is incorporated, and Larson further teaches:
executing the first catalogued dataflow graph to generate the output dataset, Larson ¶¶ 0061-62, where the second dataflow graph, the claimed first catalogued dataflow graph, is executed via linking; and
providing the output dataset generated by executing the first catalogued dataflow graph as an input to the first dataflow graph at the first input node for performance of at least one of the data processing operations represented by the data processing nodes of the first dataflow graph using data in the output dataset, Larson ¶¶ 0061-62, where the output of the second dataflow graph is provided a port taking it as input.
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 WILLIAM SPIELER whose telephone number is (571)270-3883. The examiner can normally be reached Monday-Friday, 11-3.
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, Ann Lo can be reached on 571-272-9767. 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.
WILLIAM SPIELER
Primary Examiner
Art Unit 2159
/WILLIAM SPIELER/ Primary Examiner, Art Unit 2159