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 .
DETAILED ACTION
Claims 1-17 are present in this application. Claims 1-17 are pending in this office
action.
This office action is NON-FINAL.
Drawings
The Drawings filed on 03/12/25 are acceptable for examination purposes.
Specification
The Specification filed on 03/12/25 is acceptable for examination purposes.
Claim Objections
Claim 16 objected to because of the following informalities: Claim 16 says “ A computer-readable storage medium…implements the sorting method according to claim 1”. Claim 16 depends on claim 1. However, claim 1 recites a method, not a computer-readable storage medium. Appropriate correction is required.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine,
manufacture, or composition of matter, or any new and useful improvement
thereof, may obtain a patent therefor, subject to the conditions and requirements
of this title.
Claims 1-17 are rejected under 35 U.S.C. 101 because the claimed invention is
directed to an abstract idea without significantly more.
Claim 1 recites, “acquiring a directed acyclic graph to be sorted, and recording input nodes and output nodes of each node in the directed acyclic graph; obtaining a global depth of each node based on input-output relationships among nodes in the directed acyclic graph, thereby generating a global depth table, wherein the global depth of each node is defined as a number of nodes involved from said node in the directed acyclic graph along directed edges to a corresponding output of said node; and determining an execution order of each node based on the global depth of each node and a total number of the nodes in the directed acyclic graph, and generating a node sorting table”.
The limitation of “acquiring a directed acyclic graph to be sorted, and recording input nodes and output nodes of each node in the directed acyclic graph; obtaining a global depth of each node based on input-output relationships among nodes in the directed acyclic graph, thereby generating a global depth table, wherein the global depth of each node is defined as a number of nodes involved from said node in the directed acyclic graph along directed edges to a corresponding output of said node; and determining an execution order of each node based on the global depth of each node and a total number of the nodes in the directed acyclic graph, and generating a node sorting table” Nothing in the claim element precludes the step from practically
being performed in the mind. Accordingly, the claim recites an abstract idea. This judicial exception is not integrated into a practical application. The claim is directed to an abstract idea. The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. The claim is not patent eligible.
Claim 2 is dependent on claim 1 and includes all the limitations of claim 1. Claim
2 recites wherein obtaining the global depth of the nodes in the directed acyclic graph comprises: wherein for any node in the directed acyclic graph, sequentially searching for output nodes of each following node in an output direction until no more output nodes are found, and the global depth of said node is defined as N + 1, wherein N is a number of all nodes found during the search in claim 2. But obtaining the global depth of the nodes in the directed acyclic graph does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 3 is dependent on claim 1 and includes all the limitations of claim 1. Claim
3 recites wherein for any of the nodes in the directed acyclic graph, the execution order of said node is defined as a difference between the total number of the nodes in the directed acyclic graph and the global depth of said node in claim 3. But for any of the nodes in the directed acyclic graph, the execution order of said node is defined as a difference between the total number of the nodes in the directed acyclic graph and the global depth of said node does not go beyond the abstract idea itself.
There are no additional components in the claim that would make it significantly more
than the abstract idea.
Claim 4 is dependent on claim 1 and includes all the limitations of claim 1. Claim
4 recites wherein after obtaining the global depth of each node, the sorting method further comprises: determining whether a heuristic sorting set exists, and if the heuristic sorting set exists, updating global depths of corresponding nodes in the directed acyclic graph based on computational dependency relationships among nodes in the heuristic sorting set, execution order relationships among the corresponding nodes in the directed acyclic graph are the same as those among the nodes in the heuristic sorting set in claim 4. But determining whether a heuristic sorting set exists, and if the heuristic sorting set exists, updating global depths of corresponding nodes in the directed acyclic graph based on computational dependency relationships among nodes in the heuristic sorting set, execution order relationships among the corresponding nodes in the directed acyclic graph are the same as those among the nodes in the heuristic sorting set does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 5 is dependent on claim 4 and includes all the limitations of claim 4. Claim
5 recites wherein the heuristic sorting set comprises a previous sorting result corresponding to the directed acyclic graph and a preset computational order among the nodes in claim 5. But sorting result corresponding to the directed acyclic graph and a preset computational order among the nodes does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 6 is dependent on claim 1 and includes all the limitations of claim 1. Claim
5 recites when one of the nodes in the directed acyclic graph depends on multiple nodes, the node among the multiple nodes being depended on that has fewer data dependency relationships in the directed acyclic graph is ordered later during interval sorting in claim 6. But when one of the nodes in the directed acyclic graph depends on multiple nodes, the node among the multiple nodes being depended on that has fewer data dependency relationships in the directed acyclic graph is ordered later during interval sorting does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 7 is dependent on claim 6 and includes all the limitations of claim 6. Claim
5 recites wherein searching the node sorting table comprises sequentially searching each node corresponding to its execution order in the node sorting table from largest to smallest in claim 7. But sequentially searching each node corresponding to its execution order in the node sorting table from largest to smallest does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 8 is dependent on claim 6 and includes all the limitations of claim 6. Claim
8 recites wherein searching is paused upon finding two nodes with the same execution order, and execution orders of the two nodes with the same execution order are updated according to the interval sorting rule in claim 8. But searching is paused upon finding two nodes with the same execution order, and execution orders of the two nodes with the same execution order are updated according to the interval sorting rule does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 9 is dependent on claim 8 and includes all the limitations of claim 8. Claim
9 recites determining an interval start point and an interval end point for each of the
two nodes with the same execution order and updating the executions order of the two nodes with the same execution order by comparing numbers of nodes comprised in respective intervals corresponding to the two nodes in claim 9. But determining an interval start point and an interval end point for each of the two nodes with the same execution order and updating the executions order of the two nodes with the same execution order by comparing numbers of nodes comprised in respective intervals corresponding to the two nodes does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 10 is dependent on claim 9 and includes all the limitations of claim 9. Claim 10 recites wherein when there exist junction nodes between the two nodes in an input direction, using a latest-In-Junction node as the interval start point for each of the
two nodes; otherwise, using respective inputs corresponding to the two nodes as
their interval start points; and wherein when there exist junction nodes between the two nodes in an output direction, using a latest-Out-Junction node as the interval end point for each of the two nodes; otherwise, using the nodes themselves as their respective interval end points.in claim 10. But using respective inputs corresponding to the two nodes as their interval start points; and wherein when there exist junction nodes between the two nodes in an output direction, using a latest-Out-Junction node as the interval end point for each of the two nodes does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 11 is dependent on claim 9 and includes all the limitations of claim 9. Claim 11 recites wherein the numbers of nodes comprised in the respective intervals
corresponding to the two nodes are different, among the two nodes, using the
node corresponding to the interval with fewer nodes as a next node for the other
node; and wherein the numbers of nodes comprised in the respective intervals
corresponding to the two nodes are the same, selectively adjusting the intervals
corresponding to the two nodes based on their interval start points in claim 11. But wherein the numbers of nodes comprised in the respective intervals corresponding to the two nodes are the same, selectively adjusting the intervals corresponding to the two nodes based on their interval start points does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 12 is dependent on claim 11 and includes all the limitations of claim 11. Claim 12 recites wherein the interval start points of the two nodes are the latest-In-Junction node in the input direction, adjusting the respective intervals corresponding to the two nodes; and wherein the interval start points of the two nodes are their respective inputs, randomly updating the execution orders of the two nodes in claim 11. But adjusting the respective intervals corresponding to the two nodes; and wherein the interval start points of the two nodes are their respective inputs, randomly updating the execution orders of the two nodes does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 13 is dependent on claim 12 and includes all the limitations of claim 12. Claim 13 recites wherein adjusting the respective intervals corresponding to the two nodes comprises: using the inputs corresponding to the two nodes as their interval start points, using the nodes themselves as their interval end points, and then updating the execution orders of the two nodes by comparing the numbers of nodes comprised in their respective intervals in claim 13. But using the inputs corresponding to the two nodes as their interval start points, using the nodes themselves as their interval end points, and then updating the execution orders of the two nodes by comparing the numbers of nodes comprised in their respective intervals does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 14 is dependent on claim 12 and includes all the limitations of claim 12. Claim 14 recites wherein randomly updating the execution orders of the two nodes comprises: randomly selecting one of the two nodes as the next node for the other node in claim 14. But randomly updating the execution orders of the two nodes comprises: randomly selecting one of the two nodes as the next node for the other node does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 15 is dependent on claim 6 and includes all the limitations of claim 6. Claim 15 recites wherein for each execution order, the searching is paused after finding all nodes corresponding to said execution order, and execution orders of all nodes corresponding to said execution order are updated according to the interval sorting rule in claim 15. But the searching is paused after finding all nodes corresponding to said execution order, and execution orders of all nodes corresponding to said execution order are updated according to the interval sorting rule does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 16 is dependent on claim 1 and includes all the limitations of claim 1. Claim 15 recites wherein the computer program when executed by a processor in claim 15. But the computer program when executed by a processor does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 17 is dependent on claim 1 and includes all the limitations of claim 1. Claim 17 recites memory storing a computer program; and a processor in communication with the memory in claim 1. But the memory storing a computer program; and a processor in communication with the memory does not go beyond the abstract idea itself. There are no additional components in the claim that would make it significantly more than the abstract idea.
Claim 16 is rejected under 35 U.S.C. 101 because they are directed to non-
statutory subject matter “A computer-readable storage medium". The broadest reasonable interpretation of a claim drawn to a computer storage medium covers forms of non-transitory tangible media and transitory propagating signals per se in view of the
ordinary and customary meaning of computer storage medium. Transitory signal does
not fall within a statutory category since it is clearly not a series of steps or acts to
constitute a process, not a mechanical device or combination of mechanical devices to
constitute a machine, not a tangible physical article or object which is some form of
matter to be a product and constitute a manufacture, and not a composition of two or
more substances to constitute a composition of matter. Note that a claim drawn to such
a computer-readable storage medium that covers both transitory and non-transitory embodiments may be amended to narrow the claim to cover only statutory embodiments to avoid a rejection under 35 U.S.C. § 101 by adding the limitation "non-transitory" to the claim.
Claim Rejections 35 U.S.C. §103
6. 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.
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.
7. 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:
Claims 1-5 and 16-17 are rejected under 35 U.S.C. 103 as being unpatentable over De Peuter et al. (US 2009/0157724 A1) in view of MOITA et al. (US 2021/0004263 A1).
Regarding claim 1, De Peuter teaches a sorting method, comprising:
acquiring a directed acyclic graph to be sorted, (See De Peuter paragraph [0017], Fig. 3A, From received information, process 100 creates a data structure (e.g., a directed acyclic graph), and recording input nodes and output nodes of each node in the directed acyclic graph, (See , De Peuter paragraph [0021], Each reference count has a number of entries at least equal to a number of tracked states for corresponding nodes);
obtaining a global depth of each node based on input-output relationships among nodes in the directed acyclic graph, (See De Peuter paragraph [0019], a directed acyclic graph 205 can be considered as a generalization of a tree in which certain sub-trees can be shared by different parts of the tree.,,Depth table below identifies depth from root node N1 for each of the other ten nodes), thereby generating a global depth table, wherein the global depth of each node, (See De Peuter paragraph [0032], When the task list on depth 5 is executed, state of leaf node L42 is changed from OK to WARNING, global WARNING count on node N41 is incremented as shown in its table 220, and a refresh task for node), is defined as a number of nodes involved from said node in the directed acyclic graph along directed edges to a corresponding output of said node, (See De Peuter paragraph [0019], graph 205 is a directed graph with no directed cycles, no directed path exists for any given node 210 in graph 205 that both starts and ends at that node. Such a directed acyclic graph 205 can be considered as a generalization of a tree in which certain sub-trees can be shared by different parts of the tree. Each node 210 of graph 205 represents a particular business or information technology component, and directed edges 212).
De Peuter does not explicitly disclose determining an execution order of each node based on the global depth of each node, and a total number of the nodes in the directed acyclic graph, and generating a node sorting table.
However, MOITA teaches determining an execution order of each node based on the global depth of each node and a total number of the nodes (See MOITA paragraph [0024], a set of heuristics is applied. FIG. 3 is a flowchart 300 illustrating steps in a heuristic for determining a next node from a dependency graph…This heuristic approach of flowchart 300 is designed to minimize resource contention, thereby reducing the number of wasted execution cycles), in the directed acyclic graph and generating a node sorting table, (See MOITA paragraph [0012], A dependency graph is a directed acyclic graph where each node represents an object (in this case, a task), and each edge represents a dependency…where the dependent node is the child to the node it depends from (in this case, Node A is the parent and Node B is the child)).
It would have been obvious to one with ordinary skill in the art before the
effective filing date of the claimed invention was made to modify determining an execution order of each node based on the global depth of each node, and a total number of the nodes in the directed acyclic graph, and generating a node sorting table of MOITA in order to in order to improves performance and scalability of a real-time impact propagation system using large, complex service models.
Regarding claim 2, De Peuter taught the sorting method according to claim 1 as described above. De Peuter further teaches wherein obtaining the global depth of the nodes in the directed acyclic graph comprises: (See De Peuter paragraph [0019], a directed acyclic graph 205 can be considered as a generalization of a tree in which certain sub-trees can be shared by different parts of the tree.,,Depth table below identifies depth from root node N1 for each of the other ten nodes),
wherein for any node in the directed acyclic graph, (See De Peuter paragraph [0004], graph 205 can represent a service impact model for computing environment 200 of FIG. 2. As a service impact model, this directed acyclic graph 205 has nodes), sequentially searching for output nodes of each following node in an output direction until no more output nodes are found, and the global depth of said node is defined as N + 1, wherein N is a number of all nodes found during the search, (See De Peuter paragraph [0021], Each reference count has a number of entries at least equal to a number of tracked states for corresponding nodes. In addition, process 100 defines at least one view indicator for each node (Block 125). Each view indicator indicates whether a given node is restricted in a corresponding view).
Regarding claim 3, De Peuter taught the sorting method according to claim 1 as described above. De Peuter further teaches wherein for any of the nodes in the directed acyclic graph, (See De Peuter paragraph [0018], system service management, graph 205 can represent a service impact model for computing environment 200 of FIG. 2. As a service impact model, this directed acyclic graph 205 has nodes 210 representing service components and has directed edges), the execution order of said node is defined as a difference between the total number of the nodes in the directed acyclic graph and the global depth of said node, (See De Peuter paragraph [0018], a directed acyclic graph 205 can be considered as a generalization of a tree in which certain sub-trees can be shared by different parts of the tree...A node 210 which has no child nodes is referred to as a leaf node. For reference, Depth table below identifies depth from root node N1 for each of the other ten nodes).
Regarding claim 4, De Peuter taught the sorting method according to claim 1 as described above. De Peuter further teaches wherein after obtaining the global depth of each node, the sorting method further comprises, (See De Peuter paragraph [0019], a directed acyclic graph 205 can be considered as a generalization of a tree in which certain sub-trees can be shared by different parts of the tree.,,Depth table below identifies depth from root node N1 for each of the other ten nodes), De Peuter does not explicitly disclose determining whether a heuristic sorting set exists, and if the heuristic sorting set exists updating global depths of corresponding nodes in the directed acyclic graph based on computational dependency relationships among nodes in the heuristic sorting set, execution order relationships among the corresponding nodes in the directed acyclic graph are the same as those among the nodes in the heuristic sorting set.
However, MOITA teaches determining whether a heuristic sorting set exists, and if the heuristic sorting set exists updating global depths of corresponding nodes in the directed acyclic graph based on computational dependency relationships among nodes in the heuristic sorting set, (See MOITA paragraph [0042], stages of application of a heuristic (consistent with the heuristic of flowchart 300 of FIG. 3) for determining a next node, in accordance with an embodiment. Nodes that are connected to other nodes are connected by a directed edge from a parent node to a child node, indicating that the child node has a dependency on the parent node), execution order relationships among the corresponding nodes in the directed acyclic graph are the same as those among the nodes in the heuristic sorting set, (See MOITA Abstract, paragraph [0012], A dependency graph is a directed acyclic graph where each node represents an object (in this case, a task), and each edge represents a dependency. For example, if Node A has an edge directed to Node B (represented as A.fwdarw.B in this text), this means that Node B depends from Node A. This relationship may also be described as a parent/child relationship).
It would have been obvious to one with ordinary skill in the art before the
effective filing date of the claimed invention was made to modify determining whether a heuristic sorting set exists, and if the heuristic sorting set exists updating global depths of corresponding nodes in the directed acyclic graph based on computational dependency relationships among nodes in the heuristic sorting set, execution order relationships among the corresponding nodes in the directed acyclic graph are the same as those among the nodes in the heuristic sorting set of MOITA in order to improves performance and scalability of a real-time impact propagation system using large, complex service models.
Regarding claim 5, De Peuter taught the sorting method according to claim 4 as described above.
De Peuter does not explicitly disclose wherein the heuristic sorting set comprises a previous sorting result corresponding to the directed acyclic graph and a preset computational order among the nodes.
However, MOITA teaches wherein the heuristic sorting set comprises a previous sorting result, (See MOITA Abstract, a dependency graph to perform a topological sort, and applies a heuristic to determine which node to execute next from remaining nodes without dependency issues), corresponding to the directed acyclic graph and a preset computational order among the nodes, (See MOITA paragraph [0012], A dependency graph is a directed acyclic graph where each node represents an object (in this case, a task), and each edge represents a dependency).
It would have been obvious to one with ordinary skill in the art before the
effective filing date of the claimed invention was made to modify wherein the heuristic sorting set comprises a previous sorting result corresponding to the directed acyclic graph and a preset computational order among the nodes of MOITA in order to improves performance and scalability of a real-time impact propagation system using large, complex service models.
Regarding claim 16. De Peuter teaches the sorting method according to claim 1 as described above. De Peuter further teaches wherein the computer program when executed by a processor, implements the sorting method according to claim 1, (See De Peuter paragraph [0055], a programmable control device executing instructions organized into one or more program modules. A programmable control device may be a single computer processor).
Regarding claim 17. De Peuter teaches an electronic device, comprising:
a memory storing a computer program, (See De Peuter paragraph [0053], a process for propagating impact of state changes through a directed acyclic graph that is efficient in terms of both CPU and memory usage); and
a processor in communication with the memory, configured to execute the sorting method according to claim 1when the computer program is invoked, (See De Peuter paragraph [0075], a programmable control device executing instructions organized into one or more program modules… and semiconductor memory devices).
9, Claims 6-15 are rejected under 35 U.S.C. 103 as being unpatentable over De Peuter et al. (US 2009/0157724 A1) in view of MOITA et al. (US 2021/0004263 A1).
and further in view of Rosenberg et al. (US 2015/0302113 A1).
Regarding claim 6, De Peuter taught the sorting method according to claim 1 as described above. De Peuter further teaches wherein after obtaining the execution order of each node, (See De Peuter paragraph [0019], a directed acyclic graph 205 can be considered as a generalization of a tree in which certain sub-trees can be shared by different parts of the tree.,,Depth table below identifies depth from root node N1 for each of the other ten nodes), and generating the node sorting table, the sorting method further comprises, (See De Peuter paragraph [0031], tasks on a task list can be processed in parallel, while task lists in a work list must be processed sequentially in descending order of depth),
De Peuter together with MOITA does not explicitly disclose searching the node sorting table to confirm whether there exist nodes with a same execution order; wherein when the nodes with the same execution order exist, then updating execution orders of the nodes with the same execution order according to an interval sorting rule, such that the execution orders of the nodes are different; and wherein the interval sorting rule comprises: when one of the nodes in the directed acyclic graph depends on multiple nodes, the node among the multiple nodes being depended on that has fewer data dependency relationships in the directed acyclic graph is ordered later during interval sorting.
However, Rosenberg teaches searching the node sorting table to confirm whether there exist nodes with a same execution order; (See Rosenberg paragraph [0061], particularly when searching for a particular node 110 in the data structure 100, indexes can be created on the data structure 100. For example, an index can be created for all of the Name nodes in the data structure 100), wherein when the nodes with the same execution order exist, (See Rosenberg paragraph [0052], when the values for facts recorded in the nodes 110 of the data structure 100 change, new nodes 110 are split off from existing nodes 110), then updating execution orders of the nodes with the same execution order according to an interval sorting rule, such that the execution orders of the nodes are different; (See Rosenberg paragraph [0053], The child node 410b contains the last name of the person whose name is recorded in node 110a. If this person's name changes at some point in time, that change can be captured, in detail, by the data structure 100. For example, if the person gets married on Jun. 26, 2006, and her last name changes from Smith to Jones, this change is captured by splitting off a new child node 410c, containing the new last name. The end of the time interval recorded in node 410b is then updated to “Jun. 26, 2006”, and the beginning of the time interval in the new node 410c is similarly updated to “Jun. 26, 2006”), and wherein the interval sorting rule comprises: when one of the nodes in the directed acyclic graph depends on multiple nodes, (See Rosenberg paragraph [0008], the directed acyclic graph is updated with changed values by splitting a node containing the old value into a new node, containing the changed value and a new time of life interval which begins as of the time of the change in value, and retaining the old node with the old value and an updated time of life interval that is terminated as of the time of the change in value), the node among the multiple nodes being depended on that has fewer data dependency relationships in the directed acyclic graph is ordered later during interval sorting, (See Rosenberg paragraph [0016],(legacy databases are transformed into directed acyclic graph data structures having parent and child nodes, storing data items comprising an item of information, and a time of life interval for that item of information).
It would have been obvious to one with ordinary skill in the art before the
effective filing date of the claimed invention was made to modify searching the node sorting table to confirm whether there exist nodes with a same execution order; wherein when the nodes with the same execution order exist, then updating execution orders of the nodes with the same execution order according to an interval sorting rule, such that the execution orders of the nodes are different; and wherein the interval sorting rule comprises: when one of the nodes in the directed acyclic graph depends on multiple nodes, the node among the multiple nodes being depended on that has fewer data dependency relationships in the directed acyclic graph is ordered later during interval sorting. of Rosenberg in order to improves performance and scalability of a real-time impact propagation system using large, complex service models.
Regarding claim 7, De Peuter taught the sorting method according to claim 6 as described above.
De Peuter together with MOITA does not explicitly disclose wherein searching the node sorting table comprises, sequentially searching each node corresponding to its execution order in the node sorting table from largest to smallest .
However, Rosenberg teaches wherein searching the node sorting table comprises, (See Rosenberg paragraph [0061], particularly when searching for a particular node 110 in the data structure 100, indexes can be created on the data structure 100. For example, an index can be created for all of the Name nodes in the data structure 100), sequentially searching each node corresponding to its execution order in the node sorting table from largest to smallest, (See Rosenberg paragraph [0070], the nodes 110 of the data structure 100 are preferably stored in topological order with parents always appearing before children in the sequence of entries, so that the information about the parent/child relationships (i.e. the edges 120) only has to be stored once, rather than twice (once for each end of the edge 120)).
It would have been obvious to one with ordinary skill in the art before the
effective filing date of the claimed invention was made to modify wherein searching the node sorting table comprises, sequentially searching each node corresponding to its execution order in the node sorting table from largest to smallest of Rosenberg in order to improves performance and scalability of a real-time impact propagation system using large, complex service models.
Regarding claim 8, De Peuter taught the sorting method according to claim 6 as described above.
De Peuter together with MOITA does not explicitly disclose wherein for each execution order, searching is paused upon finding two nodes with the same execution order, and execution orders of the two nodes with the same execution order are updated according to the interval sorting rule.
However, Rosenberg teaches wherein for each execution order, searching is paused upon finding two nodes with the same execution order, and execution orders of the two nodes with the same execution order are updated according to the interval sorting rule, (See Rosenberg paragraph [0008], the directed acyclic graph is updated with changed values by splitting a node containing the old value into a new node, containing the changed value and a new time of life interval which begins as of the time of the change in value, and retaining the old node with the old value and an updated time of life interval that is terminated as of the time of the change in value).
It would have been obvious to one with ordinary skill in the art before the
effective filing date of the claimed invention was made to modify wherein for each execution order, searching is paused upon finding two nodes with the same execution order, and execution orders of the two nodes with the same execution order are updated according to the interval sorting rule of Rosenberg in order to improves performance and scalability of a real-time impact propagation system using large, complex service models.
Regarding claim 9, De Peuter taught the sorting method according to claim 8 as described above.
De Peuter together with MOITA does not explicitly disclose wherein updating the execution orders of the two nodes with the same execution order according to the interval sorting rule comprises, determining an interval start point and an interval end point for each of the two nodes with the same execution order, and updating the executions order of the two nodes with the same execution order by comparing numbers of nodes comprised in respective intervals corresponding to the two nodes.
However, Rosenberg teaches wherein updating the execution orders of the two nodes with the same execution order according to the interval sorting rule comprises, (See Rosenberg paragraph [0008], the directed acyclic graph is updated with changed values by splitting a node containing the old value into a new node, containing the changed value and a new time of life interval which begins as of the time of the change in value): determining an interval start point and an interval end point for each of the two nodes with the same execution order, (See Rosenberg paragraph [0059], create the node 110c, setting the start and end dates for the interval and creating the empty node. The fourth and fifth instructions create the two directed edge types); and updating the executions order of the two nodes with the same execution order by comparing numbers of nodes comprised in respective intervals corresponding to the two nodes, (See Rosenberg paragraph [0008], the Name node 110a is created to have the same time of life interval as the parent node 110b. Alternatively, if it is known at creation time that the name of the person is no longer valid (i.e. the name is a prior name for the person that has subsequently changed), then the time of life interval can be created with a different end date. Similarly, the time of life interval can be created with a different start date as well, to accurately reflect the historical state of when the person's name changed).
It would have been obvious to one with ordinary skill in the art before the
effective filing date of the claimed invention was made to modify wherein updating the execution orders of the two nodes with the same execution order according to the interval sorting rule comprises: determining an interval start point and an interval end point for each of the two nodes with the same execution order, and updating the executions order of the two nodes with the same execution order by comparing numbers of nodes comprised in respective intervals corresponding to the two nodes of Rosenberg in order to improves performance and scalability of a real-time impact propagation system using large, complex service models.
Regarding claim 10, De Peuter taught the sorting method according to claim 9 as described above.
De Peuter together with MOITA does not explicitly disclose wherein determining the interval start point and interval end point for each of the two nodes with the same execution order comprises, wherein when there exist junction nodes between the two nodes in an input direction, using a latest-In-Junction node as the interval start point for each of the two nodes, otherwise, using respective inputs corresponding to the two nodes as their interval start points, and wherein when there exist junction nodes between the two nodes in an output direction, using a latest-Out-Junction node as the interval end point for each of the two nodes, otherwise, using the nodes themselves as their respective interval end points.
However, Rosenberg teaches wherein determining the interval start point and interval end point for each of the two nodes with the same execution order comprises, (See Rosenberg paragraph [0059], create the node 110c, setting the start and end dates for the interval and creating the empty node. The fourth and fifth instructions create the two directed edge types); wherein when there exist junction nodes between the two nodes in an input direction, using a latest-In-Junction node as the interval start point for each of the two nodes, (See Rosenberg paragraph [0042], A directed acyclic graph is a directed graph with no directed cycles. That is, it is formed by a collection of nodes 110 and directed edges 120, each edge 120 connecting one node 110 to another, such that there is no way to start at a given node, such as node 110a, and follow a sequence of directed edges 120 that loops back to that same node); otherwise, using respective inputs corresponding to the two nodes as their interval start points, (See Rosenberg paragraph [0059], The computer instructions subsequent to (8) in Table 1 create the Employed node 110c. The first three instructions create the node 110c, setting the start and end dates for the interval and creating the empty node); and wherein when there exist junction nodes between the two nodes in an output direction, (See Rosenberg paragraph [0043], Nodes 110 in the data structure 100 can be related to other nodes 110 through a child/parent relationship. That is, one node 110 can be the child of another node 110. A node 110 is a child of another node 110 if the child node 110 has a directed edge 120 connecting from the child node 110, in the direction of traversal, to a parent node 110), using a latest-Out-Junction node as the interval end point for each of the two nodes, (See Rosenberg paragraph [0117], nodes 1610 and 1620 are cyclical nodes, connected by directed edges 1670a and 1670b. Being cyclical nodes, nodes 1610 and 1620 have precisely the same time of life interval); otherwise, using the nodes themselves as their respective interval end points, (See Rosenberg paragraph [0053], the end of the time interval recorded in node 410b is then updated to “Jun. 26, 2006”, and the beginning of the time interval in the new node 410c is similarly updated).
It would have been obvious to one with ordinary skill in the art before the
effective filing date of the claimed invention was made to modify wherein determining the interval start point and interval end point for each of the two nodes with the same execution order comprises, wherein when there exist junction nodes between the two nodes in an input direction, using a latest-In-Junction node as the interval start point for each of the two nodes, otherwise, using respective inputs corresponding to the two nodes as their interval start points, and wherein when there exist junction nodes between the two nodes in an output direction, using a latest-Out-Junction node as the interval end point for each of the two nodes, otherwise, using the nodes themselves as their respective interval end points of Rosenberg in order to improves performance and scalability of a real-time impact propagation system using large, complex service models.
Regarding claim 11, De Peuter taught the sorting method according to claim 9 as described above.
De Peuter together with MOITA does not explicitly disclose wherein updating the execution orders of the two nodes with the same execution order by comparing numbers of nodes comprised in respective intervals corresponding to the two nodes comprises: wherein the numbers of nodes comprised in the respective intervals corresponding to the two nodes are different, among the two nodes, using the node corresponding to the interval with fewer nodes as a next node for the other node, and wherein the numbers of nodes comprised in the respective intervals corresponding to the two nodes are the same, selectively adjusting the intervals corresponding to the two nodes based on their interval start points.
However, Rosenberg teaches wherein updating the execution orders of the two nodes with the same execution order by comparing numbers of nodes comprised in respective intervals corresponding to the two nodes comprises, (See Rosenberg paragraph [0053], The child node 410b contains the last name of the person whose name is recorded in node 110a. If this person's name changes at some point in time, that change can be captured, in detail, by the data structure 100. For example, if the person gets married on Jun. 26, 2006, and her last name changes from Smith to Jones, this change is captured by splitting off a new child node 410c, containing the new last name. The end of the time interval recorded in node 410b is then updated to “Jun. 26, 2006”, and the beginning of the time interval in the new node 410c is similarly updated to “Jun. 26, 2006”), wherein the numbers of nodes comprised in the respective intervals corresponding to the two nodes are different, among the two nodes, using the node corresponding to the interval with fewer nodes as a next node for the other node, (See Rosenberg paragraph [0058], the time of life interval can be created with a different start date as well, to accurately reflect the historical state of when the person's name changed. The first instruction subsequent to (6) creates the Name node 110a, and also the directed edge 120a, which points to the parent node 110b. The second instruction sets the value of the Name node to “Mary Smith”); and wherein the numbers of nodes comprised in the respective intervals corresponding to the two nodes are the same, (See Rosenberg paragraph [0008], the directed acyclic graph is updated with changed values by splitting a node containing the old value into a new node, containing the changed value and a new time of life interval which begins as of the time of the change in value, and retaining the old node with the old value and an updated time of life interval that is terminated as of the time of the change in value), selectively adjusting the intervals corresponding to the two nodes based on their interval start points, (See Rosenberg paragraph [0107], The selected node may indicate the lower endpoint and upper endpoint of that secondary directed acyclic graph interval. In this way, the validity of the selected node may be measured by time or any other criteria capable of being represented in a directed acyclic graph).
It would have been obvious to one with ordinary skill in the art before the
effective filing date of the claimed invention was made to modify wherein updating the execution orders of the two nodes with the same execution order by comparing numbers of nodes comprised in respective intervals corresponding to the two nodes comprises: wherein the numbers of nodes comprised in the respective intervals corresponding to the two nodes are different, among the two nodes, using the node corresponding to the interval with fewer nodes as a next node for the other node, and wherein the numbers of nodes comprised in the respective intervals corresponding to the two nodes are the same, selectively adjusting the intervals corresponding to the two nodes based on their interval start points of Rosenberg in order to improves performance and scalability of a real-time impact propagation system using large, complex service models.
Regarding claim 12, De Peuter taught the sorting method according to claim 11 as described above.
De Peuter together with MOITA does not explicitly disclose wherein selectively adjusting the intervals corresponding to the two nodes based on their interval start points comprises wherein the interval start points of the two nodes are the latest-In-Junction node in the input direction, adjusting the respective intervals corresponding to the two nodes, and wherein the interval start points of the two nodes are their respective inputs, randomly updating the execution orders of the two nodes.
However, Rosenberg teaches wherein selectively adjusting the intervals corresponding to the two nodes based on their interval start points comprises, (See Rosenberg paragraph [0042], The first instruction creates the start date for the time of life interval for the Person node 110b, with a start date of Apr. 5, 1974 (“19740405”). The second instruction sets the end date to the “MAX” date):
wherein the interval start points of the two nodes are the latest-In-Junction node in the input direction, adjusting the respective intervals corresponding to the two nodes, (See Rosenberg paragraph [0042], A directed acyclic graph is a directed graph with no directed cycles. That is, it is formed by a collection of nodes 110 and directed edges 120, each edge 120 connecting one node 110 to another, such that there is no way to start at a given node); and wherein the interval start points of the two nodes are their respective inputs, randomly updating the execution orders of the two nodes, (See Rosenberg paragraph [0051], the data structure 100 is updated by locating the node who's value has changed, for example the node 110a containing the name of the person of node 110b. The time of life interval for the information item stored in the node 110a is updated, by recording the end date/time for the interval).
It would have been obvious to one with ordinary skill in the art before the
effective filing date of the claimed invention was made to modify wherein selectively adjusting the intervals corresponding to the two nodes based on their interval start points comprises wherein the interval start points of the two nodes are the latest-In-Junction node in the input direction, adjusting the respective intervals corresponding to the two nodes, and wherein the interval start points of the two nodes are their respective inputs, randomly updating the execution orders of the two nodes of Rosenberg in order to improves performance and scalability of a real-time impact propagation system using large, complex service models.
Regarding claim 13, De Peuter taught the sorting method according to claim 12 as described above.
De Peuter together with MOITA does not explicitly disclose wherein adjusting the respective intervals corresponding to the two nodes comprises: using the inputs corresponding to the two nodes as their interval start points, using the nodes themselves as their interval end points, and then updating the execution orders of the two nodes by comparing the numbers of nodes comprised in their respective intervals.
However, Rosenberg teaches wherein adjusting the respective intervals corresponding to the two nodes comprises: using the inputs corresponding to the two nodes as their interval start points, (See Rosenberg paragraph [0060], The original Name node 110e is modified, by the first instruction subsequent to (9), such that the end date for the time of life interval in the original Name node 110e now reads “Jan. 1, 1911”. This end date is also used as the start date for the time of life interval in the new Name node 110f), using the nodes themselves as their interval end points, and then updating the execution orders of the two nodes by comparing the numbers of nodes comprised in their respective intervals, (See Rosenberg paragraph [0051], the data structure 100 is updated by locating the node who's value has changed, for example the node 110a containing the name of the person of node 110b. The time of life interval for the information item stored in the node 110a is updated, by recording the end date/time for the interval).
It would have been obvious to one with ordinary skill in the art before the
effective filing date of the claimed invention was made to modify wherein adjusting the respective intervals corresponding to the two nodes comprises: using the inputs corresponding to the two nodes as their interval start points, using the nodes themselves as their interval end points, and then updating the execution orders of the two nodes by comparing the numbers of nodes comprised in their respective intervals of Rosenberg in order to improves performance and scalability of a real-time impact propagation system using large, complex service models.
Regarding claim 14, De Peuter taught the sorting method according to claim 12 as described above.
De Peuter together with MOITA does not explicitly disclose wherein randomly updating the execution orders of the two nodes comprises: randomly selecting one of the two nodes as the next node for the other node.
However, Rosenberg teaches wherein randomly updating the execution orders of the two nodes comprises: randomly selecting one of the two nodes as the next node for the other node, (See Rosenberg; paragraph [0107], secondary directed acyclic graph may indicate a range or interval a node is associated with. Data within a selected node is valid over an interval of the secondary directed acyclic graph).
It would have been obvious to one with ordinary skill in the art before the
effective filing date of the claimed invention was made to modify wherein randomly updating the execution orders of the two nodes comprises: randomly selecting one of the two nodes as the next node for the other node of Rosenberg in order to improves performance and scalability of a real-time impact propagation system using large, complex service models.
Regarding claim 15, De Peuter taught the sorting method according to claim 6 as described above.
De Peuter together with MOITA does not explicitly disclose wherein for each execution order, the searching is paused after finding all nodes corresponding to said execution order, and execution orders of all nodes corresponding to said execution order are updated according to the interval sorting rule.
However, Rosenberg teaches wherein for each execution order, the searching is paused after finding all nodes corresponding to said execution order, and execution orders of all nodes corresponding to said execution order are updated according to the interval sorting rule, (See Rosenberg paragraph [0008], the directed acyclic graph is updated with changed values by splitting a node containing the old value into a new node, containing the changed value and a new time of life interval which begins as of the time of the change in value, and retaining the old node with the old value and an updated time of life interval that is terminated as of the time of the change in value).
It would have been obvious to one with ordinary skill in the art before the
effective filing date of the claimed invention was made to modify wherein for each execution order, the searching is paused after finding all nodes corresponding to said execution order, and execution orders of all nodes corresponding to said execution order are updated according to the interval sorting rule of Rosenberg in order to improves performance and scalability of a real-time impact propagation system using large, complex service models.
Conclusions/Points of Contacts
The prior art made of record and not relied upon is considered pertinent to
applicant’s disclosure. See form PTO-892.
Kolipaka et al. (US 2012/0173509 A1), The method further includes the steps of reducing the number of edge crossings in the layout of the directed acyclic graph, straightening the edges of the layout of the directed acyclic graph, compacting one or more subgraphs along x-coordinate axis to generate a compacted DAG layout, and assigning new y-coordinates to the nodes of the one or more subgraphs such that the nodes do not overlap in the y-coordinate to generate a new layout for directed acyclic graph.
Rosendahl et al. (US 2024/0119092 A1) The graph execution engine may be configured to perform data processing using the processing graphs built by the graph build engine or stored in the nodes database, where execution of the processing graphs includes traversing the processing graph to each node based upon the construction and dependencies of the graph and executing work components for each node.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MULUEMEBET GURMU whose telephone number is (571)270-7095. The examiner can normally be reached M-F 9am - 5pm.
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, Tony Mahmoudi can be reached at 5712724078. 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.
/MULUEMEBET GURMU/Primary Examiner, Art Unit 2163