DETAILED ACTION
This final Office action is responsive to Applicant’s amendment filed March 20, 2026. Claims 1, 10-11, 16-17, and 20 have been amended. Claims 2, 6, 8, and 15 are cancelled. Claims 1, 3-5, 7, 9-14, and 16-20 are presented for examination.
Response to Arguments
Applicant's arguments filed March 20, 2026 have been fully considered but they are not persuasive.
On page 13 of the response, Applicant argues:
Consistent with the above-noted limitations, the Application discloses that the plurality of nodes comprise datastores storing data associated with the respective nodes. See, e.g., Application at [0097], FIG. 10. In addition to comprising datastores, nodes can be associated with, and clustered by, geographical coordinates and fulfillment features. See. e.g., id. at [0061]- [0066], FIGS. 4-5. Clusters can then be used, for example, by a server responding in real time to requests submitted via a client applications. See, e.g., id. at [0025], [0079]-[0080], FIG. 7. Data associated with clustered nodes can likewise be cached and aggregated into cluster datastores, thereby reducing latency times and reducing network bandwidth required to retrieve such data when responding to requests. See, e.g., id. at [0024], [0099]-[0101]. An example of such clustering is illustrated in FIG. 10, which is reproduced below…
Aside from the storage of data and subsets of data in caches/datastores, the claims mainly focus on filtering data into the subsets of data. Identifying clusters and subclusters of nodes is an example of filtering content. MPEP § 2106.04(a)(2)(II)(C) cites the following as an example of managing personal behavior, i.e., organizing human activity: “filtering content, BASCOM Global Internet v. AT&T Mobility, LLC, 827 F.3d 1341, 1345-46, 119 USPQ2d 1236, 1239 (Fed. Cir. 2016) (finding that filtering content was an abstract idea under step 2A, but reversing an invalidity judgment of ineligibility due to an inadequate step 2B analysis).” MPEP § 2106.04(a)(2)(III)(D) cites the following as an example of a mental process: “An application program interface for extracting and processing information from a diversity of types of hard copy documents – Content Extraction, 776 F.3d at 1345, 113 USPQ2d at 1356.” Searching a smaller amount of data will improve speed in data retrieval and resource usage regardless of if these operations are performed by a human or by a computer.
Furthermore, the processing components presented in the claims simply utilize the capabilities of a general-purpose computer and are, thus, merely tools to implement the abstract idea(s). As seen in MPEP § 2106.05(a)(I) and § 2106.05(f)(2), the court found that accelerating a process when the increased speed solely comes from the capabilities of a general-purpose computer is not sufficient to show an improvement in computer-functionality and it amounts to a mere invocation of computers or machinery as a tool to perform an existing process (see FairWarning IP, LLC v. Iatric Sys., 839 F.3d 1089, 1095, 120 USPQ2d 1293, 1296 (Fed. Cir. 2016)).
Applicant asserts that “the MPEP asks whether the claim, when considered as a whole in view of the specification, provides an improvement to a technical field. By reducing latency times and reducing network bandwidth when responding to a request from a web server, amended claim 1 does just that.” (Page 16 of the response) The Examiner points out that the nodes may simply be collections of data or entities or data corresponding to various entities. Clustering nodes may simply mean grouping certain nodes (and corresponding data) together. The use of a similarity score just identifies groupings of data that are more relatively similar. There are no details of the underlying data structure for the nodes beyond the fact that a cluster of information from certain nodes is sent to a cluster cache. In effect, this simply filters out a smaller subset of data to search from a larger collection of data. Inherently, searching smaller amounts of data (compared to larger amounts of data, given the same conditions) will be faster, more efficient, etc. and these benefits would be archived regardless of if the corresponding operations are performed by a human or by a computer. The invention merely describes how to filter out smaller amounts of data for a quicker search. There is no improvement to an underlying technology recited in the claims, for example.
Additionally, simply inputting data into a machine learning model is an example of generally applying the machine learning to the abstract ideas and an example of a general link to technology. The claims do not provide any specific details regarding improvements to how the machine learning itself works. The claims simply define which data is input into and generally acted upon by a machine learning model.
On page 17 of the response, Applicant argues that “claim 1 does not preempt all applications of any mental process or method of organizing human activity, the alleged abstract ideas.” Preemption is not a standalone test for patent eligibility. Preemption concerns have been addressed by the Examiner through the application of the Subject Matter Eligibility test. Applicant’s attempt to show that the recited abstract idea is a very narrow and specific one is not persuasive. A specific abstract idea is still an abstract idea and is not eligible for patent protection without significantly more recited in the claim.
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, 3-5, 7, 9-14, and 16-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter.
Claims 1, 3-5, 7, 9-14, and 16-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. The claimed invention is directed to dynamically grouping nodes into virtual clusters to perform a fulfillment task (Abstract) without significantly more.
Step
Analysis
1: Statutory Category?
Yes – The claims fall within at least one of the four categories of patent eligible subject matter. Process (claims 1, 3-5, 7, 9-14), Apparatus (claims 16-19), Article of Manufacture (claim 20)
Independent claims:
Step
Analysis
2A – Prong 1: Judicial Exception Recited?
Yes – Aside from the additional elements identified in Step 2A – Prong 2 below, the claims recite:
[Claim 1] A method for aggregating node data, the method comprising:
receiving a plurality of geographical coordinates for a plurality of nodes, the plurality of geographical coordinates including, for each node of the plurality of nodes, geographical coordinates corresponding to a location of the node;
receiving a plurality of fulfillment features for the plurality of nodes, the plurality of fulfillment features including fulfillment features for each node of the plurality of nodes; and
at a first time prior to receipt of a request:
grouping, based on the plurality of geographical coordinates and the plurality of fulfillment features, the plurality of nodes into a plurality of clusters, each of the plurality of clusters including one or more nodes of the plurality of nodes, wherein grouping, based on the plurality of geographical coordinates and the plurality of fulfillment features, the plurality of nodes into the plurality of clusters comprises:
based on the plurality of geographical coordinates, grouping the plurality of nodes into a plurality of general clusters;
determining a plurality of subclusters by, for each general cluster of the plurality of general clusters, grouping, based on the plurality of fulfillment features, one or more nodes of the general cluster into one or more subclusters by
for each pair of nodes in the general cluster, determining a similarity score for the pair of nodes based on weighted similarities of fulfillment features of the pair of nodes, wherein the weighted similarities are determined by applying weights to each fulfillment feature of the plurality of fulfillment features, wherein the plurality of fulfillment features comprise carrier schedule data, shipping option data, and historical shipping data,
grouping, using similarity scores for pairs of nodes, the one or more nodes of the general cluster into the one or more subclusters; and
in real time at a second time later than the first time:
receiving, by the fulfillment service, the request for shipment of one or more items;
by the fulfillment service, responsive to receiving the request, selecting the first cluster to fulfill the shipment based on fulfillment features of the first plurality of nodes belonging to the first cluster;
by the fulfillment service, providing the data of the first plurality of nodes.
[Claim 16] A system for aggregating node data;
receive a plurality of geographical coordinates for a plurality of nodes, the plurality of geographical coordinates including, for each node of the plurality of nodes, geographical coordinates corresponding to a location of the node;
receive a plurality of fulfillment features for the plurality of nodes, the plurality of fulfillment features including fulfillment features for each node of the plurality of nodes; and
group, based on the plurality of geographical coordinates and the plurality of fulfillment features, the plurality of nodes into a plurality of clusters, each of the plurality of clusters including one or more nodes of the plurality of nodes, wherein grouping, based on the plurality of geographical coordinates and the plurality of fulfillment features, the plurality of nodes into the plurality of clusters comprises:
based on the plurality of geographical coordinates, grouping the plurality of nodes into a plurality of general clusters;
determining a plurality of subclusters by, for each general cluster of the plurality of general clusters, grouping, based on the plurality of fulfillment features, one or more nodes of the general cluster into one or more subclusters by
for each pair of nodes in the general cluster, determining a similarity score for the pair of nodes based on weighted similarities of fulfillment features of the pair of nodes, wherein the weighted similarities are determined by applying weights to each fulfillment feature of the plurality of fulfillment features; and
grouping, using similarity scores for pairs of nodes, the one or more nodes of the general cluster into the one or more subclusters;
in real time at a second time later than the first time:
receive, by the fulfillment service, the request for shipment of one or more items;
by the fulfillment service, responsive to receiving the request, selecting the first cluster to fulfill the shipment based on fulfillment features of the first plurality of nodes belonging to the first cluster;
by the fulfillment service, providing the data of the first plurality of nodes.
[Claim 20] A system;
receive a plurality of geographical coordinates for a plurality of nodes, the plurality of geographical coordinates including, for each node of the plurality of nodes, geographical coordinates corresponding to a location of the node;
receive a plurality of fulfillment features for the plurality of nodes, the plurality of fulfillment features including fulfillment features for each node of the plurality of nodes; and
at a first time prior to receipt of a request:
grouping, based on the plurality of geographical coordinates and the plurality of fulfillment features, the plurality of nodes into a plurality of clusters, each of the plurality of clusters including one or more nodes of the plurality of nodes, wherein grouping, based on the plurality of geographical coordinates and the plurality of fulfillment features, the plurality of nodes into the plurality of clusters comprises:
based on the plurality of fulfillment features, grouping the plurality of nodes into a plurality of general clusters by, for each pair of nodes in the plurality of nodes, determining a similarity score for the pair of nodes based on weighted similarities of fulfillment features of the pair of nodes, wherein the weighted similarities are determined by applying weights to each fulfillment feature of the plurality of fulfillment features, wherein the plurality of fulfillment features comprise carrier schedule data, shipping option data, and historical shipping data, and wherein determining the plurality of general clusters is based at least in part on similarity scores for pairs of nodes; and
determining a plurality of subclusters by, for each general cluster of the plurality of general clusters, grouping, based on the plurality of geographical coordinates, one or more nodes of the general cluster into one or more subclusters by determining
for a first cluster of the one or more subclusters, retrieving data of a first plurality of nodes belonging to the first cluster;
in real time at a second time later than the first time:
receiving, by the fulfillment service, the request for shipment of one or more items;
by the fulfillment service, responsive to receiving the request, selecting the first cluster to fulfill the shipment based on fulfillment features of the first plurality of nodes belonging to the first cluster;
by the fulfillment service, providing the data of the first plurality of nodes.
Aside from the additional elements, the aforementioned claim details exemplify the abstract idea(s) of a mental process (since the details include concepts performed in the human mind, including an observation, evaluation, judgment, and/or opinion). As explained in MPEP § 2106(a)(2)(C)(III), “The courts consider a mental process (thinking) that ‘can be performed in the human mind, or by a human using a pen and paper’ to be an abstract idea. CyberSource Corp. v. Retail Decisions, Inc., 654 F.3d 1366, 1372, 99 USPQ2d 1690, 1695 (Fed. Cir. 2011). As the Federal Circuit explained, ‘methods which can be performed mentally, or which are the equivalent of human mental work, are unpatentable abstract ideas the ‘basic tools of scientific and technological work’ that are open to all.’’ 654 F.3d at 1371, 99 USPQ2d at 1694 (citing Gottschalk v. Benson, 409 U.S. 63, 175 USPQ 673 (1972)).” The limitations reproduced above, as drafted, are a process that, under its broadest reasonable interpretation, covers performance of the limitations in the mind but for the recitation of generic computer components. That is, other than reciting the additional elements identified in Step 2A – Prong 2 below, nothing in the claim elements precludes the steps from practically being performed in the mind and/or by a human using a pen and paper. For example, but for the recitations of generic computer and other processing components (identified in Step 2A – Prong 2 below), the respectively recited steps/functions of the claims, as drafted and set forth above, are a process that, under its broadest reasonable interpretation, covers performance of the limitations in the mind and/or with the use of pen and paper. A human user can receive information, group features into clusters, make determinations in accordance with the claimed invention, provide information (including to a fulfillment service, which may broadly be interpreted as a department of people, for example), etc. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind (and/or with pen and paper) but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claims recite an abstract idea.
Aside from the additional elements, the aforementioned claim details exemplify a method of organizing human activity (since the details include examples of commercial or legal interactions, including advertising, marketing or sales activities or behaviors, and/or business relations and managing personal behavior or relationships or interactions between people, including social activities, teaching, and following rules or instructions). More specifically, the evaluated process is related to dynamically grouping nodes into virtual clusters to perform a fulfillment task (Abstract), which (under its broadest reasonable interpretation) is an example of business planning related to sales activities (i.e., organizing human activity); therefore, aside from the recitations of generic computer and other processing components (identified in Step 2A – Prong 2 below), the limitations identified in the more detailed claim listing above encompass the abstract idea of organizing human activity.
Identifying clusters and subclusters of nodes is an example of filtering content. MPEP § 2106.04(a)(2)(II)(C) cites the following as an example of managing personal behavior, i.e., organizing human activity: “filtering content, BASCOM Global Internet v. AT&T Mobility, LLC, 827 F.3d 1341, 1345-46, 119 USPQ2d 1236, 1239 (Fed. Cir. 2016) (finding that filtering content was an abstract idea under step 2A, but reversing an invalidity judgment of ineligibility due to an inadequate step 2B analysis).” MPEP § 2106.04(a)(2)(III)(D) cites the following as an example of a mental process: “An application program interface for extracting and processing information from a diversity of types of hard copy documents – Content Extraction, 776 F.3d at 1345, 113 USPQ2d at 1356.”
2A – Prong 2: Integrated into a Practical Application?
No – The judicial exception(s) is/are not integrated into a practical application.
Claim 1 recites a method for caching and aggregating node data for improved server responses,
wherein each node of the plurality of nodes comprises a respective datastore storing data for the node;
based on the plurality of geographical coordinates, grouping the plurality of nodes into a plurality of general clusters by inputting the plurality of geographical coordinates into a machine learning model and determining, using the machine learning model, the plurality of generality clusters;
executes a script that automatically performs various operations of the claim;
wherein the weighted similarities are determined by applying weights configured in a user interface; and
for a first cluster of the one or more subclusters, caching and aggregating data from a first plurality of datastores of a first plurality of nodes belonging to the first cluster into a cluster cache comprising a cluster datastore to reduce real-time data retrieval latency for responding to requests for data of the first plurality of nodes;
providing, to a fulfillment service, a data file defining the plurality of clusters and fulfillment features associated with the plurality of clusters;
in real time at a second time later than the first time:
receiving the request from a web server for shipment of one or more items;
selecting, using the data file defining the plurality of clusters, the first cluster;
responsive to receiving the request, executing a single query against the cluster cache to retrieve the data of the first plurality of nodes without querying the first plurality of datastores of the first plurality of nodes, wherein executing the single query against the cluster cache to retrieve the data of the first plurality of nodes without querying the first plurality of datastores of the first plurality of nodes reduces a latency time and network bandwidth used to retrieve data associated with the first plurality of nodes; and
providing to the web server the data of the first plurality of nodes.
Claim 16 recites a system for caching and aggregating node data, the system comprising: a clustering service comprising a processor and memory storing instructions that, when executed by the processor, cause the clustering service to, at a first time prior to receipt of a request at a server, perform the recited functionality.
Claim 16 further recites:
wherein each node of the plurality of nodes comprises a respective datastore storing data for the node; and
based on the plurality of geographical coordinates, grouping the plurality of nodes into a plurality of general clusters by inputting the plurality of geographical coordinates into a machine learning model and determining, using the machine learning model, the plurality of generality clusters;
executes a script that automatically performs various operations of the claim;
wherein the weighted similarities are determined by applying weights configured in a user interface; and
for a first cluster of the one or more subclusters, caching and aggregating data from a first plurality of datastores of a first plurality of nodes belonging to the first cluster into a cluster datastore for responding to requests for data of the first plurality of nodes;
providing, to a fulfillment service, a data file defining the plurality of clusters and fulfillment features associated with the plurality of clusters;
wherein the server is configured to, in real time at a second time later than the first time:
receive the request from a web server for shipment of one or more items;
selecting, using the data file defining the plurality of clusters, the first cluster;
responsive to receiving the request, execute a query against the cluster datastore to retrieve the data of the first plurality of nodes without querying the first plurality of datastores of the first plurality of nodes, wherein executing the single query against the cluster cache to retrieve the data of the first plurality of nodes without querying the first plurality of datastores of the first plurality of nodes reduces a latency time and network bandwidth used to retrieve data associated with the first plurality of nodes; and
providing to the web server the data of the first plurality of nodes.
Claim 20 recites a system comprising a non-transitory computer readable medium with instructions thereon that, when executed by a processor, cause the system to perform the recited functionality.
Claim 20 further recites:
wherein each node of the plurality of nodes comprises a respective datastore storing data for the node; and
wherein the weighted similarities are determined by applying weights configured in a user interface;
determining a plurality of subclusters by inputting the plurality of geographical coordinates into a machine learning model and determining, using the machine learning model, the plurality of generality clusters;
for a first cluster of the one or more subclusters, retrieving data from a first plurality of datastores of a first plurality of nodes belonging to the first cluster and storing the data in a cluster datastore, thereby reducing network traffic or data retrieval latency for responding to requests for data of the first plurality of nodes;
providing, to a fulfillment service, a data file defining the plurality of clusters and fulfillment features associated with the plurality of clusters;
in real time at a second time later than the first time:
receive the request from a web server for shipment of one or more items;
selecting, using the data file defining the plurality of clusters, the first cluster;
responsive to receiving the request, provide a single query to the cluster datastore to retrieve the data of the first plurality of nodes without querying the plurality of datastores of the first plurality of nodes, wherein executing the single query against the cluster cache to retrieve the data of the first plurality of nodes without querying the first plurality of datastores of the first plurality of nodes reduces a latency time and network bandwidth used to retrieve data associated with the first plurality of nodes; and
providing to the web server the data of the first plurality of nodes.
It is noted that, at best, caching and aggregating data from datastores simply utilize memory for data storage. In a more broad interpretation, caching and aggregating data from datastores could mean that data is collected from multiple data sources. Either way, data is managed and stored at a high level of generality.
Additionally, the timing of data storage simply allows a query to be subsequently performed after establishment of a cluster of data that may be searched. No technical improvement is readily achieved from the timing. Searching a smaller amount of data (regardless of whether the search is perform by a human or by a machine) is generally more efficient than searching a larger amount of data. The smaller cluster of data would need to be established before a query would otherwise search a larger amount of data. Reducing latency time and network bandwidth used are inevitable benefits of querying smaller amounts of data. The nodes may simply be collections of data or entities or data corresponding to various entities. Clustering nodes may simply mean grouping certain nodes (and corresponding data) together. The use of a similarity score just identifies groupings of data that are more relatively similar. There are no details of the underlying data structure for the nodes beyond the fact that a cluster of information from certain nodes is sent to a cluster cache. In effect, this simply filters out a smaller subset of data to search from a larger collection of data. Inherently, searching smaller amounts of data (compared to larger amounts of data, given the same conditions) will be faster, more efficient, etc. and these benefits would be archived regardless of if the corresponding operations are performed by a human or by a computer. The invention merely describes how to filter out smaller amounts of data for a quicker search. There is no improvement to an underlying technology recited in the claims, for example.
The claims as a whole merely describe how to generally “apply” the abstract idea(s) in a computer environment. The claimed processing elements are recited at a high level of generality and are merely invoked as a tool to perform the abstract idea(s). Simply implementing the abstract idea(s) on a general-purpose processor is not a practical application of the abstract idea(s); Applicant’s specification discloses that the invention may be implemented using general-purpose processing elements and other generic components (Spec: ¶¶ 108-116).
The use of a processor/processing elements (e.g., as recited in all of the claims) facilitates generic processor operations. The use of a memory or machine-readable media with executable instructions facilitates generic processor operations.
The additional elements are recited at a high-level of generality (i.e., as generic processing elements performing generic computer functions) such that the incorporation of the additional processing elements amounts to no more than mere instructions to apply the judicial exception(s) using generic computer components. There is no indication in the Specification that the steps/functions of the claims require any inventive programming or necessitate any specialized or other inventive computer components (i.e., the steps/functions of the claims may be implemented using capabilities of general-purpose computer components). Accordingly, the additional elements do not integrate the abstract ideas into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claims are directed to an abstract idea(s).
The processing components presented in the claims simply utilize the capabilities of a general-purpose computer and are, thus, merely tools to implement the abstract idea(s). As seen in MPEP § 2106.05(a)(I) and § 2106.05(f)(2), the court found that accelerating a process when the increased speed solely comes from the capabilities of a general-purpose computer is not sufficient to show an improvement in computer-functionality and it amounts to a mere invocation of computers or machinery as a tool to perform an existing process (see FairWarning IP, LLC v. Iatric Sys., 839 F.3d 1089, 1095, 120 USPQ2d 1293, 1296 (Fed. Cir. 2016)).
Considering that the implementation of the machine learning model and/or the training of the model could be performed using processing elements (in light of Applicant’s Specification), such an implementation would be presented as a generic recitation of machine learning in the claims and as a general link to technology. The machine learning-based processing elements are simply tools to generally automate the underlying process that could be performed by a human. It is further noted that, as described in Applicant’s Specification, the machine learning operations are generic machine learning operations (Spec: ¶¶ 49-50). The Specification presents no assertion that there is any improvement in the automated machine learning process itself. Such a generic recitation of machine learning, as disclosed in Applicant’s Specification, is little more than automating an analogous process that can be performed by a human.)
There is no transformation or reduction of a particular article to a different state or thing recited in the claims.
Additionally, even when considering the operations of the additional elements as an ordered combination, the ordered combination does not amount to significantly more than what is present in the claims when each operation is considered separately.
Even if the following limitations are seen as more than a general application of the processing elements (or implied processing elements, as seen in claim 1), they were well-understood, routine and conventional operations at the time of Applicant’s invention:
for a first cluster of the one or more subclusters, caching and aggregating data from a first plurality of datastores of a first plurality of nodes belonging to the first cluster into a cluster cache comprising a cluster datastore to reduce real-time data retrieval latency for responding to requests for data of the first plurality of nodes;
in real time at a second time later than the first time:
receiving the request;
responsive to receiving the request, executing a single query against the cluster cache to retrieve the data of the first plurality of nodes without querying the first plurality of datastores of the first plurality of nodes.
Evidence of such is provided in Step 2B.
2B: Claim(s) Provide(s) an Inventive Concept?
No – The claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception(s). As discussed above with respect to integration of the abstract idea(s) into a practical application, the use of the additional elements to perform the steps identified in Step 2A – Prong 1 above amounts to no more than mere instructions to apply the exceptions using a generic computer component(s). Mere instructions to apply an exception using a generic computer component(s) cannot provide an inventive concept. The claims are not patent eligible.
The prior art references cited below serve as evidence that the following limitations were well-understood, routine and conventional operations at the time of Applicant’s invention:
for a first cluster of the one or more subclusters, caching and aggregating data from a first plurality of datastores of a first plurality of nodes belonging to the first cluster into a cluster cache comprising a cluster datastore to reduce real-time data retrieval latency for responding to requests for data of the first plurality of nodes;
in real time at a second time later than the first time:
receiving the request;
responsive to receiving the request, executing a single query against the cluster cache to retrieve the data of the first plurality of nodes without querying the first plurality of datastores of the first plurality of nodes.
(a) Ramamurthi et al. (US 2017/0249358) --
Abstract: “A system and method for parallel optimization of database query using cluster cache improves the performance of group by aggregates by avoiding the merge phase of parallel aggregation with the use of dynamic clustering and by caching the clustering information and storing them in local memory of worker thread. The caching of cluster information is based on user configuration to avoid overuse of system memory.”
¶ 98: “Exemplary embodiments discussed above may provide certain advantages. Though not required to practice aspects of the disclosure, there are several advantages to the mechanisms disclosed herein. The mechanism disclosed in the present disclosure improves performance of OLAP queries which tend to be grouped on the same set of columns. The key benefit is achieved when there are less writes and more queries. The mechanism discloses the concept of intermediate result caching to grouped aggregates. It caches the cluster information to avoid the clustering operation for each query execution and thus reducing the cost of query execution. The mechanism in the “Continuous ETL” scenario of smart policy charging control (PCC) improves the performance of the queries by more than 70%. The mechanism uses a cache for storing clustering information/cluster data of frequently used columns in group aggregate operations to improve the performance of parallel group aggregate operation. The mechanism distributes the clustering information in different NUMA node to avoid remote read of memory and thereby increase the local memory usage and to reduce the cache misses. The mechanism manages the cluster cache using user given information to control the use of system memory through system configuration. The mechanism manages the cache with the help of usage statistics so to avoid having stale data in the cluster cache. The mechanism allows user to add or remove cluster information using SQL command to increase the flexibility for the user. The mechanism improves group aggregate execution speed by caching intermediate results to benefit many queries. The mechanism provides user configurable and manageable cache to store the clustering information about columns used in group aggregate. The mechanism enables evacuation of unused clustering information from the cache to make space for the new clustering information (to accommodate space for the frequently used columns).”
(b) Hollander et al. (US 2020/0301939) –
¶ 277: “Various embodiments can also include further architecture improvements. For example, the visualization system can include cache operations to improve execution speed. According to one embodiment, the system is architected to cache the result of aggregation queries in a dedicated cache cluster, where that data can be accessed by any user wanting the same chart in a similar timeframe. For example, the dedicated cache cluster and ability to serve aggregated data from the cache significantly improves the performance of communicating and/or rendering charts, and can also provide the additional benefit of avoiding repeated expensive queries.”
¶ 280: “Accordingly, a cache architecture can be included in various embodiments to store the result of each aggregation query within a dedicated cache cluster (which can be separate from a client database and/or integrated) after the chart data is first requested. Subsequent requests by other users to render the same chart (e.g., within a defined time frame) would retrieve the cached data instead of executing the aggregation query again. Such embodiments, result in near-instant chart renders where the data is in the cache, and reduced load on the client database cluster (e.g., a customer's MongoDB cluster).”
(c) Zbarsky et al. (US 2021/0109949) –
¶ 112: “As illustrated with the example of FIG. 4, multiple streams of multiple metric buckets from multiple nodes in system 100 can be aggregated in query caches where each query cache corresponds to a query submitted from query/API server cluster 122 to query cache cluster 118. For example, each query submitted may correspond to an active graphical user interface dashboard in GUI 128 or an active alert configured with alert watcher 124.”
¶ 124: “For example, for a submission of Query 2 of FIG. 4, query cache cluster 118 may compute a metric value from aggregated metric values for each distinct node property value of query cache 116-2 metric values. For example, query cache cluster 118 may compute a metric value for “kernel” node property value “4.18” and another metric value for “kernel” node property value “4.19”. Each such metric value may be computed by aggregating (e.g., summing) metric values in the entries of the corresponding metric time series of query cache 116-2 that are within the target time period of the query submission. For example, if the metric time series for “kernel” node property value “4.18” covers a 24 hour sliding window of time where each entry of the metric time series corresponds to a thirty second time slot within the 24 hour sliding window of time and the target time period for a particular submission of Query 2 is a five minute period within the current 24 hour sliding window, then the metric value to return as a query result for the query submission can be computed by summing the metric values within 10 consecutive entries of the metric time series that correspond to the five minute period. Note that this relatively simple computation can be performed very quickly (e.g., in a few milliseconds) by query cache cluster 118 in response to receiving a query submission of Query 2, especially if the entries are stored in volatile memory. It should also be noted that since metric values from multiple nodes are pre-aggregated by distinct node property values prior to the query submission, this aggregation need not be performed in response to receiving a query submission, thereby improving the query submission response time/latency of query cache cluster 118.”
¶ 125: “Metric time series values in a query cache can also be downsampled and results to query submissions can be determined by query cache cluster 118 from downsampled metric time series values in the query cache. The downsampling can occur like the downsampling performed by metric downsampler 114 on metric time series in storage 112. For example, metric values in metric buckets 402-1 and 402-2 can be initially allocated to an initial level of metric time series having thirty second entries. Then, query cache cluster 118 can aggregate multiple entries of a metric time series in the initial level (e.g., ten thirty second entries) in a single entry in a metric time series in a second level of metric time series having entries with a time resolution of minutes (e.g., five minutes). This can continue for further downsampling levels with greater time resolutions per entry. Downsampling can occur on regular intervals such as, for example, corresponding to the time resolution of the entries on the downsampled metric time series. For example, for a downsampled metric time series with five-minute time resolution for entries, metric time series from the level below can be downsampled every five minutes. By storing downsampled metric time series in a query cache for a query, it may be possible to provide results to a submission of the query without needing to aggregate metric time series entries because there is a single metric time series entry that contains the metric value requested for the time period of the query submission. For example, the metric value requested can simply be read from the single entry in volatile memory. Even if the query result for a query submission is not available from a single downsampled metric time series entry, it may be computed by aggregating fewer downsampled metric time series entries than would be needed if the query result were computed from entries in the initial metric time series level of the query cache. Also, since downsampled metric time series require less computer storage media to store than the metric time series of the initial level, downsampled metric time series may cover a longer range in time. For example, a metric time series in the initial level of a query cache may cover the past 24 hours while a downsampled metric time series in a downsampled level may cover the past week, depending on the time resolution of the entries in the downsampled metric time series. This also allows computing results to a query for a time period that is past or at least partially beyond the time period covered by the metric time series in the initial level without having to process the query against storage 112. In other words, the query can be answered from a query cache without having to access storage 112, which can improve the query processing time/latency. For example, a query associated with a requested time period of the past week or more than a day ago may be able to be answered from downsampled metric time series of a query cache for the query even if the metric time series of the initial level of the query cache covers only the past 24 hours.”
Dependent claims:
Step
Analysis
2A – Prong 1: Judicial Exception Recited?
Yes – Aside from the additional elements identified in Step 2A – Prong 2 below, the claims recite:
[Claim 3] wherein a majority of nodes of the plurality of nodes are retail stores.
[Claim 4] wherein the plurality of nodes include one or more retail stores and one or more fulfillment centers.
[Claim 5] wherein the plurality of geographical coordinates include, for each node of the plurality of nodes, a latitude and longitude of the location of the node.
[Claim 7] wherein the plurality of fulfillment features include, for each node of the plurality of nodes, a plurality of carrier schedules for a plurality of carriers associated with the node.
[Claim 9] wherein grouping, based on the plurality of geographical coordinates and the plurality of fulfillment features, the plurality of nodes into the plurality of clusters comprises applying a machine learning algorithm to the plurality of geographical coordinates to group the plurality of nodes based on geographical proximity.
[Claim 10] providing the plurality of clusters to the fulfillment service;
receiving, at the fulfillment service, the plurality of clusters;
receiving, at the fulfillment service, an order; and
allocating the order to a cluster of the plurality of clusters.
[Claim 11] providing the plurality of clusters to the fulfillment service;
receiving, at the fulfillment service, the plurality of clusters;
receiving, at the fulfillment service, an order from an online ordering system, the order including an item and a destination;
selecting a cluster of the plurality of clusters;
based at least in part on an aggregate inventory of the selected cluster, determining an availability of the item; and
based at least in part on the destination and the availability of the item, determining an estimated delivery time.
[Claim 12] updating the plurality of clusters in response to one or more of a change of at least one fulfillment feature of the plurality of fulfillment features.
[Claim 13] wherein the plurality of clusters is the plurality of subclusters.
[Claim 14] wherein, based on one of the plurality of geographical coordinates or the plurality of fulfillment features, grouping the plurality of nodes into the plurality of general clusters is performed by grouping the plurality of nodes into the plurality of general clusters based on the plurality of geographical coordinates; and
wherein, determining the plurality of subclusters by, for each general cluster of the plurality of general clusters, grouping, based on one of the plurality of geographical coordinates or the plurality of fulfillment features, the one or more nodes of the general cluster into the one or more subclusters is performed by grouping the one or more nodes of the general cluster into the one or more subclusters based on the plurality of fulfillment features.
[Claim 17] receive the plurality of clusters;
receive an order; and
using the plurality of clusters, execute a fulfillment task for the order.
[Claim 18] wherein the fulfillment task is one or more of determining an availability of an item of the order or determining an estimated delivery time of the order.
[Claim 19] update the plurality of clusters based at least in part on data received.
The dependent claims further present details of the abstract ideas identified in regard to the independent claims above.
Aside from the additional elements, the aforementioned claim details exemplify the abstract idea(s) of a mental process (since the details include concepts performed in the human mind, including an observation, evaluation, judgment, and/or opinion). As explained in MPEP § 2106(a)(2)(C)(III), “The courts consider a mental process (thinking) that ‘can be performed in the human mind, or by a human using a pen and paper’ to be an abstract idea. CyberSource Corp. v. Retail Decisions, Inc., 654 F.3d 1366, 1372, 99 USPQ2d 1690, 1695 (Fed. Cir. 2011). As the Federal Circuit explained, ‘methods which can be performed mentally, or which are the equivalent of human mental work, are unpatentable abstract ideas the ‘basic tools of scientific and technological work’ that are open to all.’’ 654 F.3d at 1371, 99 USPQ2d at 1694 (citing Gottschalk v. Benson, 409 U.S. 63, 175 USPQ 673 (1972)).” That is, other than reciting the additional elements identified in Step 2A – Prong 2 below, nothing in the claim elements precludes the steps from practically being performed in the mind and/or by a human using a pen and paper. For example, but for the recitations of generic computer and other processing components (identified in Step 2A – Prong 2 below), the respectively recited steps/functions of the claims, as drafted and set forth above, are a process that, under its broadest reasonable interpretation, covers performance of the limitations in the mind and/or with the use of pen and paper. A human user can receive information, group features into clusters, make determinations in accordance with the claimed invention, provide information (including to a fulfillment service, which may broadly be interpreted as a department of people, for example), etc. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind (and/or with pen and paper) but for the recitation of generic computer components, then it falls within the “Mental Processes” grouping of abstract ideas. Accordingly, the claims recite an abstract idea.
Aside from the additional elements, the aforementioned claim details exemplify a method of organizing human activity (since the details include examples of commercial or legal interactions, including advertising, marketing or sales activities or behaviors, and/or business relations and managing personal behavior or relationships or interactions between people, including social activities, teaching, and following rules or instructions). More specifically, the evaluated process is related to dynamically grouping nodes into virtual clusters to perform a fulfillment task (Abstract), which (under its broadest reasonable interpretation) is an example of business planning related to sales activities (i.e., organizing human activity); therefore, aside from the recitations of generic computer and other processing components (identified in Step 2A – Prong 2 below), the limitations identified in the more detailed claim listing above encompass the abstract idea of organizing human activity.
Furthermore, “applying a machine learning algorithm to the plurality of geographical coordinates to group the plurality of nodes based on geographical proximity” (as recited in claim 9) is an example of a mathematical concept. Additional evidence of this assessment, based on broadest reasonable interpretation, is found in the various calculations described throughout Applicant’s Specification, including in ¶ 49, where the use of a K-Means Clustering algorithm is referenced.
Identifying clusters and subclusters of nodes is an example of filtering content. MPEP § 2106.04(a)(2)(II)(C) cites the following as an example of managing personal behavior, i.e., organizing human activity: “filtering content, BASCOM Global Internet v. AT&T Mobility, LLC, 827 F.3d 1341, 1345-46, 119 USPQ2d 1236, 1239 (Fed. Cir. 2016) (finding that filtering content was an abstract idea under step 2A, but reversing an invalidity judgment of ineligibility due to an inadequate step 2B analysis).” MPEP § 2106.04(a)(2)(III)(D) cites the following as an example of a mental process: “An application program interface for extracting and processing information from a diversity of types of hard copy documents – Content Extraction, 776 F.3d at 1345, 113 USPQ2d at 1356.”
2A – Prong 2: Integrated into a Practical Application?
No – The judicial exception(s) is/are not integrated into a practical application.
The dependent claims incorporate the additional elements of the independent claim from which each respectively depends.
Claim 17 additionally recites:
an online ordering system communicatively coupled to the fulfillment service;
wherein the instructions, when executed by the processor, further cause the clustering service to provide the plurality of clusters to the fulfillment service; and
wherein the fulfillment service includes a second processor and second memory storing second instructions that, when executed by the second processor, cause the fulfillment service to:
receive the plurality of clusters;
receive an order from the online ordering system; and
using the plurality of clusters, execute a fulfillment task for the order.
It is noted that, at best, caching and aggregating data from datastores simply utilize memory for data storage. In a more broad interpretation, caching and aggregating data from datastores could mean that data is collected from multiple data sources. Either way, data is managed and stored at a high level of generality.
Additionally, the timing of data storage simply allows a query to be subsequently performed after establishment of a cluster of data that may be searched. No technical improvement is readily achieved from the timing. Searching a smaller amount of data (regardless of whether the search is perform by a human or by a machine) is generally more efficient than searching a larger amount of data. The smaller cluster of data would need to be established before a query would otherwise search a larger amount of data. Reducing latency time and network bandwidth used are inevitable benefits of querying smaller amounts of data. The nodes may simply be collections of data or entities or data corresponding to various entities. Clustering nodes may simply mean grouping certain nodes (and corresponding data) together. The use of a similarity score just identifies groupings of data that are more relatively similar. There are no details of the underlying data structure for the nodes beyond the fact that a cluster of information from certain nodes is sent to a cluster cache. In effect, this simply filters out a smaller subset of data to search from a larger collection of data. Inherently, searching smaller amounts of data (compared to larger amounts of data, given the same conditions) will be faster, more efficient, etc. and these benefits would be archived regardless of if the corresponding operations are performed by a human or by a computer. The invention merely describes how to filter out smaller amounts of data for a quicker search. There is no improvement to an underlying technology recited in the claims, for example.
The claims as a whole merely describe how to generally “apply” the abstract idea(s) in a computer environment. The claimed processing elements are recited at a high level of generality and are merely invoked as a tool to perform the abstract idea(s). Simply implementing the abstract idea(s) on a general-purpose processor is not a practical application of the abstract idea(s); Applicant’s specification discloses that the invention may be implemented using general-purpose processing elements and other generic components (Spec: ¶¶ 108-116).
The use of a processor/processing elements (e.g., as recited in all of the claims) facilitates generic processor operations. The use of a memory or machine-readable media with executable instructions facilitates generic processor operations.
The additional elements are recited at a high-level of generality (i.e., as generic processing elements performing generic computer functions) such that the incorporation of the additional processing elements amounts to no more than mere instructions to apply the judicial exception(s) using generic computer components. There is no indication in the Specification that the steps/functions of the claims require any inventive programming or necessitate any specialized or other inventive computer components (i.e., the steps/functions of the claims may be implemented using capabilities of general-purpose computer components). Accordingly, the additional elements do not integrate the abstract ideas into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claims are directed to an abstract idea(s).
The processing components presented in the claims simply utilize the capabilities of a general-purpose computer and are, thus, merely tools to implement the abstract idea(s). As seen in MPEP § 2106.05(a)(I) and § 2106.05(f)(2), the court found that accelerating a process when the increased speed solely comes from the capabilities of a general-purpose computer is not sufficient to show an improvement in computer-functionality and it amounts to a mere invocation of computers or machinery as a tool to perform an existing process (see FairWarning IP, LLC v. Iatric Sys., 839 F.3d 1089, 1095, 120 USPQ2d 1293, 1296 (Fed. Cir. 2016)).
There is no transformation or reduction of a particular article to a different state or thing recited in the claims.
Additionally, even when considering the operations of the additional elements as an ordered combination, the ordered combination does not amount to significantly more than what is present in the claims when each operation is considered separately.
It is noted that, as explained in Part 2A – Prong 1 above, “applying a machine learning algorithm to the plurality of geographical coordinates to group the plurality of nodes based on geographical proximity” (as recited in claim 9) is an example of a mathematical concept. Additional evidence of this assessment, based on broadest reasonable interpretation, is found in the various calculations described throughout Applicant’s Specification, including in ¶ 49, where the use of a K-Means Clustering algorithm is referenced. Even if claim 9 were amended to clarify that a processor executes instructions to perform active machine learning, such an amendment would not alone be sufficient to overcome the rejection. Considering that the implementation of the machine learning model and/or the training of the model could be performed using processing elements (in light of Applicant’s Specification), such an implementation would be presented as a generic recitation of machine learning in the claims and as a general link to technology. The machine learning-based processing elements are simply tools to generally automate the underlying process that could be performed by a human. It is further noted that, as described in Applicant’s Specification, the machine learning operations are generic machine learning operations (Spec: ¶¶ 49-50). The Specification presents no assertion that there is any improvement in the automated machine learning process itself. Such a generic recitation of machine learning, as disclosed in Applicant’s Specification, is little more than automating an analogous process that can be performed by a human.)
Even if the following limitations are seen as more than a general application of the processing elements, they were well-understood, routine and conventional operations at the time of Applicant’s invention:
for a first cluster of the one or more subclusters, caching and aggregating data from a first plurality of datastores of a first plurality of nodes belonging to the first cluster into a cluster cache comprising a cluster datastore to reduce real-time data retrieval latency for responding to requests for data of the first plurality of nodes;
in real time at a second time later than the first time:
receiving the request;
responsive to receiving the request, executing a single query against the cluster cache to retrieve the data of the first plurality of nodes without querying the first plurality of datastores of the first plurality of nodes.
2B: Claim(s) Provide(s) an Inventive Concept?
No – The claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception(s). As discussed above with respect to integration of the abstract idea(s) into a practical application, the use of the additional elements to perform the steps identified in Step 2A – Prong 1 above amounts to no more than mere instructions to apply the exceptions using a generic computer component(s). Mere instructions to apply an exception using a generic computer component(s) cannot provide an inventive concept. The claims are not patent eligible.
The prior art references cited below serve as evidence that the following limitations were well-understood, routine and conventional operations at the time of Applicant’s invention:
for a first cluster of the one or more subclusters, caching and aggregating data from a first plurality of datastores of a first plurality of nodes belonging to the first cluster into a cluster cache comprising a cluster datastore to reduce real-time data retrieval latency for responding to requests for data of the first plurality of nodes;
in real time at a second time later than the first time:
receiving the request;
responsive to receiving the request, executing a single query against the cluster cache to retrieve the data of the first plurality of nodes without querying the first plurality of datastores of the first plurality of nodes.
(a) Ramamurthi et al. (US 2017/0249358) --
Abstract: “A system and method for parallel optimization of database query using cluster cache improves the performance of group by aggregates by avoiding the merge phase of parallel aggregation with the use of dynamic clustering and by caching the clustering information and storing them in local memory of worker thread. The caching of cluster information is based on user configuration to avoid overuse of system memory.”
¶ 98: “Exemplary embodiments discussed above may provide certain advantages. Though not required to practice aspects of the disclosure, there are several advantages to the mechanisms disclosed herein. The mechanism disclosed in the present disclosure improves performance of OLAP queries which tend to be grouped on the same set of columns. The key benefit is achieved when there are less writes and more queries. The mechanism discloses the concept of intermediate result caching to grouped aggregates. It caches the cluster information to avoid the clustering operation for each query execution and thus reducing the cost of query execution. The mechanism in the “Continuous ETL” scenario of smart policy charging control (PCC) improves the performance of the queries by more than 70%. The mechanism uses a cache for storing clustering information/cluster data of frequently used columns in group aggregate operations to improve the performance of parallel group aggregate operation. The mechanism distributes the clustering information in different NUMA node to avoid remote read of memory and thereby increase the local memory usage and to reduce the cache misses. The mechanism manages the cluster cache using user given information to control the use of system memory through system configuration. The mechanism manages the cache with the help of usage statistics so to avoid having stale data in the cluster cache. The mechanism allows user to add or remove cluster information using SQL command to increase the flexibility for the user. The mechanism improves group aggregate execution speed by caching intermediate results to benefit many queries. The mechanism provides user configurable and manageable cache to store the clustering information about columns used in group aggregate. The mechanism enables evacuation of unused clustering information from the cache to make space for the new clustering information (to accommodate space for the frequently used columns).”
(b) Hollander et al. (US 2020/0301939) –
¶ 277: “Various embodiments can also include further architecture improvements. For example, the visualization system can include cache operations to improve execution speed. According to one embodiment, the system is architected to cache the result of aggregation queries in a dedicated cache cluster, where that data can be accessed by any user wanting the same chart in a similar timeframe. For example, the dedicated cache cluster and ability to serve aggregated data from the cache significantly improves the performance of communicating and/or rendering charts, and can also provide the additional benefit of avoiding repeated expensive queries.”
¶ 280: “Accordingly, a cache architecture can be included in various embodiments to store the result of each aggregation query within a dedicated cache cluster (which can be separate from a client database and/or integrated) after the chart data is first requested. Subsequent requests by other users to render the same chart (e.g., within a defined time frame) would retrieve the cached data instead of executing the aggregation query again. Such embodiments, result in near-instant chart renders where the data is in the cache, and reduced load on the client database cluster (e.g., a customer's MongoDB cluster).”
(c) Zbarsky et al. (US 2021/0109949) –
¶ 112: “As illustrated with the example of FIG. 4, multiple streams of multiple metric buckets from multiple nodes in system 100 can be aggregated in query caches where each query cache corresponds to a query submitted from query/API server cluster 122 to query cache cluster 118. For example, each query submitted may correspond to an active graphical user interface dashboard in GUI 128 or an active alert configured with alert watcher 124.”
¶ 124: “For example, for a submission of Query 2 of FIG. 4, query cache cluster 118 may compute a metric value from aggregated metric values for each distinct node property value of query cache 116-2 metric values. For example, query cache cluster 118 may compute a metric value for “kernel” node property value “4.18” and another metric value for “kernel” node property value “4.19”. Each such metric value may be computed by aggregating (e.g., summing) metric values in the entries of the corresponding metric time series of query cache 116-2 that are within the target time period of the query submission. For example, if the metric time series for “kernel” node property value “4.18” covers a 24 hour sliding window of time where each entry of the metric time series corresponds to a thirty second time slot within the 24 hour sliding window of time and the target time period for a particular submission of Query 2 is a five minute period within the current 24 hour sliding window, then the metric value to return as a query result for the query submission can be computed by summing the metric values within 10 consecutive entries of the metric time series that correspond to the five minute period. Note that this relatively simple computation can be performed very quickly (e.g., in a few milliseconds) by query cache cluster 118 in response to receiving a query submission of Query 2, especially if the entries are stored in volatile memory. It should also be noted that since metric values from multiple nodes are pre-aggregated by distinct node property values prior to the query submission, this aggregation need not be performed in response to receiving a query submission, thereby improving the query submission response time/latency of query cache cluster 118.”
¶ 125: “Metric time series values in a query cache can also be downsampled and results to query submissions can be determined by query cache cluster 118 from downsampled metric time series values in the query cache. The downsampling can occur like the downsampling performed by metric downsampler 114 on metric time series in storage 112. For example, metric values in metric buckets 402-1 and 402-2 can be initially allocated to an initial level of metric time series having thirty second entries. Then, query cache cluster 118 can aggregate multiple entries of a metric time series in the initial level (e.g., ten thirty second entries) in a single entry in a metric time series in a second level of metric time series having entries with a time resolution of minutes (e.g., five minutes). This can continue for further downsampling levels with greater time resolutions per entry. Downsampling can occur on regular intervals such as, for example, corresponding to the time resolution of the entries on the downsampled metric time series. For example, for a downsampled metric time series with five-minute time resolution for entries, metric time series from the level below can be downsampled every five minutes. By storing downsampled metric time series in a query cache for a query, it may be possible to provide results to a submission of the query without needing to aggregate metric time series entries because there is a single metric time series entry that contains the metric value requested for the time period of the query submission. For example, the metric value requested can simply be read from the single entry in volatile memory. Even if the query result for a query submission is not available from a single downsampled metric time series entry, it may be computed by aggregating fewer downsampled metric time series entries than would be needed if the query result were computed from entries in the initial metric time series level of the query cache. Also, since downsampled metric time series require less computer storage media to store than the metric time series of the initial level, downsampled metric time series may cover a longer range in time. For example, a metric time series in the initial level of a query cache may cover the past 24 hours while a downsampled metric time series in a downsampled level may cover the past week, depending on the time resolution of the entries in the downsampled metric time series. This also allows computing results to a query for a time period that is past or at least partially beyond the time period covered by the metric time series in the initial level without having to process the query against storage 112. In other words, the query can be answered from a query cache without having to access storage 112, which can improve the query processing time/latency. For example, a query associated with a requested time period of the past week or more than a day ago may be able to be answered from downsampled metric time series of a query cache for the query even if the metric time series of the initial level of the query cache covers only the past 24 hours.”
Allowable Subject Matter
Claims 1, 3-5, 7, 9-14, and 16-20 are allowed over the prior art of record. The claims remain rejected under 35 U.S.C. § 101.
The following is a statement of reasons for the indication of allowable subject matter:
Absher et al. (US 2024/0086829) in view of Kalinski (US 2022/0374797) in view of Ramamurthi et al. (US 2017/0249358) most closely address the various concepts recited in each of the independent claims, as seen in the last art rejection in the Office action dated September 24, 2025 (particularly in regard to the rejections of claims 1, 9, 15, 16, and 20). However, the Examiner finds that one of ordinary skill in the art prior to Applicant’s invention would not have, in light of the teachings of the aforementioned references, found it obvious to create the claimed invention with the level of detail and specific manner of integration of operations as they are presented in each of the independent claims. Therefore, claims 1, 3-5, 7, 9-14, and 16-20 are deemed to be allowable over the prior art of record.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SUSANNA M DIAZ whose telephone number is (571)272-6733. The examiner can normally be reached M-F, 8 am-4:30 pm.
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, Brian Epstein can be reached at (571) 270-5389. 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.
/SUSANNA M. DIAZ/
Primary Examiner
Art Unit 3625A