DETAILED ACTION
This communication is in response to the application filed 9/6/23 in which claims 1-21 were presented for examination.
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 .
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-21 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Claim 1
A graph-traversal-identification subsystem within a problem-addressing system, the graph-traversal-identification subsystem comprising:
one or more processors;
one or more memories; and
computer instructions, stored in one or more of the one or more memories that, when executed by one or more of the one or more processors, control the graph-traversal-identification system to
[1] receive information about a problem, a source, and a target from the problem-addressing system,
[2] initialize a graph that represents possible solutions to the problem to include a source node and a target node corresponding to the received information about the source and the target,
[3] associate the source node with a source-node cumulative path weight,
[4] expand the graph outward from the source node by
[4a] iteratively
[4b] selecting an already generated node of the graph, and
[4c] tracking an optimal, near-optimal, or locally-optimal path from the source node to the nodes which neighbor the selected node, each neighbor node associated with a deferrable cumulative weight representing the cumulative weight of a path from the source node to the neighbor node
[4d] until the selected node is the target node,
[5] encoding an optimal, near optimal, or locally optimal traversal path that includes the source node and the target node and that may include one or more additional nodes, and
[6] providing the encoded traversal path to the problem-addressing system, which uses the encoded traversal path to address the problem.
Step 1: YES. Claim 1 (and each of its dependent claims) is directed to a system and, therefore, falls in a statutory category.
Step 2A Prong 1: YES.
Limitation [2] describes initializing a graph representing possible solutions to a problem to include a source node and target node. “Initializing” under a broadest reasonable interpretation encompasses a user manually annotating a graph representation of a problem and can be performed by evaluation, opinion, and judgment. Thus, the limitation falls under the Mental Processes grouping of abstract ideas. Limitation [3] describes associating the source node with a source node cumulative path weight. “Associating” may also be performed manually by annotation or mentally by a user. Limitation [4] describes expanding the graph by iteratively selecting a node of the graph and tracking an optimal, near-optimal, or locally-optimal path from the source node to nodes which neighbor the selected node. “Expanding” in the context of the claim and under a broadest reasonable interpretation encompasses a user manually tracing a path to nodes which neighbor the selected node and may be performed by evaluation, opinion, and judgment. “Associating” each neighbor node with a deferrable cumulative weight representing the cumulative weight of a path from the source node to the neighbor node may also be performed mentally. Repeating this process until the selected node is the target node may also be performed mentally. Limitation [5] describes encoding an optimal, near-optimal or locally optimal traversal path. Encoding may encompass a creating a path diagram of the optimal path and may also be performed mentally or with the aid of pen and paper.
Step 2A Prong 2/Step 2B: NO.
Limitation [1] describes receiving information about a problem, a source, and a target from the problem addressing system. Receiving data is an insignificant extra solution activity of mere data gathering. The type or source of data does not cause the data gathering to integrate the judicial exception into a practical application. Under 2B this insignificant extra solution activity is well understood routine and conventional activity. See “Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec, 838 F.3d at 1321, 120 USPQ2d at 1362.” Limitation [6] describes providing the encoded traversal path to the problem-addressing system. Transmitting data is also an insignificant extra solution activity of mere data gathering. The type or source of data does not cause the data gathering to integrate the judicial exception into a practical application. Under 2B this insignificant extra solution activity is well understood routine and conventional activity. See “Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec, 838 F.3d at 1321, 120 USPQ2d at 1362.”
Recitation of generic computer components (e.g., processors, memory, computer instructions stored on the memory) is considered mere instruction to “apply” the exception and, therefore, does not integrate the judicial exception into a practical application or provide an inventive concept.
Accordingly, claim 1 is ineligible.
Claim 21 is a device claim corresponding to claim 1 and, therefore, is similarly analyzed. Claim 21 additionally recites a physical data-storage device encoded with computer instructions that, when executed by one or more processors of a graph-traversal-identification subsystem, within a problem-addressing system, having one or more processors and one or more memories that store the computer instructions. However, the recitation of generic computer components is considered mere instruction to “apply” the exception and, therefore, does not integrate the exception or provide an inventive concept.
Accordingly, claim 21 is ineligible.
Claim 2
The graph-traversal-identification subsystem of claim 1 wherein the graph comprises:
multiple nodes; and
multiple edges that each connects two nodes and that each is associated with a weight.
Step 2A Prong 1: YES. Claim 2 further describes the graph as having multiple nodes and multiple edges connecting nodes. As discussed above, initializing such a graph falls under the Mental Processes grouping of abstract ideas.
Claim 3
The graph-traversal-identification subsystem of claim 2
[1] wherein an optimal, near optimal, or locally optimal traversal path begins with the source node, ends with the target node;
[2] wherein the optimal, near optimal, or locally optimal traversal path may include one or more additional nodes;
[3] wherein, when optimal, near optimal, or locally optimal traversal path includes only the source node and the target node, the optimal traversal path includes an edge that connects the source node to the target node;
[4] wherein, when optimal, near optimal, or locally optimal traversal path includes one or more additional nodes, the optimal traversal path includes edges that interconnect the source node through the one or more additional nodes to the target node; and
[5] wherein the cumulative weight of the optimal traversal path, which is the sum of the weights of the edges in the optimal traversal path, meets an optimization condition.
Step 2A Prong 1: YES. Limitations [1]-[4] describe the optimal, near-optimal, or locally optimal traversal paths further. As discussed above, tracking such paths through a graph representation may be performed mentally by evaluation, opinion, and judgement and, therefore, falls under the Mental Processes grouping of abstract ideas.
Limitation [5] describes the cumulative weight of the optimal path as the sum of the weights meeting an optimization condition. This describes a calculation or mathematical relationship and, therefore, falls under the Mathematical Concepts grouping of abstract ideas.
Claim 4
The graph-traversal-identification subsystem of claim 3
[1] wherein the optimization condition requires that the cumulative weight of an optimal traversal path is less than or equal to the cumulative weights of all other traversal paths in the graph when the graph represents a minimization problem;
[2] wherein the optimization condition requires that the difference between the cumulative weight of a near-optimal path and the cumulative weight of an optimal path of the graph is less than or equal to a threshold fraction of the cumulative weight of the optimal path when the graph represents a minimization problem;
[3] wherein the optimization condition requires that the cumulative weight of a locally optimal traversal path is less than or equal to the cumulative weights of all other traversal paths discovered in the graph when the graph represents a minimization problem;
[4] wherein the optimization condition requires that the cumulative weight of an optimal traversal path is greater than or equal to the cumulative weights of all other traversal paths in the graph when the graph represents a maximization problem;
[5] wherein the optimization condition requires that the difference between the cumulative weight of an optimal path of the graph and the cumulative weight of a near-optimal path is less than or equal to a threshold fraction of the cumulative weight of the optimal path when the graph represents a maximization problem; and
[6] wherein the optimization condition requires that the cumulative weight of a locally optimal traversal path is greater than or equal to the cumulative weights of all other traversal paths discovered in the graph when the graph represents a maximization problem.
Step 2A Prong 1: YES. Limitations [1]-[6] describe a set of mathematical relationships governing the optimization condition and, therefore, falls under the Mathematical Concepts grouping of abstract ideas.
Accordingly, claim 4 is ineligible.
Claim 5
The graph-traversal-identification subsystem of claim 1
[1] wherein a deferrable cumulative weight is iteratively or recursively computed as the sum of incremental weights;
[2] wherein a deferrable cumulative weight has a provisional weight at a particular point in time equal to the sum of incremental weights iteratively or recursively computed up to the point in time; and
[3] wherein a deferrable cumulative weight has a final weight when there are no further incremental weights that can be iteratively or recursively computed and added to the final weight.
Step 2A Prong 1: YES. Each of limitations [1]-[3] describe a set of mathematical calculations and/or a mathematical condition and, therefore, fall under the Mathematical Concepts grouping of abstract ideas.
Accordingly, claim 5 is ineligible.
Claim 6
The graph-traversal-identification subsystem of claim 5 wherein a first deferrable cumulative weight is compared to a second deferrable cumulative weight by
iteratively
[1] when the first deferrable cumulative weight has a final weight and the second deferrable cumulative weight has a final weight,
comparing the first deferrable cumulative weight to the second deferrable cumulative weight to generate a comparison result, and
returning the comparison result;
[2] when the first deferrable cumulative weight has a final weight and the second deferrable cumulative weight has a provisional weight,
when the provisional weight of the second deferrable cumulative weight is greater than the final weight of the first deferrable cumulative weight, returning an indication that the first deferrable cumulative weight is less than the second deferrable cumulative weight, and
otherwise, attempting to advance the provisional weight of the second deferrable cumulative weight past the first deferrable cumulative weight;
[3] when the second deferrable cumulative weight has a final weight and the first deferrable cumulative weight has a provisional weight,
when the provisional weight of the first deferrable cumulative weight is greater than the final weight of the second deferrable cumulative weight, returning an indication that the second deferrable cumulative weight is less than the first deferrable cumulative weight, and
otherwise, attempting to advance the provisional weight of the first deferrable cumulative weight past the second deferrable cumulative weight; and
[4] when the first deferrable cumulative weight has a provisional weight and the second deferrable cumulative weight has a provisional weight,
when the provisional weight of the first deferrable cumulative weight is less than or equal to the provisional weight of the second deferrable cumulative weight, attempting to advance the provisional weight of the first deferrable cumulative weight past the second deferrable cumulative weight, and
otherwise attempting to advance the provisional weight of the second deferrable cumulative weight past the first deferrable cumulative weight.
Step 2A Prong 1: YES.
Limitations [1]-[4] describe comparing the first deferrable cumulative weight to different quantities depending on the weight of the first deferrable cumulative weight and the second deferrable cumulative weight. Such comparisons may be performed mentally and, therefore, fall under the Mental Processes grouping of abstract ideas. Limitations [2]-[4] further describes attempting to advance a provisional weight past a second weight. This may be interpreted as a mental process as an incrementing of the provisional weight and, therefore, also falls under the Mental Processes grouping of abstract ideas.
Step 2A Prong 2/Step 2B: NO.
The additional elements of the claim fail to integrate the exception into a practical application or provide an inventive concept. Returning information is an insignificant extra solution activity of mere data outputting. Under 2B this insignificant extra solution activity is well understood routine and conventional activity. See “Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec, 838 F.3d at 1321, 120 USPQ2d at 1362.”
Accordingly, claim 6 is ineligible.
Claim 7
The graph-traversal-identification subsystem of claim 6 wherein, when both a first deferrable cumulative weight and a second deferrable cumulative weight have final weights, the first deferrable cumulative weight is compared to a second deferrable cumulative weight by:
when the final weight of the first deferrable cumulative weight is less than the final weight of the second deferrable cumulative weight, and returning an indication that the first deferrable cumulative weight is less than the final weight of the second deferrable cumulative weight;
when the final weight of the first deferrable cumulative weight is equal to the final weight of the second deferrable cumulative weight, returning an indication that the first deferrable cumulative weight is equal to the second deferrable cumulative weight; and
when the final weight of the first deferrable cumulative weight is greater than the final weight of the second deferrable cumulative weight, returning an indication that the first deferrable cumulative weight is greater than the second deferrable cumulative weight.
Step 2A Prong 1: YES. Comparing the first deferrable cumulative weight to the second deferrable cumulative weight when both have final weights may be performed mentally by a user and, therefore, falls under the Mental Concepts grouping of abstract ideas.
Step 2A Prong 2/Step 2B: NO.
The additional elements fail to integrate the exception into a practical application or provide an inventive concept. Returning an indication is an insignificant extra solution activity of mere data outputting. Under 2B this insignificant extra solution activity is well understood routine and conventional activity. See “Receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec, 838 F.3d at 1321, 120 USPQ2d at 1362.”
Accordingly, claim 7 is ineligible.
Claim 8
The graph-traversal-identification subsystem of claim 6 wherein a first deferrable cumulative weight having a provisional weight is attempted to be advanced past a second deferrable cumulative weight by advancing the first deferrable cumulative weight until either the first deferrable cumulative weight has a final weight or until the provisional weight of the first cumulative weight is greater than the provisional weight or final weight of the second deferrable cumulative weight.
Step 2A Prong 1: YES. Claim 7 describes “attempting to advance” a first weight past a second weight until the first weight has a final weight or until a provisional weight of the first weight is greater than the provisional weight of the final weight. “Attempting to advance” under a broadest reasonable interpretation encompasses a mathematical incrementing of the first weight under certain conditions and, therefore, falls under either a Mental Process or Mathematical Concept grouping of abstract ideas.
Accordingly, claim 7 is ineligible.
Claim 9
The graph-traversal-identification subsystem of claim 8 wherein a deferrable cumulative weight having a provisional weight is advanced by carrying out an iterative or recursive computation to generate an incremental weight that is added to the sum of incremental weights iteratively or recursively computed for the deferrable cumulative weight.
Step 2A Prong 1: YES. Iterative or recursive generation of an incremental weight may be performed mentally or by calculation and, therefore, falls under the Mental Processes and/or Mathematical Concepts grouping of abstract ideas. Adding the incremental weight to the sum of incremental weights iteratively also falls under the Mathematical Concepts grouping of abstract ideas.
Accordingly, claim 9 is ineligible.
Claim 10
The graph-traversal-identification subsystem of claim 6 further comprising a set of unvisited-node indications that is initialized to include an indication of the source node.
Step 2A Prong 1: YES. Initializing a set of unvisited node indication to include an indication of the source node may be performed manually or with the aid of pen and paper and, therefore, falls under the Mental Processes grouping of abstract ideas.
Accordingly, claim 10 is ineligible.
Claim 11
The graph-traversal-identification subsystem of claim 10 wherein selecting an already generated node of the graph while expanding the graph outward from the source node further comprises:
when the optimal, near optimal, or locally optimal traversal path has a lower cumulative weight than other possible paths from the source node to the target node,
selecting, from the set of unvisited-node indications, a node associated with a deferrable cumulative weight less than or equal to any deferrable cumulative weight associated with an unselected node in the set of unvisited-node indications; and
when the optimal, near optimal, or locally optimal traversal path has a greater cumulative weight than other possible paths from the source node to the target node,
selecting, from the set of unvisited-node indications, a node associated with a deferrable cumulative weight greater than or equal to any deferrable cumulative weight associated with an unselected node in the set of unvisited-node indications.
Step 2A Prong 1: YES. Selecting a node from a set of unvisited-node indication under specific conditions may be performed mentally by a user by evaluation, opinion, and judgment and, therefore, falls under the Mental Processes grouping of abstract ideas.
Accordingly, claim 11 is ineligible.
Claim 12
The graph-traversal-identification subsystem of claim 10 wherein expanding the graph outward from the source node further comprises, following selecting an already generated node of the graph:
[1] generating new deferrable cumulative weights for nodes that neighbor the selected node which have already been generated and added to the graph;
[2] generating new nodes that neighbor the selected node which have not yet been generated;
[3] generating new deferrable cumulative weights for the new nodes;
[4] associating the new deferrable cumulative weights with the new neighbor nodes; and
[5] adding the new neighbor nodes to the graph.
Step 2A Prong 1: YES.
Limitation [1] describes generating new deferrable cumulative weight. “Generating” in the context of the claim and under a broadest reasonable interpretation encompasses a mental process. Similarly, limitations [2]-[3] also describe “generating” new nodes and weights and these may also be performed mentally. Limitations [4] and [5] describe “associating” weights with new nodes and adding the new nodes to the graph. These may also be performed mentally by a user or with the aid of pen and paper.
Accordingly, claim 12 is ineligible.
Claim 13
The graph-traversal-identification subsystem of claim 12 wherein a new deferrable cumulative weight is generated for a neighbor node of the selected node by:
[1] generating a new deferrable cumulative weight;
[2] including, in the new deferrable cumulative weight, a provisional weight equal to the provisional weight or final weight of the deferrable cumulative weight associated with the selected node;
[3] including, in the new deferrable cumulative weight, any remaining iterative or recursive computations of the selected node not yet used to compute incremental weights for the selected weights; and
[4] adding, to the new deferrable cumulative weight, iterative or recursive computations related to the edge that connects the selected node to the generated neighbor node.
Step 2A Prong 1: YES.
Limitation [1] describes generating a new deferrable weight. “Generating” under a broadest reasonable interpretation encompasses a user mentally creating a weight by evaluation, opinion, and judgment. Limitation [2] describes including a provisional weight in the new deferrable weight. This also may be performed mentally by evaluation, opinion, and judgment. Limitation [3] describes computing incremental weights for the selected weights. This may be performed mentally. Limitation [4] describes performing an addition which falls under the Mathematical Concepts grouping of abstract ideas.
Accordingly, claim 13 is ineligible.
Claim 14
The graph-traversal-identification subsystem of claim 10 wherein tracking an optimal, near-optimal, or locally-optimal path from the source node to nodes which neighbor the selected node further comprises:
for each node that neighbors the selected node,
when the node was generated and added to the graph during the current graph-expansion iteration,
adding the node to the set of unvisited nodes, and
associating the node with an indication that the selected node precedes the node; and
when the node was not generated and added to the graph during the current graph-expansion iteration and when comparison of the new deferrable cumulative weight for the node to the deferrable cumulative weight associated with the node indicates that an optimal, near-optimal, or locally optimal path from the source node to the node should include the selected node,
associating the new deferrable cumulative weight for the node with the node, and
associating the node with an indication that the selected node precedes the node.
Step 2A Prong 1: YES.
Each of the steps of the claim may be performed mentally by a user by evaluation, opinion, and judgment. For each node, the user may add the node to the unvisited nodes and associate the node with an indication (e.g., annotation). Similarly, under the second set of conditions, the user may associate the new deferrable weight for the node with the node by simple annotation and an indication.
Accordingly, claim 14 is ineligible.
Claim 15
The graph-traversal-identification subsystem of claim 1
[1] wherein the problem [is] involves providing indications, to users of integrated development environments, of optimal or near-optimal code changes that will allow a programmer to access an instance of a particular type from a current programming scope within which the type is not available;
[2] wherein the source is an initial program state;
[3] wherein the target is a program state, obtained following a sequence of one or more code changes, in which the particular type is accessible from the current programming scope; and
[4] wherein each node of the graph represents a program state and each edge of the graph represents a code change.
Step 2A Prong 2/Step 2B: NO.
Limitation [1] describes the problem in terms of providing indication in an integrated development environment of code changes to allow a programmer to access an instance of a particular type. Limitations [2] and [3] describes the source and target as corresponding to program states and limitation [4] describes each node as a program state and each edge as a code change. These additional elements do not amount to more than generally linking the use of a judicial exception to a particular technological environment.
Accordingly, claim 15 is ineligible.
Claim 16
A method that improves a graph-traversal-identification subsystem, the method comprising:
identifying path weights and edge weights used by graph-traversal-identification subsystem; and
replacing the path weights and edge weights with deferrable cumulative weights.
Step 1: YES. Claim 16 (and each of its dependent claims) is directed to a method and, therefore, falls under a statutory category.
Step 2A Prong 1: YES. The claim describes identifying path weights and edge weights and replacing the weights with deferrable cumulative weights. These steps may be performed mentally or with the aid of pen and paper.
Accordingly, claim 16 is ineligible.
Claim 17
The method of claim 16
wherein a deferrable cumulative weight is iteratively or recursively computed as the sum of incremental weights;
wherein a deferrable cumulative weight has a provisional weight at a particular point in time equal to the sum of incremental weights iteratively or recursively computed up to the point in time; and
wherein a deferrable cumulative weight has a final weight when there are no further incremental weights that can be iteratively or recursively computed and added to the final weight.
Step 2A Prong 1: YES. The claim describes iteratively computing a sum of incremental weights as the deferrable cumulative weight, and a provisional weight as the sum of incremental weights iteratively computed up to that point in time, and a final weight when there are no further incremental weights to be added. Each of these steps may be performed mentally by a user. Alternatively, performing a sum is a mathematical calculation and, therefore, falls under the Mathematical Concepts grouping of abstract ideas.
Accordingly, claim 17 is ineligible.
Claim 18
The method of claim 17 wherein a first deferrable cumulative weight is compared to a second deferrable cumulative weight by
iteratively
when the first deferrable cumulative weight has a final weight and the second deferrable cumulative weight has a final weight,
comparing the first deferrable cumulative weight to the second deferrable cumulative weight to generate a comparison result, and
returning the comparison result;
when the first deferrable cumulative weight has a final weight and the second deferrable cumulative weight has a provisional weight,
when the provisional weight of the second deferrable cumulative weight is greater than the final weight of the first deferrable cumulative weight, returning an indication that the first deferrable cumulative weight is less than the second deferrable cumulative weight, and
otherwise, attempting to advance the provisional weight of the second deferrable cumulative weight past the first deferrable cumulative weight;
when the second deferrable cumulative weight has a final weight and the first deferrable cumulative weight has a provisional weight,
when the provisional weight of the first deferrable cumulative weight is greater than the final weight of the second deferrable cumulative weight, returning an indication that the second deferrable cumulative weight is less than the first deferrable cumulative weight, and
otherwise, attempting to advance the provisional weight of the first deferrable cumulative weight past the second deferrable cumulative weight; and
when the first deferrable cumulative weight has a provisional weight and the second deferrable cumulative weight has a provisional weight,
when the provisional weight of the first deferrable cumulative weight is less than or equal to the provisional weight of the second deferrable cumulative weight, attempting to advance the provisional weight of the first deferrable cumulative weight past the second deferrable cumulative weight, and
otherwise attempting to advance the provisional weight of the second deferrable cumulative weight past the first deferrable cumulative weight.
Step 2A Prong 1: YES. The claim describes performing a set of comparisons and/or making a determination whether the provisional weight is greater or less than a provisional weight/final weight. Comparing quantities may be performed by evaluation, opinion, and judgment and, therefore, falls under the Mental Processes grouping of abstract ideas. Attempting to advance the provisional weight, under its broadest reasonable interpretation, includes incrementing or increasing the provisional weight and, therefore, may be performed mentally.
Step 2A Prong 2/Step 2B: NO. Returning data corresponds to data outputting and, therefore, is insignificant extra-solution activity in 2A. Transmitting data is well understood, routine, and conventional in 2B. See MPEP 2106.05(d) (receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec, 838 F.3d at 1321, 120 USPQ2d at 1362 (utilizing an intermediary computer to forward information); TLI Communications LLC v. AV Auto. LLC, 823 F.3d 607, 610, 118 USPQ2d 1744, 1745 (Fed. Cir. 2016) (using a telephone for image transmission); OIP Techs., Inc., v. Amazon.com, Inc., 788 F.3d 1359, 1363, 115 USPQ2d 1090, 1093 (Fed. Cir. 2015) (sending messages over a network); buySAFE, Inc. v. Google, Inc., 765 F.3d 1350, 1355, 112 USPQ2d 1093, 1096 (Fed. Cir. 2014) (computer receives and sends information over a network)).
Accordingly, claim 18 is ineligible.
Claim 19
The method of claim 18 wherein, when both a first deferrable cumulative weight and a second deferrable cumulative weight have final weights, the first deferrable cumulative weight is compared to a second deferrable cumulative weight by:
when the final weight of the first deferrable cumulative weight is less than the final weight of the second deferrable cumulative weight, and returning an indication that the first deferrable cumulative weight is less than the final weight of the second deferrable cumulative weight;
when the final weight of the first deferrable cumulative weight is equal to the final weight of the second deferrable cumulative weight, returning an indication that the first deferrable cumulative weight is equal to the second deferrable cumulative weight; and
when the final weight of the first deferrable cumulative weight is greater than the final weight of the second deferrable cumulative weight, returning an indication that the first deferrable cumulative weight is greater than the second deferrable cumulative weight.
Step 2A Prong 1: YES. The claim describes comparing the final weight of the first deferrable cumulative weight to the second deferrable cumulative weight in order to determine whether the final weight of the first weight is less than, equal to, or greater than the second weight. Such a comparison may be performed mentally and, therefore, falls under the Mental Processes grouping of abstract ideas.
Step 2A Prong 2/Step 2B: NO. Returning data corresponds to data outputting and, therefore, is insignificant extra-solution activity in 2A. Transmitting data is well understood, routine, and conventional in 2B. See MPEP 2106.05(d) (receiving or transmitting data over a network, e.g., using the Internet to gather data, Symantec, 838 F.3d at 1321, 120 USPQ2d at 1362 (utilizing an intermediary computer to forward information); TLI Communications LLC v. AV Auto. LLC, 823 F.3d 607, 610, 118 USPQ2d 1744, 1745 (Fed. Cir. 2016) (using a telephone for image transmission); OIP Techs., Inc., v. Amazon.com, Inc., 788 F.3d 1359, 1363, 115 USPQ2d 1090, 1093 (Fed. Cir. 2015) (sending messages over a network); buySAFE, Inc. v. Google, Inc., 765 F.3d 1350, 1355, 112 USPQ2d 1093, 1096 (Fed. Cir. 2014) (computer receives and sends information over a network)).
Claim 20
The method of claim 19
wherein a first deferrable cumulative weight having a provisional weight is attempted to be advanced past a second deferrable cumulative weight by advancing the first deferrable cumulative weight until either the first deferrable cumulative weight has a final weight or until the provisional weight of the first cumulative weight is greater than the provisional weight or final weight of the second deferrable cumulative weight; and
wherein a deferrable cumulative weight having a provisional weight is advanced by carrying out an iterative or recursive computation to generate an incremental weight that is added to the sum of incremental weights iteratively or recursively computed for the deferrable cumulative weight.
Step 2A Prong 1: YES.
Both limitations describe advancing, or incrementing, a deferrable cumulative weight past a second weight until a certain mathematical relation is established. Incrementing a weight is a mathematical calculation and, therefore, falls under the Mathematical Concepts grouping of abstract ideas. Further, adding the incremental weight to the sum of incremental weights iteratively also describes a mathematical calculation.
Accordingly, claim 20 is ineligible.
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 16 and 17 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Edwards, Matt, Grokking Algorithms in JavaScript – Part 3, Jan. 15, 2022 (available at https://dev.to/mattedwards/grokking-algorithms-in-javascript-part-3-11cf) (“Edwards”).
Regarding claim 16, Edwards discloses [a] method that improves a graph-traversal-identification subsystem, the method comprising:
identifying path weights and edge weights used by graph-traversal-identification subsystem; and (Edwards p. 1 (“A graph is a representation of connections between nodes in a network. The connections between the nodes are called 'edges'. For example, in a geographical network nodes might be towns and edges might be the roads that connect the towns”), p. 3 (“Now we can see quite clearly what we already knew: the shortest route is via Birmingham & Milton Keynes at 200 miles rather than the 610 miles via Edinburgh. In graph terminology the numbers that represent the distance between nodes are the weights of those edges [edge weights]. Weights don't have to represent distance. It could represent the cost of getting from one node to the next, for example… Dijkstra's will find the cheapest / shortest path (in other words, the one with the lowest combined edge weights [path weights]) in a weighted graph.”)
replacing the path weights and edge weights with deferrable cumulative weights (Edwards p. 3 (“From the current node, find the lowest cost node. i.e. the node you get to by following the lowest weight edge. For all neighbours of that node check if there is a lower cumulative-weight way to get there. If so, update that node's cumulative weight in the list that you set up at the outset. (Remember, any nodes where you can't calculate the cumulative weight from the current node have an infinite cumulative weight).”))
Regarding claim 17, Edwards discloses the invention of claim 16 as discussed above. Edwards further discloses:
wherein a deferrable cumulative weight is iteratively or recursively computed as the sum of incremental weights; (Edwards p. 3 (“For all neighbours of that node check if there is a lower cumulative-weight way to get there. If so, update that node's cumulative weight in the list that you set up at the outset. (Remember, any nodes where you can't calculate the cumulative weight from the current node have an infinite cumulative weight). Repeat until you have done this for every node in the graph.”))
wherein a deferrable cumulative weight has a provisional weight at a particular point in time equal to the sum of incremental weights iteratively or recursively computed up to the point in time; and (Edwards p. 4 (“Node cumulative weights - these are the values held in the list that was set up at the start. For a given node, this is the cumulative weight of all of the edges along which you have to travel to get to a specific node if you follow the lowest cost route that the algorithm has calculated so far. These values are updated as the algorithm processes the nodes in the graph.”))
wherein a deferrable cumulative weight has a final weight when there are no further incremental weights that can be iteratively or recursively computed and added to the final weight (Edwards p. 7 (“After the algorithm has finished processing the graph, the value of the "fin" node in the costs hash table will contain the cumulative cost of the lowest cost path. (In this case: 6).”)).
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or non-obviousness.
Claims 1-3, 5, and 21 are rejected under 35 U.S.C. 103 as being unpatentable over Edwards in view of Bill (US 2006/0173841 A1; published Aug. 3, 2006).
Regarding claim 1, Edwards discloses [a] graph-traversal-identification subsystem within a problem-addressing system, …
computer instructions…control the graph-traversal-identification system to (Edwards p. 1 (“I also introduced you to the breadth-first search ("BFS") algorithm: a means to find the shortest route through a graph. In the context of BFS, shortest route means the route that visits the fewest nodes. In this article I will add a little complexity to graphs by adding "weights" and introduce Dijkstra's Algorithm which will find the shortest route through these more complex weighted graphs.”))
receive information about a problem, a source, and a target from the problem-addressing system, (Edwards p. 2 (“You want to get from Manchester to London by train. Which route should you take? Well, we know that BFS will find the shortest path so we feed the graph into the algorithm, set it running, and it confidently tells us to go via Edinburgh.”))
initialize a graph that represents possible solutions to the problem to include a source node and a target node corresponding to the received information about the source and the target, (Edwards p. 3 (“In graph terminology the numbers that represent the distance between nodes are the weights of those edges. Weights don't have to represent distance. It could represent the cost of getting from one node to the next, for example.”))
associate the source node with a source-node cumulative path weight, (Edwards p. 3 (“Set up a list of all nodes. The list will hold the cumulative weight of getting to that node. If you can't yet calculate the cumulative weight because your route hasn't yet reached that node, give it a cumulative weight of positive infinity (this may sound odd but it's an integral part of the algorithm's workings.”))
expand the graph outward from the source node by
iteratively (Edwards p. 3 (“Repeat until you have done this for every node in the graph”))
selecting an already generated node of the graph, and (Edwards p. 6 (“The first activity on arriving at a new node is to find the lowest cost node that hasn't already been processed because that node will be the next one to visit. Remember that all nodes (apart from immediate neighbours of start ) were initially assigned a cumulative weight of infinity and those figures are only updated as we visit their neighbours. So, ignoring nodes that have already been processed (held in the processed array), the lowest cost node will automatically be a neighbour of the node we are currently processing and we just need to loop through all nodes in the costs hash table and do a comparison.”))
tracking an optimal, near-optimal, or locally-optimal path from the source node to the nodes which neighbor the selected node, each neighbor node associated with a deferrable cumulative weight representing the cumulative weight of a path from the source node to the neighbor node until the selected node is the target node, (Edwards p. 7 (“We have set up the data structures and we have a function to decide which node to visit next. Now we just need to loop through the nodes and carry out the steps outlined above. Below is the code that achieves that:
PNG
media_image1.png
356
456
media_image1.png
Greyscale
We have to define the first lowest cost node (ie. a neighbour of the start node) before entering the while loop because 'node' being truthy is the while loop condition. The lowest cost node is then updated at the end of each iteration until there are no nodes left to process”))
encoding an optimal, near optimal, or locally optimal traversal path that includes the source node and the target node and that may include one or more additional nodes, and (Edwards p. 7-8 (“After the algorithm has finished processing the graph, the value of the "fin" node in the costs hash table will contain the cumulative cost of the lowest cost path. (In this case: 6)... To find the actual path that the algorithm has plotted you need to begin with the end node and work backwards using the values in the parents hash table. In this simple example, the parents hash table looks like this after processing
PNG
media_image2.png
46
438
media_image2.png
Greyscale
So, working backwards:
from fin go to a
from a go to b
from b go to start
There you have the lowest cost route.”))
Edwards does not expressly disclose the graph-traversal-identification subsystem comprising: one or more processors; one or more memories; and , stored in one or more of the one or more memories that, when executed by one or more of the one or more processors, (but see Bill ¶ 47 (“The mapping system 120 also includes code segments 125 configured to determine a route between an origin location and destination location identified by a user. The origin location and the destination location may be referred to as an origin and a destination, respectively. The code segments 125, when executed, use mapping information in the mapping information store 125 to determine a route, such as a shortest path between the origin and destination. In some implementations, a generated route to be displayed over bit-mapped images”), ¶ 165 (“The described systems, methods, and techniques may be implemented in digital electronic circuitry, computer hardware, firmware, software, or in combinations of these elements. Apparatus embodying these techniques may include appropriate input and output devices, a computer processor, and a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor. A process embodying these techniques may be performed by a programmable processor executing a program of instructions to perform desired functions by operating on input data and generating appropriate output. The techniques may be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device.”))
providing the encoded traversal path to the problem-addressing system, which uses the encoded traversal path to address the problem (but see Bill ¶ 47 (“The mapping system 120 also includes code segments 125 configured to determine a route between an origin location and destination location identified by a user. The origin location and the destination location may be referred to as an origin and a destination, respectively. The code segments 125, when executed, use mapping information in the mapping information store 125 to determine a route, such as a shortest path between the origin and destination. In some implementations, a generated route to be displayed over bit-mapped images.”)).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Edwards to incorporate the teachings of Bill to utilize the routing algorithm in a route mapping system in a vehicle, at least because doing so would enable an in-vehicle navigation system to generate route to a destination or driving directions for a route.
Claim 21 is a storage device claim corresponding to claim 1 and, therefore, is similarly rejected.
Regarding claim 2, Edwards, in view of Bill, discloses the invention of claim 1 as discussed above. Edwards further discloses wherein the graph comprises:
multiple nodes; and multiple edges that each connects two nodes and that each is associated with a weight (Edwards p. 3 (“In graph terminology the numbers that represent the distance between nodes are the weights of those edges. Weights don't have to represent distance. It could represent the cost of getting from one node to the next, for example.”)).
Regarding claim 3, Edwards, in view of Bill, discloses the invention of claim 2 as discussed above. Edwards further discloses wherein an optimal, near optimal, or locally optimal traversal path begins with the source node, ends with the target node; (Edwards p. 8 (“So, working backwards:
from fin go to a
from a go to b
from b go to start
There you have the lowest cost route.”))
wherein the optimal, near optimal, or locally optimal traversal path may include one or more additional nodes; (Edwards p. 3 (“Now we can see quite clearly what we already knew: the shortest route is via Birmingham & Milton Keynes at 200 miles rather than the 610 miles via Edinburgh.”))
wherein, when optimal, near optimal, or locally optimal traversal path includes only the source node and the target node, the optimal traversal path includes an edge that connects the source node to the target node; (Edwards p. 3 (“From the current node, find the lowest cost node. ie. the node you get to by following the lowest weight edge.”))
wherein, when optimal, near optimal, or locally optimal traversal path includes one or more additional nodes, the optimal traversal path includes edges that interconnect the source node through the one or more additional nodes to the target node; and (Edwards p. 1 (“I also introduced you to the breadth-first search ("BFS") algorithm: a means to find the shortest route through a graph. In the context of BFS, shortest route means the route that visits the fewest nodes.”))
wherein the cumulative weight of the optimal traversal path, which is the sum of the weights of the edges in the optimal traversal path, meets an optimization condition (Edwards p. 4 (“Node cumulative weights - these are the values held in the list that was set up at the start. For a given node, this is the cumulative weight of all of the edges along which you have to travel to get to a specific node if you follow the lowest cost route that the algorithm has calculated so far. These values are updated as the algorithm processes the nodes in the graph.”)).
Regarding claim 5, Edwards, in view of Bill, discloses the invention of claim 1 as discussed above. Edwards further discloses:
wherein a deferrable cumulative weight is iteratively or recursively computed as the sum of incremental weights; (Edwards p. 3 (“For all neighbours of that node check if there is a lower cumulative-weight way to get there. If so, update that node's cumulative weight in the list that you set up at the outset. (Remember, any nodes where you can't calculate the cumulative weight from the current node have an infinite cumulative weight) Repeat until you have done this for every node in the graph”))
wherein a deferrable cumulative weight has a provisional weight at a particular point in time equal to the sum of incremental weights iteratively or recursively computed up to the point in time; and (Edwards p. 3 (“For all neighbours of that node check if there is a lower cumulative-weight way to get there. If so, update that node's cumulative weight in the list that you set up at the outset. (Remember, any nodes where you can't calculate the cumulative weight from the current node have an infinite cumulative weight) Repeat until you have done this for every node in the graph”))
wherein a deferrable cumulative weight has a final weight when there are no further incremental weights that can be iteratively or recursively computed and added to the final weight (Edwards p. 3 (“For all neighbours of that node check if there is a lower cumulative-weight way to get there. If so, update that node's cumulative weight in the list that you set up at the outset. (Remember, any nodes where you can't calculate the cumulative weight from the current node have an infinite cumulative weight) Repeat until you have done this for every node in the graph”)).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Downie et al. (US 2021/0149788 A1; published May 20, 2021), Kimball et al. (US 10, 534,604 B1; published Jan. 14, 2020).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SHAHID KHAN whose telephone number is (571)270-0419. The examiner can normally be reached M-F, 9-5 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, Usmaan Saeed can be reached at (571)272-4046. 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.
/SHAHID K KHAN/ Primary Examiner, Art Unit 2146