DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA and is in response to communications filed on 7/30/2026 in which claims 1-20 are presented for examination.
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 of this title, 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-2, 5, 7-10, 12-13, 16, and 18-20 are rejected under 35 U.S.C. 103 as being unpatentable over Chishti et al. US 20200226124 A1 (hereinafter referred to as “Chishti”) in view of Kafai et al. US 20170316081 A1 (hereinafter referred to as “Kafai”) and further in view of Sen et al. US 20220414156 A1 (hereinafter referred to as “Sen”).
As per claim 1, Chishti teaches:
A computing system, comprising:
processing circuitry and memory storing instructions that, when executed, cause the processing circuitry to implement a hybrid graph clustering service configured to:
receive transaction updates from a graph update client, each transaction update indicating a change in state of a subgraph of a graph (Chishti, [00202] – As yet another example, if the vertices of the streaming graph represent merchants and consumers partaking in credit card transactions, the edge source(s) 220 can correspond to one or more credit reporting agency servers that track the credit card transactions between the merchants and consumers),
wherein the graph is a streaming graph that includes a plurality of nodes and a plurality of edges, each of the plurality of nodes representing an entity in a network (Chishti, [0022] – A fraud detection engine and the vertices of the streaming graph correspond to consumers and merchants, the updated vertex values 125 can be a fraudulent transaction probability, a malicious entity probability, etc. [0027] – The terms vertex and node are equivalent and can be used interchangeably);
for each of the transaction updates:
send the transaction update to a full clustering queue (Chishti, Fig. 1 item 130 shows a full clustering queue with update batches 110 and compute functions 115 in between. [0026] and fig. 4 also explicitly mentions a “Global Queue”);
perform subgraph clustering on the subgraph of the graph based on the transaction update, to thereby assign partial-clustering-updated community IDs to each node in the subgraph (Chishti, [0022] – The graph updater 215 can be structured to compute (e.g., with the compute operation 110) any number(s) and/or types of vertex values 125 for each vertex (or some subset of one or more vertices) of the streaming graph, wherein a subset of vertices is interpreted as a subgraph. [0025] – The thread scheduler 310 of the illustrated example assigns (or, in other words, schedules) one or more execution threads to implement the processing of the graph updater 215 (e.g., to implement the update operation 110 and the compute operation 115) on corresponding groups of one or more edges in the output batch of edges 325 (which may be reordered or not based on one or more criteria, as described in further detail below). For example, the thread scheduler 310 may assign edges of the batch of edges 315 successively to respective edge groups each containing up to a threshold number of edges (e.g., 4 edges, 400, edges, 4000 edges, etc.), and further assign the respective edge groups to corresponding execution threads, wherein edge groups are interpreted as community IDs);
Chishti doesn’t explicitly teach generating a list of community IDs, however, Kafai teaches:
update a community list with the partial-clustering-updated community IDs for each node in the subgraph, wherein the community list includes each respective node and an associated community ID of a community to which the respective node was assigned by a clustering operation (Kafai, [0026] – Based on feedback from the stream analyzer 320, the data structure updater 310 may add a new node and corresponding edges to a nearest neighbor graph, add new members to a cluster list, include the classification results in the classification data structure, etc., wherein the cluster list is interpreted as a list of community IDs); and
output the updated community list including the partial-clustering-updated community IDs (Kafai, fig. 4 – Classification data structure 406. [0018] – The user interface 140 may include a graphical user interface (GUI) to provide a visual presentation of a data structures representative of the stream analytics herein [0026] – Stream analyzer 320 may analyze corresponding data structure to output results (e.g., to the user interface 140). For example, using the video stream example, the stream analyzer 320 may identify each and every individual in view of a camera at a given moment, classify individuals into a subclass (e.g., male or female), identify a number of unique individuals (e.g., clustering or person count), reidentification by matching individuals recognized from different cameras and/or at different times/locations, and hubness analysis to identify hub data objects and perform hubness reduction for the video stream);
update the community list with the full-clustering-updated community IDs for each node in the graph (Kafai, [0026] – Based on feedback from the stream analyzer 320, the data structure updater 310 may add a new node and corresponding edges to a nearest neighbor graph, add new members to a cluster list, include the classification results in the classification data structure, etc.).
It would have been obvious for one of ordinary skill in the art prior to the effective filing date of the claimed invention to modify Chishti’s invention in view of Kafai in order to include a classification of the new data into a particular class; this is advantageous because clustering of data is advantageous for grouping similar items for data collection and management (Kafai, column 29, lines 44-49).
Chishti as modified with Kafai doesn’t explicitly teach a copy of the graph, however, Sen teaches:
perform full-graph clustering on all nodes of a graph copy based on the transaction updates in the full clustering queue, to thereby generate full-clustering-updated community IDs for each node in the graph and wherein the graph copy is a copy of the graph (Sen, [0045] – A data service D.sub.n 142 may be a data center, a cluster, a group of clusters, or a machine. A data service D.sub.n 142 may store a complete copy of graph database 130 or only one or more portions of graph database); and
It would have been obvious for one of ordinary skill in the art prior to the effective filing date of the claimed invention to modify Chishti’s invention as modified in view of Shrivastava in order to include graph copies; this is advantageous because it allows another version of the graph to be modified freely without losing the source, and this is a common practice in versioning (Sen, paragraph [0046]).
As per claim 2, Chishti as modified teaches:
The computing system of claim 1, wherein the processing circuitry is further configured to initialize the hybrid graph clustering service at least in part by:
reading the graph from a distributed file system (Sen, [0038] - computing system 100 includes … a distributed data service. [0065] – File management); and
performing the clustering operation on the graph to thereby generate the community list (Kafai, [0024] – The stream analytics manager 240 may perform incremental clustering).
As per claim 5, Chishti as modified teaches:
The computing system of claim 1, wherein the subgraph clustering and the full-graph clustering are performed concurrently (Chishti, [0029] – Due to the random order of edges originating from the same vertex in an update batch, it is possible that when executed in parallel (e.g., such as with OpenMP®), multiple threads are assigned the task of updating the edges for the same vertex).
As per claim 7, Chishti as modified teaches:
The computing system of claim 1, wherein each node is mapped to a respective memory container and when the transaction update indicates adding new nodes to the graph, the new nodes are mapped to the memory containers whose respective nodes have been deleted (Sen, [0028] – An image may be modified by writing a new graph primitive to the graph database and then rebuilding the image, wherein modification of data in this way is interpreted as mapping memory into a container that previously contained existing data).
As per claim 8, Chishti as modified teaches:
The computing system of claim 1, wherein the graph and the community list are periodically written to the distributed file system (Chishti, [0038] – The graph update analyzer 315 monitors (e.g., periodically, based on one or more events, etc.) incoming batches of edges and adaptively decides whether to reorder the batches).
As per claim 9, Chishti as modified teaches:
The computing system of claim 1, wherein the processing circuitry is further configured to transition from a first graph clustering service to a second graph clustering service, at least in part by:
initializing the second graph clustering service using graph metadata loaded from a checkpoint file (Sen, [0041] – Data is ingested into graph database 130 and stored in a graph 132. Graph 132 includes a client C.sub.i sub-graph 136 for each client C.sub.i of a number of clients of graph database 130. Client C.sub.i sub-graph 136 contains a client C.sub.i ingestion configuration metadata 134);
sending to a queue the transaction updates received from the graph update client during initialization of the second graph clustering service (Sen, [0025] – An ingestion configuration establishes the ingestion pipeline and defines the manner in which the ingestion pipeline is to operate);
updating the second graph clustering service with the transaction updates in the queue (Sen, [0025] – A loading or updating of data from one or more source of truth data sources into a portion of a graph database may be referred to as an ingestion. Data can be consumed by or updated in a distributed graph database by establishing an ingestion pipeline between a machine, cluster, or data center on which at least a portion of the graph database resides and the source of truth data sources); and
starting the second graph clustering service and turning off the first graph clustering service (Sen, [0023] – Additionally, different clusters or machines may have different deployment schedules, so to avoid errors, propagation of deployment schedule changes requires detailed and complete knowledge of all of the machines or clusters to which the changes apply or do not apply).
As per claim 10, Chishti teaches:
The computing system of claim 1, wherein the processing circuitry is further configured to perform a runtime graph query on the updated community list to thereby compute a graph query result and output the graph query result (Chishti, [0038] – A runtime approach can be beneficial because, for streaming graphs, it may not be possible to have knowledge of the entire graph in advance).
Claims 12-13, 16, and 18-19 are directed to a method performing steps recited in claims 1-2, 5, 7-10 with substantially the same limitations. Therefore, the rejections made to claims 1-2, 5, 7-10 are applied to claims 12-13, 16, and 18-19.
Claim 20 is directed to a system performing steps recited in claim 5 with substantially the same limitations. Therefore, the rejection made to claim 5 is applied to claim 20.
Claims 3-4, and 14-15 are rejected under 35 U.S.C. 103 as being unpatentable over Chishti in view of Kafai in view of Sen and further in view of Fedoryszak et al. US 20200250249 A1 (hereinafter referred to as “Fedoryszak”).
As per claim 3, Chishti as modified doesn’t teach a Louvain community detection algorithm, however, Fedoryszak teaches:
The computing system of claim 1, wherein the subgraph clustering comprises updating the nodes and the edges of the subgraph of the graph based on the transaction update and computing the partial-clustering-updated community IDs based on the subgraph of the graph using a Louvain community detection algorithm (Fedoryszak, [0014] – Where the clustering algorithm includes a Louvain algorithm).
It would have been obvious for one of ordinary skill in the art prior to the effective filing date of the claimed invention to modify Chishti’s invention as modified in view of Fedoryszak in order to include graph copies; this is advantageous because it allows the system to compute similarity of entities (Fedoryszak, paragraph [0014]).
As per claim 4, Chishti as modified with Fedoryszak teaches:
The computing system of claim 1, wherein the full-graph clustering comprises performing a batched update of the nodes and the edges of the graph copy based on the transaction updates of the full clustering queue and computing the full-clustering-updated community IDs based on the graph copy using the Louvain community detection algorithm (Fedoryszak, [0014] – partition the filtered similarity graph according to a clustering algorithm to detect the first cluster group, where the clustering algorithm includes a Louvain algorithm).
Claims 14-15 are directed to a method performing steps recited in claims 3-4 with substantially the same limitations. Therefore, the rejections made to claims 3-4 are applied to claims 14-15.
Claims 6 and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Chishti in view of Kafai in view of Sen and further in view of Mermoud et al. US 20210303598 A1 (hereinafter referred to as “Mermoud”).
As per claim 6, Chishti as modified doesn’t go into detail about time or expiration of data, however, Mermoud teaches:
The computing system of claim 1, wherein each node has a timer or counter that initializes when the node is updated, and after a preset time or count has elapsed, the node is marked for deletion (Mermoud, [0083] – As certain device attributes disappear from observation, it may also be possible for CLB 602 to prune their corresponding nodes from the concept graph/lattice. In one embodiment this can be achieved by CLB 602 simply tracking the last time a certain value had been recorded or observed, comparing that value to an expiration threshold, and removing the corresponding node(s) from the graph).
It would have been obvious for one of ordinary skill in the art prior to the effective filing date of the claimed invention to modify Chishti’s invention as modified in view of Mermoud in order to include an expiration threshold; this is advantageous because it allows the system to clean up old data to maintain relevance (Mermoud, paragraph [0083]).
Claim 17 is directed to a method performing steps recited in claim 6 with substantially the same limitations. Therefore, the rejection made to claim 6 is applied to claim 17.
Claim 11 is rejected under 35 U.S.C. 103 as being unpatentable over Chishti in view of Kafai in view of Sen and further in view of Puzic et al. US 20240232394 A1 (hereinafter referred to as “Puzic”).
As per claim 11, Chishti as modified doesn’t explicitly teach a risk query, however, Puzic teaches:
The computing system of claim 10, wherein the runtime graph query is a risk query (Puzic, [0059] – Temporarily storing the retrieved user information assets associated with the user identification in the miscellaneous database 136 may allow retrieval of such data in view of a subsequent identity risk query), and the processing circuitry is further configured to:
block a requested action by a user based on the graph query result for the risk query (Puzic, [0068] – The local server 152 may block access to the user account whenever the user of the user account attempts to access the user account and during the attempt to access the user account or some other security action that would be apparent to one of skill in the art in possession of the present disclosure).
It would have been obvious for one of ordinary skill in the art prior to the effective filing date of the claimed invention to modify Chishti’s invention as modified in view of Puzic in order to identify a risk query; this is advantageous because this may result in providing the retrieved user information assets or an identity risk score generated from the retrieved user information assets to a recipient (for example, the local server 152 or any other external computer system) sooner so that the recipient may act on such user information assets in a quicker manner, thereby preventing account takeover sooner than later (Puzic, paragraph [0046]).
Response to Arguments
Rejection of claims under 112(b) is withdrawn due to Applicant’s amendments made to the claims.
Applicant’s other arguments filed 7/30/2026 have been fully considered but they are not persuasive. Applicant’s arguments begin on page 9 of Remarks where there are a total of 1 specific arguments. Each specific argument is addressed below.
Argument: Applicant argues in Remarks beginning on page 9 that the prior art of record doesn’t adequately teach partial and full graph operations such as clustering and updating. Specifically, Chisti doesn’t make a distinction between subgraph updates and full-graph update operations.
In Response: Further search and consideration of Chisti shows in [0022] – The graph updater 215 can be structured to compute (e.g., with the compute operation 110) any number(s) and/or types of vertex values 125 for each vertex (or some subset of one or more vertices) of the streaming graph. However, even if there wasn’t a clear distinction, if multiple updates can occur in a graph, then a spectrum of updates can occur throughout the graph whether that’s full or partial. In other words, it’s inherent that if multiple items can be updated within a set of items, then all of the items can be updated unless explicitly prevented for some reason. The only other way this could be distinct from a spectrum of updates is the queue limitation for grouping updates. However, Chisti teaches batches of updates as well as a queue in which edges are buffered. Specification [0002], [0011]-[0012] describe these terms where it uses the term “batch” for updating the items in the graph. Therefore, based on a broadest reasonable interpretation in view of the specification, Chisti as modified teaches the limitations of the claims.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure:
Kim et al., “TurboFlux: a Fast Continuous Subgraph Matching System for Streaming Graph Data”, SIGMOD 2018, DOI: https://doi.org/10.1145/3183713.3196917, dated Jun. 2018.
Chawla et al. US 20150356626 A1 teaches processing streams of data from a plurality of data sources, and processing the streams of data from the plurality of data sources includes performing data enriching and generating a sub-graph for incorporation into a cognitive graph (Abstract).
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). 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.
Contact Information
Any inquiry concerning this communication or earlier communications from the examiner should be directed to the current examiner working on this case, name: Matthew Ellis, telephone number: (571)270-3443, email: matthew.ellis@uspto.gov, normal business hours Monday-Friday 8AM-5PM EST.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Kavita Stanley can be reached on (571) 272-8352. 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). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
October 6, 2026
/MATTHEW J ELLIS/Primary Examiner, Art Unit 2153