Prosecution Insights
Last updated: April 19, 2026
Application No. 18/192,661

Interwoven AMQ Data Structure

Final Rejection §103
Filed
Mar 30, 2023
Examiner
SHAH, VAISHALI
Art Unit
2156
Tech Center
2100 — Computer Architecture & Software
Assignee
Crowdstrike Inc.
OA Round
4 (Final)
57%
Grant Probability
Moderate
5-6
OA Rounds
3y 8m
To Grant
99%
With Interview

Examiner Intelligence

Grants 57% of resolved cases
57%
Career Allow Rate
128 granted / 224 resolved
+2.1% vs TC avg
Strong +57% interview lift
Without
With
+57.0%
Interview Lift
resolved cases with interview
Typical timeline
3y 8m
Avg Prosecution
27 currently pending
Career history
251
Total Applications
across all art units

Statute-Specific Performance

§101
18.7%
-21.3% vs TC avg
§103
55.0%
+15.0% vs TC avg
§102
3.7%
-36.3% vs TC avg
§112
16.0%
-24.0% vs TC avg
Black line = Tech Center average estimate • Based on career data from 224 resolved cases

Office Action

§103
DETAILED ACTION In response to communication filed on 12 December 2025, claims 1-8, 21-22 and 24-32 are amended. Claims 9-20 are canceled. Claims 1-8 and 21-32 are pending. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Response to Arguments Applicant’s arguments, see “Object to Claim 5” filed 12 December 2025, have been carefully considered. Based on the claim amendments, the claim objections have been withdrawn. Applicant’s arguments, see “Rejection of Claims 1, 4, 8, 21, 24, 28-29 & 31” filed 12 December 2025, have been carefully considered. The arguments are related to newly added claim limitations and are addressed in the rejection below. Election/Restrictions Claims 29-32 appear to be amended claims, however the claim language has been completely amended and are directed to an invention that is independent or distinct from the invention originally claimed for the following reasons: Claims 29-32, drawn to be more directed towards processing query parameters and assigning keys, whereas this functionality is not being performed in the claims 1-8 and 21-28 and as a result claims 29-32 are classified in G06F16/335, G06F16/3332 and G06F16/3334. Claims 1-8 and 21-28 are drawn to be more directed towards details of query data sets and as a result classified in G06F16/24. Since applicant has received an action on the merits for the originally presented invention, this invention has been constructively elected by original presentation for prosecution on the merits. Accordingly, claims 29-32 are withdrawn from consideration as being directed to a non-elected invention. See 37 CFR 1.142(b) and MPEP § 821.03. To preserve a right to petition, the reply to this action must distinctly and specifically point out supposed errors in the restriction requirement. Otherwise, the election shall be treated as a final election without traverse. Traversal must be timely. Failure to timely traverse the requirement will result in the loss of right to petition under 37 CFR 1.144. If claims are subsequently added, applicant must indicate which of the subsequently added claims are readable upon the elected invention. Should applicant traverse on the ground that the inventions are not patentably distinct, applicant should submit evidence or identify such evidence now of record showing the inventions to be obvious variants or clearly admit on the record that this is the case. In either instance, if the examiner finds one of the inventions unpatentable over the prior art, the evidence or admission may be used in a rejection under 35 U.S.C. 103 or pre-AIA 35 U.S.C. 103(a) of the other invention. Claim Interpretation Claim 2 recites “using a bitwise OR operation”. These claim limitations appear to be citing intended use in terms of what the bitwise OR operation is used for. Examiner suggests amending the claim to recite the functionality performed by the claimed method, instead of reciting what the claim elements are used for. Claim 22 recites “using the single AMQ data set”. These claim limitations appear to be citing intended use in terms of what the single AMQ data set is used for. Examiner suggests amending the claim to recite the functionality performed by the claimed method, instead of reciting what the claim elements are used for. Claim 25 recites “using the logical bitwise OR operation”. These claim limitations appear to be citing intended use in terms of what the logical bitwise OR operation is used for. Examiner suggests amending the claim to recite the functionality performed by the claimed method, instead of reciting what the claim elements are used for. Claim Rejections - 35 USC § 103 The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. Claims 1, 4, 5 and 8 are rejected under 35 U.S.C. 103 as being unpatentable over Heen et al. (US 2018/0121482 A1, hereinafter “Heen”) in view of Hagerup (US 11,030,174 B1, hereinafter “Hagerup”). Regarding claim 1, Heen teaches A method executed by a computer system, comprising: (see Heen, [0013] “Computationally less intensive methods for monitoring changes to a relationship graph, and systems that employ said methods, are provided herein. Approximate Membership Query (AMQ) Filters are used in conjunction with graph queries to a relational graph to provide change monitoring that span views associated with the queries”). receiving, by the computer system, AMQ information (see Heen, [0042] “An identifier received from the change stream is hashed, as though it were being added to the member set of the AMQ filter 140, to produce several positions in the array at which the corresponding node or index structures would be recorded”; [0015] “Each of the client device 110 and graph server 120 are illustrative of a multitude of computing systems”) different approximate membership query (AMQ) data sets; (see Heen, [0037] “The index structure of the view or subgraph spanned by the query in some aspects is recorded in association with the AMQ filter 140. The relational graph is spanned in a tree structure; a root node from which other leaf nodes depend is spanned outwardly from by the graph server 120 along the edges, which act as branches from one node to the next. The identifiers of each of the nodes in the view are collected according to the tree structure, and the structure collapsed… Recording the index structure allows for changes to the view to be tracked, such as, for example, the addition of a new node to the view, which was not part of the original member set of the AMQ filter 140, but potentially affects the view returned by the query”; [0042] “The change stream contains identifiers of the nodes or index structures affected by a change, and the AMQ filter 140 is queried to determine whether that identifier appears to be a member of the set recorded in the AMQ filter 140” – there are different data sets in form of graphs/subgraphs). generating, by the computer system, a single AMQ data set (see Heen, [0022] “the index structure of the nodes in the view is treated as a member of the AMQ filter's 140 member set or is stored separately… An index structure is constructed by concatenating the identifiers of the nodes in a flattened tree structure. In response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets… the identifiers of the nodes affected by a change are fed to the graph server 120 as a change stream, to compare against one or more AMQ filters 140”; [0015] “Each of the client device 110 and graph server 120 are illustrative of a multitude of computing systems”) that represents the different AMQ data sets… (see Heen, [0037] “The index structure of the view or subgraph spanned by the query in some aspects is recorded in association with the AMQ filter 140. The relational graph is spanned in a tree structure; a root node from which other leaf nodes depend is spanned outwardly from by the graph server 120 along the edges, which act as branches from one node to the next. The identifiers of each of the nodes in the view are collected according to the tree structure, and the structure collapsed… Recording the index structure allows for changes to the view to be tracked, such as, for example, the addition of a new node to the view, which was not part of the original member set of the AMQ filter 140, but potentially affects the view returned by the query”; [0042] “The change stream contains identifiers of the nodes or index structures affected by a change, and the AMQ filter 140 is queried to determine whether that identifier appears to be a member of the set recorded in the AMQ filter 140” – there are different data sets in form graphs/subgraphs) the different AMQ data sets; and (see Heen, [0037] “The index structure of the view or subgraph spanned by the query in some aspects is recorded in association with the AMQ filter 140. The relational graph is spanned in a tree structure; a root node from which other leaf nodes depend is spanned outwardly from by the graph server 120 along the edges, which act as branches from one node to the next. The identifiers of each of the nodes in the view are collected according to the tree structure, and the structure collapsed… Recording the index structure allows for changes to the view to be tracked, such as, for example, the addition of a new node to the view, which was not part of the original member set of the AMQ filter 140, but potentially affects the view returned by the query”; [0042] “The change stream contains identifiers of the nodes or index structures affected by a change, and the AMQ filter 140 is queried to determine whether that identifier appears to be a member of the set recorded in the AMQ filter 140” – there are different data sets in form graphs/subgraphs). storing, by the computer system, information (see Heen, [0057] “The system memory 304, the removable storage device 309, and the non-removable storage device 310 are all computer storage media examples (i.e., memory storage.)… can be used to store information and which can be accessed by the computing device 300”) the single AMQ data set (see Heen, [0022] “the index structure of the nodes in the view is treated as a member of the AMQ filter's 140 member set or is stored separately… An index structure is constructed by concatenating the identifiers of the nodes in a flattened tree structure. In response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets… the identifiers of the nodes affected by a change are fed to the graph server 120 as a change stream, to compare against one or more AMQ filters 140”) that represents the different AMQ data sets (see Heen, [0037] “The index structure of the view or subgraph spanned by the query in some aspects is recorded in association with the AMQ filter 140. The relational graph is spanned in a tree structure; a root node from which other leaf nodes depend is spanned outwardly from by the graph server 120 along the edges, which act as branches from one node to the next. The identifiers of each of the nodes in the view are collected according to the tree structure, and the structure collapsed… Recording the index structure allows for changes to the view to be tracked, such as, for example, the addition of a new node to the view, which was not part of the original member set of the AMQ filter 140, but potentially affects the view returned by the query”; [0042] “The change stream contains identifiers of the nodes or index structures affected by a change, and the AMQ filter 140 is queried to determine whether that identifier appears to be a member of the set recorded in the AMQ filter 140” – there are different data sets in form of graphs/subgraphs) in a memory device (see Heen, [0013] “the index structure for the view are added… querying the relational graph among other benefits provided by AMQ filters, including improved memory storage space requirements”; [0057] “The system memory 304, the removable storage device 309, and the non-removable storage device 310 are all computer storage media examples (i.e., memory storage.)… can be used to store information and which can be accessed by the computing device 300”). Heen does not explicitly teach by interweaving bits read from each bit position from within the different AMQ data sets. However, Hagerup discloses processing set of log data and teaches by interweaving bits read from each bit position from within data (see Hagerup, [col 10 lines 7-46] “for querying the index and determining a set of log data that are inclusive in a queried time range… a query request may include a first timestamp and a second timestamp… Once encoded, the bits of the first timestamp and the second timestamp may be combined or interweaved. Combining the bits of the first timestamp and second timestamp may, in some instances, simply mean concatenating the bits of the first timestamp and second timestamp together… combining the bits means taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp… the encoded start and end timestamps may be represented as an index value represented in bits such as "0" and "1"'s up to a maximum 48-bit value… however, different embodiments may have different lengths”; [col 21 lines 9-14] “a set having three members, the conjunctive phrases "at least one of A, B, and C" and "at least one of A, B and C" refer to any of the following sets: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}, and, if not contradicted explicitly or by context, any set having {A}, {B}, and/or {C} as a subset ( e.g., sets with multiple "A")”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of interwoven bit data being disclosed and taught by Hagerup, in the system taught by Heen to yield the predictable results of improving user experience (see Hagerup, [col 3 lines 39-57] “Based on this, techniques of the present disclosure provide for advantageous creation of an index and index values by interweaving the quantized start and end time trimmed… As a result of this processing, the computing resources to process searching and locating log data may also consequently be reduced and thereby create a more tailored search environment while also improving user experience”). Regarding claim 4, the proposed combination of Heen and Hagerup teaches further comprising reading the bits from the each bit position (see Hagerup, [col 10 lines 37-40] “taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp”) associated with each different AMQ data set of the different AMQ data sets (see Heen, [0013] “Each node from the relational graph spanned by a graph query and the index structure for the view are added as members to an AMQ filter”; [0036] “the identifiers for nodes connected by an edge to a node part of or considered as potentially part of the view, and/or an index structure are selected for membership in the AMQ filter 140. The selected identifiers are fed to each of the hash functions, which return a position in the membership array. The bit at each of the returned positions is set to indicate membership (e.g., setting the bit to one/TRUE), and any overlapping/repeated positions results in the bit remaining set to one/TRUE”). The motivation for the proposed combination is maintained. Regarding claim 5, the proposed combination of Heen and Hagerup teaches further comprising writing (see Heen, [0032] “an index structure is created”) the single AMQ data set (see Heen, [0022] “the index structure of the nodes in the view is treated as a member of the AMQ filter's 140 member set or is stored separately… An index structure is constructed by concatenating the identifiers of the nodes in a flattened tree structure. In response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets… the identifiers of the nodes affected by a change are fed to the graph server 120 as a change stream, to compare against one or more AMQ filters 140”). Regarding claim 8, the proposed combination of Heen and Hagerup teaches further comprising determining a membership associated with member set recorded (see Heen, [0028] “to determine whether a node is part of the member set recorded”; [0042] “the AMQ filter 140 is queried to determine whether that identifier appears to be a member of the set recorded in the AMQ filter 140”) the single AMQ data set (see Heen, [0022] “the index structure of the nodes in the view is treated as a member of the AMQ filter's 140 member set or is stored separately… An index structure is constructed by concatenating the identifiers of the nodes in a flattened tree structure. In response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets… the identifiers of the nodes affected by a change are fed to the graph server 120 as a change stream, to compare against one or more AMQ filters 140”). Claims 2-3, 6-7 and 21-28 are rejected under 35 U.S.C. 103 as being unpatentable over Heen in view of Hagerup further in view of Tan et al. (US 2017/0177302 A1, hereinafter “Tan”). Regarding claim 2, the proposed combination of Heen and Hagerup teaches wherein the generating of the single AMQ data set further comprises… (see Heen, [0022] “the index structure of the nodes in the view is treated as a member of the AMQ filter's 140 member set or is stored separately… An index structure is constructed by concatenating the identifiers of the nodes in a flattened tree structure. In response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets… the identifiers of the nodes affected by a change are fed to the graph server 120 as a change stream, to compare against one or more AMQ filters 140”) the bits read from the each bit position from within timestamp (see Hagerup, [col 10 lines 37-40] “taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp”) the different AMQ data sets (see Heen, [0037] “The index structure of the view or subgraph spanned by the query in some aspects is recorded in association with the AMQ filter 140. The relational graph is spanned in a tree structure; a root node from which other leaf nodes depend is spanned outwardly from by the graph server 120 along the edges, which act as branches from one node to the next. The identifiers of each of the nodes in the view are collected according to the tree structure, and the structure collapsed… Recording the index structure allows for changes to the view to be tracked, such as, for example, the addition of a new node to the view, which was not part of the original member set of the AMQ filter 140, but potentially affects the view returned by the query”; [0042] “The change stream contains identifiers of the nodes or index structures affected by a change, and the AMQ filter 140 is queried to determine whether that identifier appears to be a member of the set recorded in the AMQ filter 140” – there are different data sets in form of graphs/subgraphs). The proposed combination of Heen and Hagerup does not explicitly teach using a bitwise OR operation. However, Tan discloses data transformation and teaches using a bitwise OR operation on each bit position (see Tan, [0047] “performing a bit-wise exclusive-OR operation for each bit position of the array”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of bitwise OR operation as being disclosed and taught by Tan, in the system taught by the proposed combination of Heen and Hagerup to yield the predictable results of effectively transforming data (see Tan, [0064] “a captured data gathering module to interface with the plurality of data capture devices and to read data output from each of the plurality of data capture devices, the data output having a randonmess characteristic; a captured data aggregation module to combine the data output from at least two different data capture devices of the plurality of data capture devices to produce an aggregated output: and a transformation module to compute a transformation of the aggregated output to produce a distinctive value”). Regarding claim 3, the proposed combination of Heen and Hagerup teaches wherein the generating of the single AMQ data set further comprises… (see Heen, [0022] “the index structure of the nodes in the view is treated as a member of the AMQ filter's 140 member set or is stored separately… An index structure is constructed by concatenating the identifiers of the nodes in a flattened tree structure. In response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets… the identifiers of the nodes affected by a change are fed to the graph server 120 as a change stream, to compare against one or more AMQ filters 140”) the bits read from the each bit position (see Hagerup, [col 10 lines 37-40] “taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp”). The proposed combination of Heen and Hagerup does not explicitly teach collapsing the bits read. However, Tan discloses data transformation and teaches collapsing data items (see Tan, [0047] “for collapsing the large data item is performing a bit-wise exclusive-OR operation for each bit position of the array. The result is a single data item, M-bits wide, that is derived based on every bit of the captured data item”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of collapsing as being disclosed and taught by Tan, in the system taught by the proposed combination of Heen and Hagerup to yield the predictable results of effectively transforming data (see Tan, [0064] “a captured data gathering module to interface with the plurality of data capture devices and to read data output from each of the plurality of data capture devices, the data output having a randonmess characteristic; a captured data aggregation module to combine the data output from at least two different data capture devices of the plurality of data capture devices to produce an aggregated output: and a transformation module to compute a transformation of the aggregated output to produce a distinctive value”). Regarding claim 6, the proposed combination of Heen and Hagerup teaches wherein the generating of the single AMQ data set further comprises… (see Heen, [0022] “the index structure of the nodes in the view is treated as a member of the AMQ filter's 140 member set or is stored separately… An index structure is constructed by concatenating the identifiers of the nodes in a flattened tree structure. In response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets… the identifiers of the nodes affected by a change are fed to the graph server 120 as a change stream, to compare against one or more AMQ filters 140”) the bits read from the each bit position (see Hagerup, [col 10 lines 37-40] “taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp”). The proposed combination of Heen and Hagerup does not explicitly teach aggregating the bits read. However, Tan discloses data transformation and teaches aggregating data items (see Tan, [0047] “may be collapsed into a M-bit-wide representation suitable for use as a data item to be aggregated with other data items”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of aggregating data as being disclosed and taught by Tan, in the system taught by the proposed combination of Heen and Hagerup to yield the predictable results of effectively transforming data (see Tan, [0064] “a captured data gathering module to interface with the plurality of data capture devices and to read data output from each of the plurality of data capture devices, the data output having a randonmess characteristic; a captured data aggregation module to combine the data output from at least two different data capture devices of the plurality of data capture devices to produce an aggregated output: and a transformation module to compute a transformation of the aggregated output to produce a distinctive value”). Regarding claim 7, the proposed combination of Heen and Hagerup teaches wherein the generating of the single AMQ data set (see Heen, [0022] “the index structure of the nodes in the view is treated as a member of the AMQ filter's 140 member set or is stored separately… An index structure is constructed by concatenating the identifiers of the nodes in a flattened tree structure. In response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets… the identifiers of the nodes affected by a change are fed to the graph server 120 as a change stream, to compare against one or more AMQ filters 140”) interwoven composite (see Hagerup, [col 10 lines 7-46] “for querying the index and determining a set of log data that are inclusive in a queried time range… a query request may include a first timestamp and a second timestamp… Once encoded, the bits of the first timestamp and the second timestamp may be combined or interweaved. Combining the bits of the first timestamp and second timestamp may, in some instances, simply mean concatenating the bits of the first timestamp and second timestamp together… combining the bits means taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp… the encoded start and end timestamps may be represented as an index value represented in bits such as "0" and "1"'s up to a maximum 48-bit value… however, different embodiments may have different lengths”; [col 21 lines 9-14] “a set having three members, the conjunctive phrases "at least one of A, B, and C" and "at least one of A, B and C" refer to any of the following sets: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}, and, if not contradicted explicitly or by context, any set having {A}, {B}, and/or {C} as a subset ( e.g., sets with multiple "A")”) membership representation further comprises… (see Heen, [0037] “The index structure of the view or subgraph spanned by the query in some aspects is recorded in association with the AMQ filter 140. The relational graph is spanned in a tree structure; a root node from which other leaf nodes depend is spanned outwardly from by the graph server 120 along the edges, which act as branches from one node to the next. The identifiers of each of the nodes in the view are collected according to the tree structure, and the structure collapsed… Recording the index structure allows for changes to the view to be tracked, such as, for example, the addition of a new node to the view, which was not part of the original member set of the AMQ filter 140, but potentially affects the view returned by the query”; [0042] “The change stream contains identifiers of the nodes or index structures affected by a change, and the AMQ filter 140 is queried to determine whether that identifier appears to be a member of the set recorded in the AMQ filter 140” – there are different data sets in form of graphs/subgraphs”) the bits read from the each bit position (see Hagerup, [col 10 lines 37-40] “taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp”). The proposed combination of Heen and Hagerup does not explicitly teach co-locating the bits read. However, Tan discloses data transformation and teaches co-locating the bitmap (see Tan, [0047] “the bitmap may be stored as an array in M-bit-wide memory registers spanning a large number of memory addresses” – storing as an array has been interpreted as co-locating). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of co-locating information as being disclosed and taught by Tan, in the system taught by the proposed combination of Heen and Hagerup to yield the predictable results of effectively transforming data (see Tan, [0064] “a captured data gathering module to interface with the plurality of data capture devices and to read data output from each of the plurality of data capture devices, the data output having a randonmess characteristic; a captured data aggregation module to combine the data output from at least two different data capture devices of the plurality of data capture devices to produce an aggregated output: and a transformation module to compute a transformation of the aggregated output to produce a distinctive value”). Regarding claim 21, Heen teaches At least one computer system that (see Heen, [0013] “Computationally less intensive methods for monitoring changes to a relationship graph, and systems that employ said methods, are provided herein”) generates a single approximate membership query (AMQ) data set, comprising: (see Heen, [0022] “the index structure of the nodes in the view is treated as a member of the AMQ filter's 140 member set or is stored separately… An index structure is constructed by concatenating the identifiers of the nodes in a flattened tree structure. In response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets… the identifiers of the nodes affected by a change are fed to the graph server 120 as a change stream, to compare against one or more AMQ filters 140”; [0015] “Each of the client device 110 and graph server 120 are illustrative of a multitude of computing systems”). at least one central processing unit; and (see Heen, [0054] “the computing device 300 includes at least one processing unit 302”). at least one memory device storing instructions that, when executed by the at least one central processing unit, perform operations, the operations comprising: (see Heen, [0057] “Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, or program modules”; [claim 12] “a processor; and a memory storage device, including instructions that when executed are operable to”; [0031] “Method 200 begins at OPERATION 210”). receiving AMQ information (see Heen, [0042] “An identifier received from the change stream is hashed, as though it were being added to the member set of the AMQ filter 140, to produce several positions in the array at which the corresponding node or index structures would be recorded”) multiple AMQ data sets; (see Heen, [0021] “maintains one or more AMQ filters 140 (Approximate Membership Query filters)”; [0022] “response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets” – there are plurality of member sets). … within each AMQ dataset of the multiple AMQ data sets; (see Heen, [0013] “Each node from the relational graph spanned by a graph query and the index structure for the view are added as members to an AMQ filter”; [0036] “the identifiers for nodes connected by an edge to a node part of or considered as potentially part of the view, and/or an index structure are selected for membership in the AMQ filter 140. The selected identifiers are fed to each of the hash functions, which return a position in the membership array. The bit at each of the returned positions is set to indicate membership (e.g., setting the bit to one/TRUE), and any overlapping/repeated positions results in the bit remaining set to one/TRUE”). generating the single AMQ data set (see Heen, [0022] “the index structure of the nodes in the view is treated as a member of the AMQ filter's 140 member set or is stored separately… An index structure is constructed by concatenating the identifiers of the nodes in a flattened tree structure. In response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets… the identifiers of the nodes affected by a change are fed to the graph server 120 as a change stream, to compare against one or more AMQ filters 140”) that represents the multiple AMQ data sets (see Heen, [0021] “maintains one or more AMQ filters 140 (Approximate Membership Query filters)”; [0022] “response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets” – there are plurality of member sets) by conducting a logical bitwise… (see Heen, [0028] “are bitwise-logically examined against the array”) within the each AMQ dataset of the multiple AMQ data sets; and (see Heen, [0013] “Each node from the relational graph spanned by a graph query and the index structure for the view are added as members to an AMQ filter”; [0036] “the identifiers for nodes connected by an edge to a node part of or considered as potentially part of the view, and/or an index structure are selected for membership in the AMQ filter 140. The selected identifiers are fed to each of the hash functions, which return a position in the membership array. The bit at each of the returned positions is set to indicate membership (e.g., setting the bit to one/TRUE), and any overlapping/repeated positions results in the bit remaining set to one/TRUE”). storing information (see Heen, [0057] “The system memory 304, the removable storage device 309, and the non-removable storage device 310 are all computer storage media examples (i.e., memory storage.)… can be used to store information and which can be accessed by the computing device 300”) the single AMQ data set… (see Heen, [0022] “the index structure of the nodes in the view is treated as a member of the AMQ filter's 140 member set or is stored separately… An index structure is constructed by concatenating the identifiers of the nodes in a flattened tree structure. In response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets… the identifiers of the nodes affected by a change are fed to the graph server 120 as a change stream, to compare against one or more AMQ filters 140”) the multiple AMQ data sets (see Heen, [0021] “maintains one or more AMQ filters 140 (Approximate Membership Query filters)”; [0022] “response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets” – there are plurality of member sets). Heen does not explicitly teach reading bits at each bit position from within each AMQ dataset; logical bitwise OR operation on the bits read at the each bit position from within the each AMQ dataset; as a bit level blend of the multiple AMQ data sets. However, Hagerup discloses processing set of log data and teaches reading bits at each bit position from timestamp (see Hagerup, [col 10 lines 37-40] “taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp”). … the bits read at the each bit position from timestamp (see Hagerup, [col 10 lines 37-40] “taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp”). … as a bit level blend of data (see Hagerup, [col 9 lines 42-65] “beginning timestamp and the encoded end timestamp are interwoven, the resulting interwoven encoded bits may then be translated or mapped… the padded index value may then be stored or added in a B-Tree in connection with a storage device provided by the computing resource service provider”; [col 10 lines 7-46] “for querying the index and determining a set of log data that are inclusive in a queried time range… a query request may include a first timestamp and a second timestamp… Once encoded, the bits of the first timestamp and the second timestamp may be combined or interweaved. Combining the bits of the first timestamp and second timestamp may, in some instances, simply mean concatenating the bits of the first timestamp and second timestamp together… combining the bits means taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp… different embodiments may have different lengths”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of bits read at each position and bit level blend being disclosed and taught by Hagerup, in the system taught by Heen to yield the predictable results of improving user experience (see Hagerup, [col 3 lines 39-57] “Based on this, techniques of the present disclosure provide for advantageous creation of an index and index values by interweaving the quantized start and end time trimmed… As a result of this processing, the computing resources to process searching and locating log data may also consequently be reduced and thereby create a more tailored search environment while also improving user experience”). The proposed combination of Heen and Hagerup does not explicitly teach logical bitwise OR operation on the bits read at the each bit position. However, Tan discloses data transformation and teaches OR operation on each position (see Tan, [0047] “performing a bit-wise exclusive-OR operation for each bit position of the array”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of OR operation, co-locating and collapsing information as being disclosed and taught by Tan, in the system taught by the proposed combination of Heen and Hagerup to yield the predictable results of effectively transforming data (see Tan, [0064] “a captured data gathering module to interface with the plurality of data capture devices and to read data output from each of the plurality of data capture devices, the data output having a randonmess characteristic; a captured data aggregation module to combine the data output from at least two different data capture devices of the plurality of data capture devices to produce an aggregated output: and a transformation module to compute a transformation of the aggregated output to produce a distinctive value”). Regarding claim 22, the proposed combination of Heen, Hagerup and Tan teaches wherein the operations further comprise conducting a single membership test (see Heen, [0026] “a structure to test whether node is a candidate member of a set”) of the multiple AMQ data sets (see Heen, [0021] “maintains one or more AMQ filters 140 (Approximate Membership Query filters)”; [0022] “response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets” – there are plurality of member sets) by using the single AMQ data set (see Heen, [0022] “the index structure of the nodes in the view is treated as a member of the AMQ filter's 140 member set or is stored separately… An index structure is constructed by concatenating the identifiers of the nodes in a flattened tree structure. In response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets… the identifiers of the nodes affected by a change are fed to the graph server 120 as a change stream, to compare against one or more AMQ filters 140”) as the bit level blend of data (see Hagerup, [col 9 lines 42-65] “beginning timestamp and the encoded end timestamp are interwoven, the resulting interwoven encoded bits may then be translated or mapped… the padded index value may then be stored or added in a B-Tree in connection with a storage device provided by the computing resource service provider”; [col 10 lines 7-46] “for querying the index and determining a set of log data that are inclusive in a queried time range… a query request may include a first timestamp and a second timestamp… Once encoded, the bits of the first timestamp and the second timestamp may be combined or interweaved. Combining the bits of the first timestamp and second timestamp may, in some instances, simply mean concatenating the bits of the first timestamp and second timestamp together… combining the bits means taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp… different embodiments may have different lengths”) the multiple AMQ datasets (see Heen, [0021] “maintains one or more AMQ filters 140 (Approximate Membership Query filters)”; [0022] “response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets” – there are plurality of member sets). The motivation for the proposed combination is maintained. Regarding claim 23, the proposed combination of Heen, Hagerup and Tan teaches wherein the operations further comprise (see Heen, [0031] “Method 200 begins at OPERATION 210”) collapsing (see Tan, [0047] “for collapsing the large data item is performing a bit-wise exclusive-OR operation for each bit position of the array. The result is a single data item, M-bits wide, that is derived based on every bit of the captured data item”) the bits read at the each bit position (see Hagerup, [col 10 lines 37-40] “taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp”). The motivation for the proposed combination is maintained. Regarding claim 24, the proposed combination of Heen, Hagerup and Tan teaches wherein the operations further comprise (see Heen, [0031] “Method 200 begins at OPERATION 210”) reducing a byte size (see Heen, [0033] “a reduced size version of the queried relational graph”) associated with the multiple AMQ data sets (see Heen, [0021] “maintains one or more AMQ filters 140 (Approximate Membership Query filters)”; [0022] “response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets” – there are plurality of member sets). The motivation for the proposed combination is maintained. Regarding claim 25, the proposed combination of Heen, Hagerup and Tan teaches wherein the operations further comprise (see Heen, [0031] “Method 200 begins at OPERATION 210”) collapsing the bits (see Tan, [0047] “for collapsing the large data item is performing a bit-wise exclusive-OR operation for each bit position of the array. The result is a single data item, M-bits wide, that is derived based on every bit of the captured data item”) associated with the multiple AMQ data sets (see Heen, [0021] “maintains one or more AMQ filters 140 (Approximate Membership Query filters)”; [0022] “response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets” – there are plurality of member sets) according to the bit positions (see Hagerup, [col 10 lines 37-40] “taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp”) using the logical bitwise (see Heen, [0028] “are bitwise-logically examined against the array”) OR operation (see Tan, [0047] “performing a bit-wise exclusive-OR operation for each bit position of the array”). The motivation for the proposed combination is maintained. Regarding claim 26, the proposed combination of Heen, Hagerup and Tan teaches wherein the operations further comprise (see Heen, [0031] “Method 200 begins at OPERATION 210”) aggregating (see Tan, [0047] “may be collapsed into a M-bit-wide representation suitable for use as a data item to be aggregated with other data items”) the bits read at the each bit position (see Hagerup, [col 10 lines 37-40] “taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp”). The motivation for the proposed combination is maintained. Regarding claim 27, the proposed combination of Heen, Hagerup and Tan teaches wherein the operations further comprise (see Heen, [0031] “Method 200 begins at OPERATION 210”) co-locating (see Tan, [0047] “the bitmap may be stored as an array in M-bit-wide memory registers spanning a large number of memory addresses” – storing as an array has been interpreted as co-locating) the bits read at the each bit position (see Hagerup, [col 10 lines 37-40] “taking a first bit in the first position of the first timestamp, then adding the first bit in the first position of the second timestamp, then adding the second bit in the second position of the first timestamp”). The motivation for the proposed combination is maintained. Regarding claim 28, the proposed combination of Heen, Hagerup and Tan teaches wherein the operations further comprise (see Heen, [0031] “Method 200 begins at OPERATION 210”) determining a membership associated with the single AMQ data set (see Heen, [0022] “the index structure of the nodes in the view is treated as a member of the AMQ filter's 140 member set or is stored separately… An index structure is constructed by concatenating the identifiers of the nodes in a flattened tree structure. In response to a node being updated, added, or removed in the graph database 130, the graph server 120 is operable to query one or more AMQ filters 140 to determine whether the affected node is part of those AMQ filters' 140 member sets… the identifiers of the nodes affected by a change are fed to the graph server 120 as a change stream, to compare against one or more AMQ filters 140”). 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 VAISHALI SHAH whose telephone number is (571)272-8532. The examiner can normally be reached Monday - Friday (7:30 AM to 4:00 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, AJAY BHATIA can be reached at (571)272-3906. 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. /VAISHALI SHAH/Primary Examiner, Art Unit 2156
Read full office action

Prosecution Timeline

Mar 30, 2023
Application Filed
Jul 26, 2024
Non-Final Rejection — §103
Sep 10, 2024
Examiner Interview Summary
Sep 10, 2024
Applicant Interview (Telephonic)
Oct 25, 2024
Response Filed
Dec 19, 2024
Final Rejection — §103
Jan 21, 2025
Examiner Interview Summary
Jan 21, 2025
Applicant Interview (Telephonic)
Feb 21, 2025
Response after Non-Final Action
Mar 24, 2025
Request for Continued Examination
Mar 28, 2025
Response after Non-Final Action
Sep 11, 2025
Non-Final Rejection — §103
Oct 23, 2025
Examiner Interview Summary
Oct 23, 2025
Applicant Interview (Telephonic)
Dec 12, 2025
Response Filed
Feb 16, 2026
Final Rejection — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12596730
SYSTEM TO ASSIST USERS OF A SOFTWARE APPLICATION
2y 5m to grant Granted Apr 07, 2026
Patent 12585682
METHOD AND SYSTEM FOR GENERATING LONGFORM TECHNICAL QUESTION AND ANSWER DATASET
2y 5m to grant Granted Mar 24, 2026
Patent 12579193
SELF-DISCOVERY AND CONSTRUCTION OF TYPE-SENSITIVE COLUMNAR FORMATS ON TYPE-AGNOSTIC STORAGE SERVERS TO ACCELERATE OFFLOADED QUERIES
2y 5m to grant Granted Mar 17, 2026
Patent 12579199
SYSTEMS AND METHODS FOR TRACKING DOCUMENT REUSE AND AUTOMATICALLY UPDATING DOCUMENT FRAGMENTS ACROSS ONE OR MORE PLATFORMS
2y 5m to grant Granted Mar 17, 2026
Patent 12572604
VEHICLE DATA COLLECTION SYSTEM AND METHOD INCLUDING RELIABILITY INFORMATION FOR A STORAGE UNIT FOR STORING PARTIAL LOG DATA
2y 5m to grant Granted Mar 10, 2026
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
57%
Grant Probability
99%
With Interview (+57.0%)
3y 8m
Median Time to Grant
High
PTA Risk
Based on 224 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