Prosecution Insights
Last updated: April 19, 2026
Application No. 18/176,286

STREAMING AGGREGATION QUERIES

Non-Final OA §103
Filed
Feb 28, 2023
Examiner
HALM, KWEKU WILLIAM
Art Unit
2166
Tech Center
2100 — Computer Architecture & Software
Assignee
Microsoft Technology Licensing, LLC
OA Round
5 (Non-Final)
80%
Grant Probability
Favorable
5-6
OA Rounds
2y 8m
To Grant
92%
With Interview

Examiner Intelligence

Grants 80% — above average
80%
Career Allow Rate
200 granted / 249 resolved
+25.3% vs TC avg
Moderate +12% lift
Without
With
+12.1%
Interview Lift
resolved cases with interview
Typical timeline
2y 8m
Avg Prosecution
45 currently pending
Career history
294
Total Applications
across all art units

Statute-Specific Performance

§101
10.0%
-30.0% vs TC avg
§103
58.9%
+18.9% vs TC avg
§102
17.5%
-22.5% vs TC avg
§112
9.1%
-30.9% vs TC avg
Black line = Tech Center average estimate • Based on career data from 249 resolved cases

Office Action

§103
DETAILED ACTION Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Continued Examination Under 37 CFR 1.114 2. A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on February 2nd 2026 has been entered. Response to Amendment 3. The Amendment filed on February 2nd 2026 has been entered. Claims 1, 3, 10, 11, 13 and 16 - 20 have been amended, claims 1 - 20 are pending in the application. Response to Arguments 35 U.S.C. §103 4. Applicant's arguments, see Remarks pp. 9 -13, filed February 2nd 2026, with respect to the rejections of claims 1 - 20 under 35 U.S.C. §103 have been fully considered and they are persuasive. The crux of Applicant’s arguments is that the amendments to the independent claims are not taught by the references of record. Examiner respectfully agrees Upon further consideration new grounds of rejection have been necessitated due to Applicant's amendments and are made in view of John Sismanis (United States Patent Publication Number 20080046474) hereinafter Sismanis Claim Rejections – 35 U.S.C. §103 5. 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. 6. The factual inquiries set forth in Graham v John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows: a. Determining the scope and contents of the prior art b. Ascertaining the differences between the prior art and the claims at issue c. Resolving the level of ordinary skill in the pertinent art d. Considering objective evidence present in the application indicating obviousness or nonobviousness Claims 1, 3 – 6, 8 and 11 - 13 are rejected under 35 U.S.C. 103 as being unpatentable over Brown et al. (United States Patent Publication Number 20220292092), in view of Gupta et al. (United States Patent Publication Number 20180285440), hereinafter referred to as Gupta in view of Yadav et al., (United States Patent Number 7562078) hereinafter Yadav and in further view of John Sismanis (United States Patent Publication Number 20080046474) hereinafter Sismanis Regarding claim 1 Brown teaches a computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 for streaming (data transfer [0080]) such as “streaming” aggregation queries, ("select sum(invoice.amount) from sales_table" [0061]) the computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 comprising: a processor; (processor [0035]) and a memory (memory [0032]) storing instructions (compiled program [0032]) such as “instructions” that, when executed (executed [0038]) by the processor, (processor [0035]) cause the processor(processor [0035]) to: receive a query (the query instance may be initially received from the user in natural language (e.g., as a voice or text). [0061]) from a caller, (user [0061]) wherein the query (the query instance may be initially received from the user in natural language (e.g., as a voice or text). [0061]) comprises an aggregation operator; (the NLQ query instance may be "show me the sales for my company" and the corresponding SQL relational query instances may be generated as "select sum(invoice.amount) from sales_table" [0061]) retrieve data comprising a plurality of data entries, (extracted data [0039]) Brown does not fully disclose receive a set of keys from a first lower-level node and a second lower- level node, wherein the set of keys corresponds to a plurality of data entries of the first lower-level node and the second lower-level node; determine first and second subsets of data entries from the plurality of data entries based on occurrences of each key in the set of keys, wherein the first subset of data entries comprises data entries having disjointed keys and the second subset of data entries comprises data entries having intersecting keys; after determining the first and second subsets of data entries, retrieve the plurality of data entries from the first lower-level node and the second lower-level node; return the first subset of data entries to the caller; release the first subset of data entries from the memory; after releasing the first subset of data entries from the memory, aggregate the second subset of data entries using an aggregation operation corresponding to the aggregation operator; and return the aggregated second subset of data entries to the caller. Gupta teaches wherein each data entry comprises a key; (the map function may generate a plurality of key-value pairs The key-value pairs may include a single key and a single value, for example, as expressed as a function (1, v1), where 1 is the key and v1 is the value. [0023]) determine (determine [0025]) first (key-value group ([16], [u7, u8]) [0027]) and second subsets (new key-value group is generated ([1, 2, 3, 4], [ul, u2]) [0026]) of data entries from the plurality of data entries, (Fig. 1, (101) receive a plurality of information/data [0022]) wherein the first subset of data entries(key-value group ([16], [u7, u8]) [0027]) comprises data entries having disjointed keys (If common values are not identified across keyvalue groups, the key-value groups will be maintained as received from the map function at 105. [0026]) and the second subset of data entries (new key-value group is generated ([1, 2, 3, 4], [ul, u2]) [0026]) comprises data entries having intersecting keys; (if any of the key-value groups include values which are common across the key-value groups. This determination is done for the output of each map task separately [0025]) aggregate (reduce functions [0020]) the second subset of data entries (Additionally, for keys having common values across different groups, different new key-groups will be generated for each of the common values. As an example, key 1 includes values u1 and u2 which are common to keys 2, 3, and 4. Accordingly, a new key-value group is generated ([1, 2, 3, 4], [ul, u2]). However, key 1 also includes values u3 and u4, which are common to keys 6, 7, 8. Thus, another new key-value group including key 1 is generated ([1, 6, 7, 8], [u3, u4]). [0027]) using an aggregation operation corresponding to the aggregation operator; (reduce reducers [0019]) such as “aggregation operator” and return (transferred [0029]) SEE ALSO [0020] – [0021] the aggregated second subset of data entries (another new key-value group including key 1 is generated ([1, 6, 7, 8], [u3, u4]); new key-value group is generated ([1, 2, 3, 4], [ul, u2]) [0027]) to the caller (user [0038]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown to incorporate the teachings of Gupta wherein each data entry comprises a key; determine first and second subsets of data entries from the plurality of data entries, wherein the first subset of data entries comprises data entries having disjointed keys and the second subset of data entries comprises data entries having intersecting keys; return the first subset of data entries to the caller; aggregate the second subset of data entries using an aggregation operation corresponding to the aggregation operator; and return the aggregated second subset of data entries to the caller. By doing so rather than communicating every value to the reduce function, the system identifies the duplicated or common values in a map task output that have been assigned as input to reduce tasks running on the same machine and communicates these values only once to this machine. Accordingly, the communication expenses are reduced and the time to complete information processing is also reduced. Gupta [0021] Yadav teaches return the first subset of data entries (active data that is present in a location in a volatile memory (such as random access memory, or RAM) is indexed in a first manner to data that is stored in long-term data storage (non-volatile memory, such as a disk storage) data storage in a first manner Col 3 ln 12 – 16) such as “first subset of data entries” to the caller; (prior to unmounting … the in-memory data that was read from disk memory for any client Col 7 ln 20 – 25) release the first subset of data entries (active data that is present in a location in a volatile memory (such as random access memory, or RAM) is indexed in a first manner to data that is stored in long-term data storage (non-volatile memory, such as a disk storage) data storage in a first manner Col 3 ln 12 – 16) such as “first subset of data entries” from the memory; (the destination volume will be removed from the file hierarchy of the destination storage server (unmounted) to invalidate any data currently held in memory. Data in memory may include active data that has been requested by one or more clients, which generally would be cached in memory to serve future data requests. The cached data will be released in the unmounting process Col 7 ln 12 - 19) after releasing the first subset of data entries (active data that is present in a location in a volatile memory (such as random access memory, or RAM) is indexed in a first manner to data that is stored in long-term data storage (non-volatile memory, such as a disk storage) data storage in a first manner Col 3 ln 12 – 16) such as “first subset of data entries” from the memory, (In this manner, the data that was contained in the main memory is released Col 7 ln 25 - 30) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta to incorporate the teachings of Yadav wherein return the first subset of data entries to the caller; release the first subset of data entries from the memory; after releasing the first subset of data entries from the memory. By doing so the container file may be used to more efficiently address data requests or the generation of new data images. Yadav Col 11 ln 17 – 19 Sismanis teaches receive a set of keys (Fig. 19 if there is only one node in toMerge then 2: mergedNode <~ (the only) node in ioA1er~r;e 3: else 4: mergedNode <E---- create new node 5: for each distinct value v, in nodes in toMerge do 6: newCell <E---- create new cell in mergedNode 7: newCell.value <E---- v, 8: if nodes in toMerge are leaves then 9: newCell.count <E---- sum of all counts of cells (in toMerge) with values equal to v, 10: else 11: partialSet <E---- all the children of the cells (in toMerge) with values equal to v, 12: newCell.child <E---- Merge(partialSet) 13 end if 14: end for 15: end if 16: return mergedNode [0333], [0039]) from a first lower-level node (Fig. 6 prefix tree, level (2), level (8) [0020], [0066]) and a second lower- level node, (Fig. 6 prefix tree level (3), level (9) [0020], [0066]) wherein the set of keys (Fig 22, keyset [0135]) corresponds to a plurality of data entries (Fig. 6 (2) cell values “Thompson”, “Spencer” (8) “Kwan” [0066]; (3) “3478”, “6791” )(6) “5237”; (9) “3478”) [0066]) of the first lower-level node (Fig. 6 prefix tree, level (2), level (8) [0020], [0066])and the second lower-level node; (Fig. 6 prefix tree level (3), level (9) [0020], [0066]) determine first (Fig. 6 (3) “3478”, “6791” )(6) “5237”; [0066]) and second subsets of data entries (Fig. 6 (9) “3478”) [0066]) from the plurality of data entries (Fig. 6 (2) cell values “Thompson”, “Spencer” (8) “Kwan” [0066]; (3) “3478”, “6791” )(6) “5237”; (9) “3478”) [0066]) based on occurrences of each key in the set of keys, (Given a schema (i.e., set of attributes) R, a subset K of R and a dataset of entities E over R, K is a key if and only if for any t, u EE, t[K]=u[K] only ift=u. In other words, K is a key when the values of the attributes K of entity t are all equal to the values of the corresponding attributes of entity u only when the values of the attributes R of entity t are all equal to the values of the corresponding attributes of entity u. [0051]) wherein the first subset of data entries (Fig. 6 (3) “3478”, “6791” )(6) “5237”; [0066]) comprises data entries having disjointed keys (distinct key [0150]) such as “disjointed keys” and the second subset of data entries (Fig. 6 (9) “3478”) [0066])comprises data entries having intersecting keys; (set of keys from the intersections of the complement sets of key candidates [0139]) after determining the first (Fig. 6 (3) “3478”, “6791” )(6) “5237”; [0066]) and second subsets of data entries, (Fig. 6 (9) “3478”) [0066]) retrieve the plurality of data entries (Fig. 22 referencing algorithm 6 for each candidate key pkey in the complementSet and for each key Key already inserted in KeySet, the union (line 10) of pKey and Key is inserted into the set newSet. newSet is returned as Key Set [0135])from the first lower-level node(Fig. 6 prefix tree, level (2), level (8) [0020], [0066]) and the second lower-level node(Fig. 6 prefix tree level (3), level (9) [0020], [0066]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta and Yadav to incorporate the teachings Sismanis of wherein receive a set of keys from a first lower-level node and a second lower- level node, wherein the set of keys corresponds to a plurality of data entries of the first lower-level node and the second lower-level node; determine first and second subsets of data entries from the plurality of data entries based on occurrences of each key in the set of keys, wherein the first subset of data entries comprises data entries having disjointed keys and the second subset of data entries comprises data entries having intersecting keys; after determining the first and second subsets of data entries, retrieve the plurality of data entries from the first lower-level node and the second lower-level node. By doing so keys in a database can be discovered Sismanis [0006] Claim 11 corresponds to claim 1 and is rejected accordingly Regarding claim 3 Brown in view of Gupta, Yadav and Sismanis teaches the computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 of claim 1, Brown as modified further teaches wherein the plurality of data entries (extracted data [0039]) resides in a distributed database system (distributed database system [0028]) comprising a plurality of nodes arranged in a tree structure, (The one or more enterprise query nodes (such as, the EQB nodes 406, 408 of the EQB subsystem 402) may be arranged in a hierarchical structure (or otherwise). In some embodiments, the one or more enterprise query nodes (such as, the EQB nodes 406, 408, 502) may be arranged as multiple enterprise query nodes across at least two or more different enterprise networks. [0067]) and wherein one of the plurality of nodes (the one or more enterprise query nodes (such as, the EQB nodes 406, 408 of the EQB subsystem 402) [0067]) comprises the computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 Regarding claim 4 Brown in view of Gupta, Yadav and Sismanis teaches the computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 of claim 3, Brown as modified further teaches wherein the caller (the user [0061]) such as “caller” comprises a node (application client [0026]) higher than the (since the query is passed from the application client to the data sources via the EQB nodes [0026]) computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 Regarding claim 5 Brown in view of Gupta, Yadav and Sismanis teaches the computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 of claim 3, Brown as modified further teaches wherein the data (the relevant data [0063]) is retrieved from a node (sever node 408 [0062]) lower than the (since the server node 408 may process the relational query instances (corresponding to the user query) to determine from which of the data sources may there be information needed to be gathered for processing of the user query instance. [0063]) computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 Regarding claim 6 Brown in view of Gupta, Yadav and Sismanis teaches the computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 of claim 5, Brown as modified further teaches wherein the node(sever node 408 [0062]) lower than the (since the server node 408 may process the relational query instances (corresponding to the user query) to determine from which of the data sources may there be information needed to be gathered for processing of the user query instance. [0063]) computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 is a logical node (Fig. 5A depicting schematic internal data flow for enterprise query base nodes [0026]) such as “logical nodes” residing in the computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 Regarding claim 8 Brown in view of Gupta, Yadav and Sismanis teaches the computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 of claim 1, Brown as modified does not fully disclose wherein the first and second subset of data entries are determined by determining occurrences of keys. Gupta teaches wherein the first (key-value group ([16], [u7, u8]) [0027]) and second subset (new key-value group is generated ([1, 2, 3, 4], [ul, u2]) [0026]) of data entries (Fig. 1, (101) receive a plurality of information/data [0022]) are determined by determining occurrences of keys (identifying that one key-group contains key 2 from map output 1 301 (i.e., ([1, 2, 3, 4], [ul, u2])) and one key-group contains key 2 from map output 2 302 (i.e., ([2, 6], [v3, v4])), the system will look at the cache on machine m to identify whether any common values exist between key 1 and key 2. [0031]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Yadav and Sismanis to incorporate the teachings of Gupta, wherein the first and second subset of data entries are determined by determining occurrences of keys. By doing so values common to keys 1 and 2 are only transferred to machine m once. Gupta [0031]. Regarding claim 12 Brown in view of Gupta, Yadav and Sismanis teaches the method (method [0031]) of claim 11, Brown as modified does not fully disclose wherein aggregating the second subset of data entries is performed after returning the first subset of data entries to the caller. Gupta teaches wherein aggregating the second subset of data entries (new key-value group is generated ([1, 2, 3, 4], [ul, u2]) [0026]) is performed after returning(transferred [0029]) the first subset of data entries(key-value group ([16], [u7, u8]) [0027]) to the caller. (user [0038]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Yadav and Sismanis to incorporate the teachings of Gupta, wherein aggregating the second subset of data entries is performed after returning the first subset of data entries to the caller. By doing so values common to keys 1 and 2 are only transferred to machine m once. Gupta [0031]. Regarding claim 13 Brown in view of Gupta, Yadav and Sismanis teaches the method (method [0031]) of claim 11, Brown as modified further teaches wherein the data (extracted data [0039])resides in a distributed database system (distributed database system [0028]) comprising a plurality of nodes arranged in a tree structure. (The one or more enterprise query nodes (such as, the EQB nodes 406, 408 of the EQB subsystem 402) may be arranged in a hierarchical structure (or otherwise). In some embodiments, the one or more enterprise query nodes (such as, the EQB nodes 406, 408, 502) may be arranged as multiple enterprise query nodes across at least two or more different enterprise networks. [0067]) Claims 2 are rejected under 35 U.S.C. 103 as being unpatentable over Brown et al. (United States Patent Publication Number 20220292092), in view of Gupta et al. (United States Patent Publication Number 20180285440), hereinafter referred to as Gupta, in view of Yadav et al., (United States Patent Number 7562078) hereinafter Yadav, in view of John Sismanis (United States Patent Publication Number 20080046474) hereinafter Sismanis and in further view of Yu et al., “Distributed Aggregation for Data-Parallel Computing: Interfaces and Implementations “ hereinafter Yu Regarding claim 2 Brown in view of Gupta, Yadav and Sismanis teaches the computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 of claim 1, Brown as modified does not fully disclose wherein the aggregation operator is associative decomposable. Yu teaches wherein the aggregation operator is associative decomposable (decomposable functions; associative decomposable operations Page 4 Col 1, Page 7 Col 2, Page 8 Col 1, 2) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta, Yadav and Sismanis to incorporate the teachings of Yu whereby because Sum is an associative-decomposable function, the system automatically determines that the expression passed to Aggregate is also associative decomposable. Yu Page 8 Col 1 Claims 7, 9, 10, 14 - 20 are rejected under 35 U.S.C. 103 as being unpatentable over Brown et al. (United States Patent Publication Number 20220292092), in view of Gupta et al. (United States Patent Publication Number 20180285440), hereinafter referred to as Gupta, in view of Yadav et al., (United States Patent Number 7562078) hereinafter Yadav in view of John Sismanis (United States Patent Publication Number 20080046474) hereinafter Sismanis and in further view of Pishe et al., (United States Patent Publication Number 20190310974) hereinafter Pishe Regarding claim 7 Brown in view of Gupta, Yadav and Sismanis teaches the computing device(computing device [0038]) see e.g. Fig. 4 Master Client Node 406 of claim 1, Brown as modified does not fully disclose wherein the first and second subset of data entries are determined using an algorithm having a linear time complexity. Pishe teaches wherein the first and second subset of data entries (subsets of a larger data set [0021]) are determined using an algorithm having a linear time complexity (O(n) is also referred to as "linear time." An algorithm that runs in linear time means that for large enough input sizes, the running time increases linearly with the size of the input. An example of an algorithm that operates in linear time is an algorithm that finds the smallest or largest item in an unsorted list. [0070]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta, Yadav and Sismanis to incorporate the teachings of Pishe wherein the first and second subset of data entries are determined using an algorithm having a linear time complexity. By doing so as inputs grow large, the operations require to complete an instance of the algorithm having O(log n) complexity is quite lower than the operations required by an algorithm having O(n) complexity. Pishe [0070]. Claim 14 corresponds to claim 7 and is rejected accordingly Regarding claim 9 Brown in view of Gupta, Yadav and Sismanis teaches the computing device(computing device [0038]) see e.g. Fig. 4 Master Client Node 406 of claim 8, Brown as modified does not fully disclose wherein determining occurrences of keys is performed using a hashmap function. Pishe teaches wherein determining occurrences of keys (Each key may be associated with a linked list of key/value pairs. For example, key "O" may be associated with a linked list which includes key/value pair 504 [0072]) is performed using a hashmap function (The data structure 500 may be utilized with a hash function to distribute a number of key/value pairs over the buckets 502 in the data structure 500 [0073]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta, Yadav and Sismanis to incorporate the teachings of Pishe wherein determining occurrences of keys is performed using a hashmap function. By doing so an average time complexity for a well-balanced hash map may be performed in constant time (0(1)) while a worse-case scenario including a unevenly balanced hash map may be performed in linear time (O(n)).Pishe [0073] Regarding claim 10 Brown in view of Gupta, Yadav and Sismanis teaches the computing device(computing device [0038]) see e.g. Fig. 4 Master Client Node 406 of claim 1, Brown as modified discloses wherein the plurality of data entries (extracted data [0039] resides in a distributed database system (Such database systems may be implemented either as a distributed database or a distributed file system [0023]) comprising a plurality of nodes (ABS., the computing system may comprise one or more nodes) (FIGS. 3-8, the query base process 10 may include each of one or more nodes (e.g. , server nodes) communicating with at least one of the multiple data sources to access data therefrom [0082]) arranged in a tree structure, (the system may be implemented as a directional graph or tree-like mesh [0026]) Brown as modified does not fully disclose and wherein determining occurrences of keys is performed by receiving key hashes from at least two nodes in the plurality of nodes. Pishe teaches and wherein determining occurrences of keys (Each key may be associated with a linked list of key/value pairs. For example, key "O" may be associated with a linked list which includes key/value pair 504 [0072]) is performed by receiving key hashes (each key in table 510 may be hashed with the hash function to determine an appropriate bucket within the data structure 500. [0075]) from at least two nodes (one or more manager nodes, one or more worker nodes, [0021]) in the plurality of nodes (distributing portions of a data set amongst a plurality of nodes [0085]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta, Yadav and Sismanis to incorporate the teachings of Pishe wherein determining occurrences of keys is performed by receiving key hashes from at least two nodes in the plurality of nodes. By doing so If, for example, worker node 112 has available memory to store a key/value pair comprising the first key and index value, then the manager node 110 may select the worker node 112 as the destination of the hash map update request message. If the worker node 112 does not have available memory, the manager node 110 may select another worker nodes of the distributed computing system 108 that has available memory and direct the hash map update request message to the worker node with the available memory. Pishe [0089] Regarding claim 15 Brown in view of Gupta, Yadav and Sismanis teaches the method (method [0031]) of claim 11, Brown as modified does not fully disclose wherein the first and second subset of data entries are determined by determining occurrences of keys using a hashmap function. Pishe teaches wherein the first and second subset of data entries (subsets of a larger data set [0021]) are determined by determining occurrences of keys (Each key may be associated with a linked list of key/value pairs. For example, key "O" may be associated with a linked list which includes key/value pair 504 [0072]) using a hashmap function. (The data structure 500 may be utilized with a hash function to distribute a number of key/value pairs over the buckets 502 in the data structure 500 [0073]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta and Sismanis to incorporate the teachings of Pishe wherein the first and second subset of data entries are determined by determining occurrences of keys using a hashmap function.. By doing so an average time complexity for a well-balanced hash map may be performed in constant time (0(1)) while a worse-case scenario including a unevenly balanced hash map may be performed in linear time (O(n)). Pishe [0073] Regarding claim 16 Brown teaches a computing device(computing device [0038]) see e.g. Fig. 4 Master Client Node 406 for streaming(data transfer [0080]) such as “streaming” aggregation queries, ("select sum(invoice.amount) from sales_table" [0061]) the computing device (computing device [0038]) comprising: a processor; (processor [0035]) and a memory (memory [0032]) storing instructions (compiled program [0032]) such as “instructions” that, when executed by the processor, (processor [0035]) cause the processor(processor [0035]) to: receive a query (the query instance may be initially received from the user in natural language (e.g., as a voice or text). [0061]) from a caller, (user [0061]) wherein the query (the query instance may be initially received from the user in natural language (e.g., as a voice or text). [0061]) comprises an aggregation operator; (the NLQ query instance may be "show me the sales for my company" and the corresponding SQL relational query instances may be generated as "select sum(invoice.amount) from sales_table" [0061]) Brown does not fully disclose receive a set of keys from a plurality of node, wherein the set of keys corresponds to a plurality of data entries of the plurality of nodes; determine a set of disjointed data entries from the plurality of data entries based on occurrences of each key in the set of keys; after determining the set of disjointed data entries, retrieve a first set of data entries of the plurality of data entries from the first node in the plurality of nodes; return a subset of the first set of data entries corresponding to the set of disjointed data entries to the caller; after the subset of the first set of data entries is returned to the caller, release the subset of the first set of data entries from the memory; after determining the set of disjointed data entries, retrieve a second set of data entries of the plurality of data entries from a second node in the plurality of nodes; return a subset of the second set of data entries corresponding to the set of disjointed data entries to the caller; after the subset of the second set of data entries is returned to the caller, release the subset of the second set of data entries from the memory; after releasing the subset of the second set of data entries and the subset of the first set of data entries from the memory, aggregate remaining data entries in the first set of data entries and the second set of data entries using an aggregation operation corresponding to the aggregation operator; and return the aggregated remaining entries to the caller. Gupta teaches return (transferred [0029]) a subset of data entries (key-value group ([16], [u7, u8]) [0027]) from the first set of data entries (Fig. 1, (101) receive a plurality of information/data [0022]) to the caller, (user [0038]) wherein the subset of data entries (key-value group ([16], [u7, u8]) [0027]) from the first set of data entries (Fig. 1, (101) receive a plurality of information/data [0022]) is determined based on the determined occurrences of keys; (identifying that one key-group contains key 2 from map output 1 301 (i.e., ([1, 2, 3, 4], [ul, u2])) and one key-group contains key 2 from map output 2 302 (i.e., ([2, 6], [v3, v4])), the system will look at the cache on machine m to identify whether any common values exist between key 1 and key 2. [0031]) release (the cache 305A at machine m is updated [0030]) the subset of data entries (key-value group ([16], [u7, u8]) [0027]) from the first set of data entries (Fig. 1, (101) receive a plurality of information/data [0022]) from the memory; (from cache [0029]) after releasing (the cache 305A at machine m is updated [0030]) the subset of data entries(key-value group ([16], [u7, u8]) [0027]) from the first set of data entries (Fig. 1, (101) receive a plurality of information/data [0022]) from the memory, (from cache [0029]) aggregate (reduce functions [0020]) remaining data entries in the first set of data entries (key-value group ([16], [u7, u8]) [0027]) and the second set of data entries (Additionally, for keys having common values across different groups, different new key-groups will be generated for each of the common values. As an example, key 1 includes values u1 and u2 which are common to keys 2, 3, and 4. Accordingly, a new key-value group is generated ([1, 2, 3, 4], [ul, u2]). However, key 1 also includes values u3 and u4, which are common to keys 6, 7, 8. Thus, another new key-value group including key 1 is generated ([1, 6, 7, 8], [u3, u4]). [0027]) using an aggregation operation corresponding to the aggregation operator; (reduce reducers [0019]) such as “aggregation operator” and return (transferred [0029]) the aggregated remaining entries (another new key-value group including key 1 is generated ([1, 6, 7, 8], [u3, u4]); new key-value group is generated ([1, 2, 3, 4], [ul, u2]) [0027]) to the caller. (user [0038]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown to incorporate the teachings of Gupta wherein return a subset of data entries from the first set of data entries to the caller, wherein the subset of data entries from the first set of data entries is determined based on the determined occurrences of keys; release the subset of data entries from the first set of data entries from the memory; after releasing the subset of data entries from the first set of data entries from the memory, aggregate remaining data entries in the first set of data entries and the second set of data entries using an aggregation operation corresponding to the aggregation operator; and return the aggregated remaining entries to the caller. By doing so rather than communicating every value to the reduce function, the system identifies the duplicated or common values in a map task output that have been assigned as input to reduce tasks running on the same machine and communicates these values only once to this machine. Accordingly, the communication expenses are reduced and the time to complete information processing is also reduced. Gupta [0021] Pishe teaches determine occurrences of keys(Each key may be associated with a linked list of key/value pairs. For example, key "O" may be associated with a linked list which includes key/value pair 504 [0072]) in a plurality of nodes; (one or more manager nodes, one or more worker nodes, [0021]) retrieve a first set of data entries from a first node (various nodes [0022]) see for example one or more worker nodes [0044] in the plurality of nodes; (one or more manager nodes, one or more worker nodes, [0021]) retrieve a second set of data entries(one or more indexed lists (e.g., an indexed list that maps index values to transaction processing data). [0045]) from a second node(various nodes [0022]) see for example one or more worker nodes [0044] in the plurality of nodes; (one or more manager nodes, one or more worker nodes, [0021]) return a subset of data entries (subset of data that corresponds to an indexed list [0085]) from the second set of data entries (one or more indexed lists (e.g., an indexed list that maps index values to transaction processing data). [0045]) to the caller, wherein the subset of data entries (subset of data that corresponds to an indexed list [0085]) from the second set of data entries(one or more indexed lists (e.g., an indexed list that maps index values to transaction processing data). [0045]) is determined based on the determined occurrences of keys; (Each key may be associated with a linked list of key/value pairs. For example, key "O" may be associated with a linked list which includes key/value pair 504 [0072]), determine occurrences of keys(Each key may be associated with a linked list of key/value pairs. For example, key "O" may be associated with a linked list which includes key/value pair 504 [0072]) in a plurality of nodes; (one or more manager nodes, one or more worker nodes, [0021]) retrieve(receive information (e.g. request messages) [0022]) a first set of data entries (one or more indexed lists (e.g., an indexed list that maps index values to transaction processing data). [0045]) from a first node (various nodes [0022]) see for example one or more worker nodes [0044] in the plurality of nodes; (one or more manager nodes, one or more worker nodes, [0021]) return a subset of data entries (subset of data that corresponds to an indexed list [0085]) from the first set of data entries (one or more indexed lists (e.g., an indexed list that maps index values to transaction processing data). [0045]) to the caller, (user [0024]) wherein the subset of data entries (subset of data that corresponds to an indexed list [0085]) from the first set of data entries(one or more indexed lists (e.g., an indexed list that maps index values to transaction processing data). [0045]) is determined based on the determined occurrences of keys; (Each key may be associated with a linked list of key/value pairs. For example, key "O" may be associated with a linked list which includes key/value pair 504 [0072]) retrieve a second set of data entries (one or more indexed lists (e.g., an indexed list that maps index values to transaction processing data). [0045]) from a second node (various nodes [0022]) see for example one or more worker nodes [0044] in the plurality of nodes; (one or more manager nodes, one or more worker nodes, [0021]) return a subset of data entries (a subset of data that corresponds to an indexed list [0085]) from the second set of data entries(one or more indexed lists (e.g., an indexed list that maps index values to transaction processing data). [0045]) to the caller, (user [0024]) wherein the subset of data entries (a subset of data that corresponds to an indexed list [0085]) from the second set of data entries (one or more indexed lists (e.g., an indexed list that maps index values to transaction processing data). [0045]) is determined based on the determined occurrences of keys; (Each key may be associated with a linked list of key/value pairs. For example, key "O" may be associated with a linked list which includes key/value pair 504 [0072]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta to incorporate the teachings of Pishe determine occurrences of keys in a plurality of nodes; retrieve a first set of data entries from a first node in the plurality of nodes; retrieve a second set of data entries from a second node in the plurality of nodes; return a subset of data entries from the second set of data entries to the caller, wherein the subset of data entries from the second set of data entries is determined based on the determined occurrences of keys; By doing so If, for example, worker node 112 has available memory to store a key/value pair comprising the first key and index value, then the manager node 110 may select the worker node 112 as the destination of the hash map update request message. If the worker node 112 does not have available memory, the manager node 110 may select another worker nodes of the distributed computing system 108 that has available memory and direct the hash map update request message to the worker node with the available memory. Pishe [0089] Yadav teaches return the first subset of data entries (active data that is present in a location in a volatile memory (such as random access memory, or RAM) is indexed in a first manner to data that is stored in long-term data storage (non-volatile memory, such as a disk storage) data storage in a first manner Col 3 ln 12 – 16) such as “first subset of data entries” to the caller; (prior to unmounting … the in-memory data that was read from disk memory for any client Col 7 ln 20 – 25) release the first subset of data entries (active data that is present in a location in a volatile memory (such as random access memory, or RAM) is indexed in a first manner to data that is stored in long-term data storage (non-volatile memory, such as a disk storage) data storage in a first manner Col 3 ln 12 – 16) such as “first subset of data entries” from the memory; (the destination volume will be removed from the file hierarchy of the destination storage server (unmounted) to invalidate any data currently held in memory. Data in memory may include active data that has been requested by one or more clients, which generally would be cached in memory to serve future data requests. The cached data will be released in the unmounting process Col 7 ln 12 - 19) after releasing the first subset of data entries (active data that is present in a location in a volatile memory (such as random access memory, or RAM) is indexed in a first manner to data that is stored in long-term data storage (non-volatile memory, such as a disk storage) data storage in a first manner Col 3 ln 12 – 16) such as “first subset of data entries” from the memory, (In this manner, the data that was contained in the main memory is released Col 7 ln 25 - 30) after the subset of the second set of data entries (data is indexed in a second manner to the same data stored in the long-term storage. Col 3 ln 17 - 19) such as “subset of the second set of data entries” is returned to the caller, (prior to unmounting … the in-memory data that was read from disk memory for any client Col 7 ln 20 – 25) SEE FIG 7 an iterative process of unmounting and remounting a destination volume after data is eliminated from memory release the subset of the second set of data entries (data is indexed in a second manner to the same data stored in the long-term storage. Col 3 ln 17 - 19) such as “subset of the second set of data entries” from memory(the destination volume will be removed from the file hierarchy of the destination storage server (unmounted) to invalidate any data currently held in memory. Data in memory may include active data that has been requested by one or more clients, which generally would be cached in memory to serve future data requests. The cached data will be released in the unmounting process Col 7 ln 12 – 19 … In this manner, the data that was contained in the main memory is released Col 7 ln 25 - 30) SEE Fig. 7 is an iterative process of eliminating data in memory step (725) where Col 10 ln 39 - 58 It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta and Pishe to incorporate the teachings of Yadav wherein return the first subset of data entries to the caller; release the first subset of data entries from the memory; after releasing the first subset of data entries from the memory, after the subset of the second set of data entries is returned to the caller, release the subset of the second set of data entries from memory. By doing so the container file may be used to more efficiently address data requests or the generation of new data images. Yadav Col 11 ln 17 – 19 Sismanis teaches receive a set of keys (Fig. 19 if there is only one node in toMerge then 2: mergedNode <~ (the only) node in ioA1er~r;e 3: else 4: mergedNode <E---- create new node 5: for each distinct value v, in nodes in toMerge do 6: newCell <E---- create new cell in mergedNode 7: newCell.value <E---- v, 8: if nodes in toMerge are leaves then 9: newCell.count <E---- sum of all counts of cells (in toMerge) with values equal to v, 10: else 11: partialSet <E---- all the children of the cells (in toMerge) with values equal to v, 12: newCell.child <E---- Merge(partialSet) 13 end if 14: end for 15: end if 16: return mergedNode [0333], [0039]) from a plurality of nodes, (Fig. 6 prefix tree, level (2), level (8) [0020], prefix tree level (3), level (9) [0020], [0066]) wherein the set of keys (Fig 22, keyset [0135]) corresponds to a plurality of data entries (Fig. 6 (2) cell values “Thompson”, “Spencer” (8) “Kwan” [0066]; (3) “3478”, “6791” )(6) “5237”; (9) “3478”) [0066]) of the plurality of nodes; (Fig. 6 prefix tree, level (2), level (8) [0020], prefix tree level (3), level (9) [0020], [0066]) determine a set of disjointed data entries(Fig. 6 (2) cell values “Thompson”, “Spencer” (8) “Kwan” [0066]) from the plurality of data entries (Fig. 6 (2) cell values “Thompson”, “Spencer” (8) “Kwan” [0066]; (3) “3478”, “6791” )(6) “5237”; (9) “3478”) [0066])based on occurrences of each key in the set of keys; (Fig 22, keyset [0135])after determining the set of disjointed data entries, (Fig. 6 (2) cell values “Thompson”, “Spencer” (8) “Kwan” [0066]; retrieve a first set of data entries (Fig. 6 (2) cell values “Thompson”, “Spencer” (8) “Kwan” [0066]);of the plurality of data entries (Fig. 6 (2) cell values “Thompson”, “Spencer” (8) “Kwan” [0066]; (3) “3478”, “6791” )(6) “5237”; (9) “3478”) [0066]from the first node (Fig. 6 prefix tree, level (2), level (8) [0020], [0066])in the plurality of nodes; (Fig. 6 prefix tree, level (2), level (8) [0020], prefix tree level (3), level (9) [0020], [0066])return a subset (Fig. 6 (2) cell values “Thompson”, [0066]) of the first set of data entries c(Fig. 6 (2) cell values “Thompson”, “Spencer” (8) “Kwan” [0066]) corresponding to the set of disjointed data entries to the caller; (Fig. 6 (3) “3478”, “6791” )(6) “5237”; [0066]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown to incorporate the teachings of Gupta, Yadav and Pishe wherein receive a set of keys from a plurality of node, wherein the set of keys corresponds to a plurality of data entries of the plurality of nodes; determine a set of disjointed data entries from the plurality of data entries based on occurrences of each key in the set of keys; after determining the set of disjointed data entries, retrieve a first set of data entries of the plurality of data entries from the first node in the plurality of nodes; return a subset of the first set of data entries corresponding to the set of disjointed data entries to the caller;. By doing so keys in a database can be discovered Sismanis [0006] Regarding claim 17 Brown in view of Gupta, Pishe, Yadav and Sismanis teaches the computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 of claim 16, Brown does not fully disclose wherein the subset of data entries from the first set of data entries comprises data entries having keys that occur once in the set of keys. Gupta wherein the subset of the first set of data entries (Fig. 1, (101) receive a plurality of information/data [0022]) comprises data entries having keys that occur once (If common values are not identified across keyvalue groups, the key-value groups will be maintained as received from the map function at 105. [0026]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Pishe, Yadav and Sismanis to incorporate the teachings of Gupta wherein the subset of data entries from the first set of data entries comprises data entries having keys that occur. By doing so values common to keys 1 and 2 are only transferred to machine m once. Gupta [0031]. Sismanis teaches the set of keys (Fig 22, keyset [0135]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown to incorporate the teachings of Gupta, Yadav and Pishe wherein set of keys. By doing so keys in a database can be discovered Sismanis [0006] Regarding claim 18 Brown in view of Gupta, Yadav, Pishe and Sismanis teaches the computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 of claim 16, Brown does not fully disclose wherein determining the set of disjointed data entries is performed using an algorithm having a linear time complexity. Pishe teaches wherein determining is performed using an algorithm having a linear time complexity (O(n) is also referred to as "linear time." An algorithm that runs in linear time means that for large enough input sizes, the running time increases linearly with the size of the input. An example of an algorithm that operates in linear time is an algorithm that finds the smallest or largest item in an unsorted list. [0070]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta, Yadav and Sismanis to incorporate the teachings of Pishe wherein determining occurrences of keys in the plurality of nodes is performed using an algorithm having a linear time complexity. By doing so as inputs grow large, the operations require to complete an instance of the algorithm having O(log n) complexity is quite lower than the operations required by an algorithm having O(n) complexity. Pishe [0070]. Sismanis teaches the set of disjointed data entries (distinct key [0150]) such as “disjointed keys”. It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta, Yadav and Pishe to incorporate the teachings of Sismanis wherein the set of disjointed data entries. By doing so keys in a database can be discovered Sismanis [0006] Regarding claim 19 Brown in view of Gupta, Pishe, Yadav and Sismanis teaches the computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 of claim 16, Brown does not fully disclose wherein determining the set of disjointed data entries is performed using a hashmap function. Pishe teaches wherein determining occurrences of keys (Each key may be associated with a linked list of key/value pairs. For example, key "O" may be associated with a linked list which includes key/value pair 504 [0072]) in the plurality of nodes (plurality of nodes [0085]) is performed using a hashmap function (The data structure 500 may be utilized with a hash function to distribute a number of key/value pairs over the buckets 502 in the data structure 500 [0073]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta, Yadav and Sismanis to incorporate the teachings of Pishe wherein determining occurrences of keys in the plurality of nodes is performed using a hashmap function. By doing so an average time complexity for a well-balanced hash map may be performed in constant time (0(1)) while a worse-case scenario including a unevenly balanced hash map may be performed in linear time (O(n)).Pishe [0073] Sismanis teaches the set of disjointed data entries (distinct key [0150]) such as “disjointed keys”. It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta, Yadav and Pishe to incorporate the teachings of Sismanis wherein the set of disjointed data entries. By doing so keys in a database can be discovered Sismanis [0006] Regarding claim 20 Brown in view of Gupta, Pishe, Yadav and Sismanis teaches the computing device (computing device [0038]) see e.g. Fig. 4 Master Client Node 406 of claim 16, Brown does not fully disclose wherein determining the set of disjointed data entries is performed by receiving key hashes from at least two nodes in the plurality of nodes. Pishe teaches wherein determining is performed by receiving key hashes (each key in table 510 may be hashed with the hash function to determine an appropriate bucket within the data structure 500. [0075]) from at least two nodes (one or more manager nodes, one or more worker nodes, [0021]) in the plurality of nodes. (plurality of nodes [0085]) It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta, Yadav and Sismanis to incorporate the teachings of Pishe wherein determining occurrences of keys is performed by receiving key hashes from at least two nodes in the plurality of nodes. By doing so If, for example, worker node 112 has available memory to store a key/value pair comprising the first key and index value, then the manager node 110 may select the worker node 112 as the destination of the hash map update request message. If the worker node 112 does not have available memory, the manager node 110 may select another worker nodes of the distributed computing system 108 that has available memory and direct the hash map update request message to the worker node with the available memory. Pishe [0089] Sismanis teaches the set of disjointed data entries (distinct key [0150]) such as “disjointed keys”. It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Brown in view of Gupta, Yadav and Pishe to incorporate the teachings of Sismanis wherein the set of disjointed data entries. By doing so keys in a database can be discovered Sismanis [0006] Conclusion 7. The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Jagota et al., (United States Patent Publication Number 20120317149) teaches “the graph of the network is traversed in stages, outward from the first node and outward from the second node, seeking common neighbors between them. At each stage, sets of neighbor nodes are compared; that is, the neighbor set for the first node is compared with the neighbor set for the second node. [0012]” 8. Any inquiry concerning this communication or earlier communications from the examiner should be directed to Kweku Halm whose telephone number is (469) 295- 9144. The examiner can normally be reached on 7:30AM - 5:30PM Mon - Thur. If attempts to reach the examiner by telephone are unsuccessful, the examiner's supervisor, Sanjiv Shah can be reached on (571) 272-4098. The fax phone number for the organization where this application or proceeding is assigned is 571-273- 8300. Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). /KWEKU HALM/Examiner, Art Unit 2166 /SANJIV SHAH/Supervisory Patent Examiner, Art Unit 2166
Read full office action

Prosecution Timeline

Feb 28, 2023
Application Filed
Jun 07, 2024
Non-Final Rejection — §103
Sep 12, 2024
Applicant Interview (Telephonic)
Sep 12, 2024
Examiner Interview Summary
Sep 17, 2024
Response Filed
Jan 25, 2025
Final Rejection — §103
Mar 21, 2025
Examiner Interview Summary
Mar 21, 2025
Applicant Interview (Telephonic)
Apr 30, 2025
Request for Continued Examination
May 08, 2025
Response after Non-Final Action
May 09, 2025
Non-Final Rejection — §103
Jul 15, 2025
Applicant Interview (Telephonic)
Jul 16, 2025
Examiner Interview Summary
Aug 15, 2025
Response Filed
Oct 28, 2025
Final Rejection — §103
Feb 02, 2026
Request for Continued Examination
Feb 09, 2026
Response after Non-Final Action
Mar 06, 2026
Non-Final Rejection — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12602572
COLLABORATIVE GENERATIVE ARTIFICIAL INTELLIGENCE CONTENT IDENTIFICATION AND VERIFICATION
2y 5m to grant Granted Apr 14, 2026
Patent 12596715
DATA QUERY METHOD AND APPARATUS, AND STORAGE MEDIUM
2y 5m to grant Granted Apr 07, 2026
Patent 12547641
ENTITY INTERACTION INSTANCES
2y 5m to grant Granted Feb 10, 2026
Patent 12530400
SYSTEMS AND METHODS FOR AUTOMATED DYNAMICALLY ORDERED PLAYLISTS
2y 5m to grant Granted Jan 20, 2026
Patent 12493711
DATA LOSS PREVENTION FRAMEWORK USING CLOUD INFRASTRUCTURE
2y 5m to grant Granted Dec 09, 2025
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

5-6
Expected OA Rounds
80%
Grant Probability
92%
With Interview (+12.1%)
2y 8m
Median Time to Grant
High
PTA Risk
Based on 249 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month