DETAILED ACTION
This is in response to the application filed on 03/05/2025.
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claims 21-40 have been examined and are pending. Claims 1-20 were canceled.
Priority
Priority claims to parent application 16/929,033 filed on 07/14/2020, which is a continuation-in-part of application 16/352,571 filed on 03/13/2019, is acknowledged.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 21-25 and 31-35 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1, 11 and 16 of U.S. Patent No. 12,282,498 B2 in view of Borthwick (US 11,514,054 B1). It would have been obvious to one of ordinary skill in the art to incorporate the teachings of Borthwick and enable partitioning records into groups based on computational processing capacity of store, modifying groups in response to determining performance of store is affected by parallel lookups, as further discussed in the USC 103 section below.
Claims 30 and 40 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 2 and 17 of U.S. Patent No. 12,282,498 B2 in view of Borthwick (US 11,514,054 B1). It would have been obvious to one of ordinary skill in the art to incorporate the teachings of Borthwick and enable partitioning records into groups based on computational processing capacity of store, modifying groups in response to determining performance of store is affected by parallel lookups, as further discussed in the USC 103 section below.
Specification
Applicant is reminded of the proper language and format for an abstract of the disclosure. The abstract should be in narrative form and describe the disclosure sufficiently to assist readers in deciding whether there is a need for consulting the full patent text for details. The abstract of this disclosure is objected to because it is essentially a replica of the parent application’s abstract and doesn’t describe any of the new features described in the current claims.
Correction is required. See MPEP § 608.01(b).
The lengthy specification has not been checked to the extent necessary to determine the presence of all possible minor errors. Applicant’s cooperation is requested in correcting any errors of which applicant may become aware in the specification.
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 21-24, 26, 28-34, 36 and 38-40 are rejected under 35 U.S.C. 103 as being unpatentable over Bagherjeiran (US 2010/0083194 A1, in IDS filed 06/04/2025) in view of Borthwick (US 11,514,054 B1).
Regarding claim 21,
Bagherjeiran teaches A computer-implemented method comprising: accessing a database of records, the database including a plurality of records represented by a plurality of nodes in a graph model, a connection between a first node and a second node in the graph model representing an association between a first record represented by the first node and a second record represented by the second node; *see paras29-30(“...social network of instant messaging users may be represented by an undirected graph of connected components...graph may model on the order of a billion communications between... users...social network may be represented by a graph, G=(V,E), of weakly connected components [‘graph model/database of records’]. A weakly connected component (WCC) is a maximal subgraph of a directed graph such that for every pair of vertices (v,v') in the subgraph, there is an undirected path from v to v'”), paras32-33(“step 302, a collection of edges may be received for unique vertices [‘connection between nodes’]...each edge in a collection of edges may represent a communication between two users [‘association between records’]”),paras34-36
partitioning the plurality of records into a plurality of groups, … *see paras29-31(“...set of WCCs partition the set of vertices into disjoint subsets... distribute the edge set (v,v`)€ E to m mappers, where each mapper mi, operates on some subset Ei € E...”), para32(“At step 304, the collection of edges may be distributed [‘partitioning’] to mappers that identify sets of edges for each vertex representing subgraphs [‘groups’] of connected components. For the graph G=(V,E) where G={g1, g2 . . . .gm}, subsets of edges denoted by gi=(vi,ei) may be distributed to m mappers...”; “subset Ei” and “g1, g2...” teach ‘groups’)
Bagherjeiran does not expressly teach ‘…wherein the partitioning of the plurality of records is based on a computational processing capacity of a relationship store in which the graph model is implemented; scheduling a number of parallel lookups provided to the relationship store; determining whether performance of the relationship store is affected by scheduling the number of parallel lookups; and modifying the number of groups in response to determining the performance of the relationship store is affected.'
Borthwick teaches …wherein the partitioning of the plurality of records is based on a computational processing capacity of a relationship store in which the graph model is implemented; scheduling a number of parallel lookups provided to the relationship store; determining whether performance of the relationship store is affected by scheduling the number of parallel lookups; and modifying the number of groups in response to determining the performance of the relationship store is affected. *see cols.4-5( “…FIG. 1 illustrates a logical diagram of supervised graph partitioning for record matching…Records 102 for matching may be database or other records that can be compared to determine equivalent records…Equivalent records may be records that satisfy a similarity, link, association, or other threshold which can render the records identifying or pointing to a same item…Similarity graph of records 110 may be a weighted graph representation of the records for which matching may be performed =…multiple graphs and/or sub-graphs of records may be generated before performing a final partitioning to determine equivalent records...in some embodiments a coarse partitioning to split up a larger graph into sub-graphs (e.g., problem instances) that are of a manageable size so as to be computationally tractable…” teaches partitioning based on computational processing capacity… graph model is implemented, under broadest reasonable interpretation of elements), cols.6-7(“… FIG. 2 illustrates an example provider network that may implement a service that implements supervised graph partitioning for matching records…may implement various computing resources or services, such as record linking service 210, database service(s) 220, storage service(s)…components of FIG. 2 may be implemented by a system that includes a number of computing nodes (or simply, nodes), each of which may be similar to the computer system embodiment illustrated in FIG. 8 and described below…functionality of a given system or service component (e.g., a component of database service(s) 210 may be implemented by a particular node or may be distributed across several nodes… Record linking service 210 may implement interface 211 to allow clients to identify and evaluate links between records in order to determine matching records. For example, record linking service 210 may implement interface 211 (…) may be implemented so that a client can identify records in a data store, such as records 222 in database service 220, records 232 in storage service(s) 230, and/or records in other storage locations within provider network 200 or external to provider network 200…Interface 211 may allow a client to request the performance of matching evaluations and/or train the models used to perform probability analysis of partitions [schedule parallel lookups to store]…Record linking service 210 may implement a control plane 212 to perform various control operations to implement the features of record linking service 210. For example, control plane may monitor the health and performance of requests at different components, such as ingestion nodes 214 and/or matching nodes 216. If a node fails, a request fails, or other interruption occurs, control plane 212 may be able to restart a job to complete a request (e.g., instead of sending a failure response to the client) [determine performance of store is affected by parallel lookups, under broadest reasonable interpretation of elements]. Control plane 212 may, in some embodiments, may arbitrate, balance, select, or dispatch requests to different node(s) (e.g., ingestion nodes 214 or matching nodes 216) [modify number of groups in response to determining performance is affected]...For example, control plane 212 may receive requests interface 211 which may be a programmatic interface, and identify an available node to begin work on the request...”)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Bagherjeiran to incorporate the teachings of Borthwick and enable Bagherjeiran to partition records into groups based on computational processing capacity of store, and modify groups in response to determining performance of store is affected by parallel lookups, as doing so would enable partitioning larger graph into sub-graphs of a manageable size so as to be computationally tractable, and/or be small enough that it is of tractable size for human review (Borthwick, cols.3-5,6-7).
Regarding claim 22,
Bagherjeiran as modified by Borthwick teaches all the claimed limitations as set forth in the rejection of claim 1 above.
Bagherjeiran further teaches The method of claim 21, wherein partitioning the plurality of records into the plurality of groups further comprises storing the records in one or more input queues such that a first set of records are stored in a first input queue and a second set of records are stored in a second input queue, the records in the first input queue and the second input queue being accessible in parallel to identify related records. *see para23(“…providing a map-reduce framework for computing weakly connected components of a large-scale graph, the present invention may be scalable for social network applications involving billions of users with hundreds of thousands of communications. Connected components may be computed in parallel across multiple machines on extremely large graphs…” teaches queues accessible in parallel), paras29-33(“...set of WCCs partition the set of vertices into disjoint subsets [groups]...distribute the edge set (v,v`)€ E to m mappers [storing first/ second set in first/second input queues], where each mapper mi, operates on some subset Ei € E...At step 304, the collection of edges may be distributed to mappers that identify sets of edges for each vertex representing subgraphs of connected components. For the graph G=(V,E) where G={g1, g2 . . . .gm}, subsets of edges denoted by gi=(vi,ei) may be distributed to m mappers...a mapper executing on a mapper server may distribute subsets of the collection of edges to one or more mappers executing on other mapper servers. At step 306, sets of edges may be identified for each vertex that may represent subgraphs of connected components …” teaches partitioning records, storing first/second set of records in first/ second input queues accessible in parallel)
Regarding claim 23,
Bagherjeiran as modified by Borthwick teaches all the claimed limitations as set forth in the rejection of claim 22 above.
Bagherjeiran further teaches The method of claim 22, further comprising: determining at least a first group in the plurality of groups, wherein the first group includes the first set of records; determining two or more records in the first group are related, in response to determining that the two or more records in the first group are connected using one or more connections between the plurality of nodes in the graph model; assigning a first group identifier to the related two or more records in the first group; determining at least a second group in the plurality of groups, wherein the second group includes the second set of records; determining two or more records in the second group are related, in response to determining that the two or more records in the second group are related connected using one or more connections between the plurality of nodes in the graph model; and assigning a second group identifier to the related two or more records in the second group. *see para31(“...Each mapper may find the connected components within the set of edges given to it...resulting WCCs on each mapper may be defined by child-parent pairs of vertices, {(vx, px)|x € vi}, such that all child vertices, vx, with the same parent vertex, px, belong in the same WCC [vertex value “x” teaches ‘group identifier’]...single reducer may execute on the child parent pairs of vertices, (vx, px), that sorts the pairs by child vertex value...”), paras32-33(“At step 306, sets of edges may be identified for each vertex that may represent subgraphs of connected components...a subgraph union find component may execute a union-find algorithm for each edge (v,v`)€ gi in the sets of edges to find the maximal sets of connected components for subgraphs represented by child-parent pairs of vertices, (vx,px)...At step 308, the sets of edges for each vertex representing the maximal sets of connected components for sub-graphs may be sorted by child vertex value...”; Here, “vx, px” refer to child, parent vertices [nodes representing records], and vertex value “x” in “vx,px” teaches identifiers assigned to groups of records determined to be related to each other. It is understood that different identifiers are assigned to groups of related records (“connected components”) resulting from each mapper)
Regarding claim 24,
Bagherjeiran as modified by Borthwick teaches all the claimed limitations as set forth in the rejection of claim 23 above.
Bagherjeiran further teaches The method of claim 23, further comprising storing a first list of records assigned to the first group identifier in a first output queue and storing a second list of records assigned to the second group identifier in a second output queue. *see para33(“At step 308, the sets of edges for each vertex representing the maximal sets of connected components for subgraphs may be sorted by child vertex value...sorted sets of edges for each vertex may then be sent at step 310 to one or more reducers to find a graph of maximal sets of connected components...a reducer may execute on the same computer as one or more mappers...may execute on one or more reducer servers...”; Here, records in input queues from each mapper are sorted and stored in “sorted sets of edges for each vertex”, thereby teaches output queues that store records associated with a specific identifier/vertex value)
Regarding claim 26,
Bagherjeiran as modified by Borthwick teaches all the claimed limitations as set forth in the rejection of claim 21 above.
Borthwick further teaches The method of claim 21, wherein modifying the number of groups in response to determining the performance of the relationship store further comprises initiating a feedback loop to modify the number of groups based on the performance of the relationship store. *see *see cols.4-5, cols.6-7(“…Record linking service 210 may implement interface 211 to allow clients to identify and evaluate links between records in order to determine matching records. For example, record linking service 210 may implement interface 211 (…) may be implemented so that a client can identify records in a data store, such as records 222 in database service 220, records 232 in storage service(s) 230, and/or records in other storage locations within provider network 200 or external to provider network 200…Interface 211 may allow a client to request the performance of matching evaluations and/or train the models used to perform probability analysis of partitions…Record linking service 210 may implement a control plane 212 to perform various control operations to implement the features of record linking service 210. For example, control plane may monitor the health and performance of requests at different components, such as ingestion nodes 214 and/or matching nodes 216. If a node fails, a request fails, or other interruption occurs, control plane 212 may be able to restart a job to complete a request (e.g., instead of sending a failure response to the client) [determine performance is affected…, under broadest reasonable interpretation of elements]. Control plane 212 may, in some embodiments, may arbitrate, balance, select, or dispatch requests to different node(s) (e.g., ingestion nodes 214 or matching nodes 216)...For example, control plane 212 may receive requests interface 211 which may be a programmatic interface, and identify an available node to begin work on the request...” teaches initiate feedback loop to modify groups based on the performance…, under broadest reasonable interpretation of elements)
Regarding claim 28,
Bagherjeiran as modified by Borthwick teaches all the claimed limitations as set forth in the rejection of claim 21 above.
Borthwick further teaches The method of claim 21, wherein the number of parallel lookups are scheduled according to a number of scheduled batches based on the plurality of records. *see cols.4-5( “…FIG. 1 illustrates a logical diagram of supervised graph partitioning for record matching…Records 102 for matching may be database or other records that can be compared to determine equivalent records…Equivalent records may be records that satisfy a similarity, link, association, or other threshold which can render the records identifying or pointing to a same item…Similarity graph of records 110 may be a weighted graph representation of the records for which matching may be performed…multiple graphs and/or sub-graphs of records may be generated before performing a final partitioning to determine equivalent records...a coarse partitioning to split up a larger graph into sub-graphs (e.g., problem instances) that are of a manageable size so as to be computationally tractable…” teaches scheduled batches based on records, under broadest reasonable interpretation of elements), cols.6-7(“… FIG. 2 illustrates an example provider network that may implement a service that implements supervised graph partitioning for matching records…such as record linking service 210, database service(s) 220, storage service(s)…components of FIG. 2 may be implemented by a system that includes a number of computing nodes …functionality of a given system or service component (e.g., a component of database service(s) 210 may be implemented by a particular node or may be distributed across several nodes… Record linking service 210 may implement interface 211 to allow clients to identify and evaluate links between records in order to determine matching records. For example, record linking service 210 may implement interface 211 (…) may be implemented so that a client can identify records in a data store, such as records 222 in database service 220, records 232 in storage service(s) 230, and/or records in other storage locations within provider network 200 or external to provider network 200…Interface 211 may allow a client to request the performance of matching evaluations and/or train the models used to perform probability analysis of partitions [lookups scheduled according to number of scheduled batches based on records, under broadest reasonable interpretation of elements]…Record linking service 210 may implement a control plane 212 to perform various control operations to implement the features of record linking service 210. For example, control plane may monitor the health and performance of requests at different components, such as ingestion nodes 214 and/or matching nodes 216. If a node fails, a request fails, or other interruption occurs, control plane 212 may be able to restart a job to complete a request (e.g., instead of sending a failure response to the client). Control plane 212 may, in some embodiments, may arbitrate, balance, select, or dispatch requests to different node(s) (e.g., ingestion nodes 214 or matching nodes 216) [lookups scheduled according to number of scheduled batches based on records, under broadest reasonable interpretation of elements]...For example, control plane 212 may receive requests interface 211 which may be a programmatic interface, and identify an available node to begin work on the request...”)
Regarding claim 29,
Bagherjeiran as modified by Borthwick teaches all the claimed limitations as set forth in the rejection of claim 21 above.
Borthwick further teaches The method of claim 21, wherein modifying the number of groups in response to determining the performance of the relationship store further comprises re-partitioning the plurality of records into a second plurality of partitions, wherein a total number of the second plurality of partitions is less than a total number of the plurality of partitions. *see cols3-4(“...supervised graph partitioning for matching records may account for large numbers of records in order to scale graph partitioning for matching records. For example, in some embodiments, coarse clustering, or other partition technique may be performed to generate sub-graphs (e.g., a problem instance), as discussed in more detail below with regard to FIGS. 4, 5, and 7, may be used to coarsely performing partitioning of a graph into smaller, reasonably sized sub-graphs [total number partitions], which can then be further partitioned using multiple partition techniques [teaches re-partitioning into second plurality of partitions, which is understood to be less than total number partitions, under broadest reasonable interpretation of elements], the results of which can be qualitatively analyzed according to the machine-learning model.”)
Regarding claim 30,
Bagherjeiran as modified by Borthwick teaches all the claimed limitations as set forth in the rejection of claim 21 above.
Bagherjeiran further teaches The method of claim 21, wherein the plurality of records are included in an input stream and the partitioning is based on the number of the records in the input stream. *see paras29-32(“...social network may be represented by a graph, G=(V,E)...set of WCCs partition the set of vertices into disjoint subsets...an implementation may distribute the edge set (v,v`)€ E to m mappers, where each mapper mi, operates on some subset Ei € E such that UiEi =E [this teaches ‘partitioning...based on...number of...records/vertices/edges’]. Each mapper may find the connected components within the set of edges given to it... At step 304, the collection of edges may be distributed [‘partitioning’] to mappers that identify sets of edges for each vertex representing subgraphs of connected components. For the graph G=(V,E) where G={g1, g2 . . . .gm}, subsets of edges denoted by gi=(vi,ei) may be distributed to m mappers...”)
Regarding claim 31,
Claim 31 recites substantially the same claim limitations as claim 21, and is rejected for the same reasons.
Regarding claim 32,
Claim 32 recites substantially the same claim limitations as claim 22, and is rejected for the same reasons.
Regarding claim 33,
Claim 33 recites substantially the same claim limitations as claim 23, and is rejected for the same reasons.
Regarding claim 34,
Claim 34 recites substantially the same claim limitations as claim 24, and is rejected for the same reasons.
Regarding claim 36,
Claim 36 recites substantially the same claim limitations as claim 26, and is rejected for the same reasons.
Regarding claim 38,
Claim 38 recites substantially the same claim limitations as claim 28, and is rejected for the same reasons.
Regarding claim 39,
Claim 39 recites substantially the same claim limitations as claim 29, and is rejected for the same reasons.
Regarding claim 40,
Claim 40 recites substantially the same claim limitations as claim 30, and is rejected for the same reasons.
Claims 25 and 35 are rejected under 35 U.S.C. 103 as being unpatentable over Bagherjeiran in view of Borthwick and Broecheler (US 2018/0081937 A1, in IDS filed 06/04/2025).
Regarding claim 25,
Bagherjeiran as modified by Borthwick teaches all the claimed limitations as set forth in the rejection of claim 24 above.
Bagherjeiran further teaches The method of claim 24, further comprising merging the first list of records and the second list of records based on the first group identifier and the second group identifier to generate … label model ... *see para27(“...reducer 220 that receives sets of edges for vertices that represent connected components of subgraphs, finds connected components for the graph by merging subgraphs of connected components, and outputs sets of edges for vertices representing connected components of a graph...”), para31(“...resulting WCCs on each mapper may be defined by child-parent pairs of vertices, {(vx,px)|x € vi}, such that all child vertices, vx, with the same parent vertex, px, belong in the same WCC [“x” teaches ‘first/second group identifier’] ...single reducer may execute on the child parent pairs of vertices, (V,p), that sorts the pairs by child vertex value, and resolves any conflicts if a child vertex belongs to multiple parent vertices...conflict can occur if one mapper assigns a child vertex v to a parent p and another mapper assigns the same child vertex to a different parent p'!=p...parents of the parent vertices (grandparents) resulting from execution of the union-find algorithm denote the merged WCCs which may be output as grandparent-parent-child triples (p',p,v) of vertices...”) and para33(“At step 312, sorted sets of edges for each vertex representing the maximal sets of connected components for subgraphs may be merged to identify maximal sets of connected components of a graph...”) teach merging sets/subgraphs of connected records with assigned identifier/vertex value, para36(“...At step 506, a set of edges for a vertex represented by a child-parent pair of vertices that represent the connected components for subgraphs may be obtained from the sets of edges for sorted vertices. It may be determined at step 508 whether the vertex is a duplicate of a vertex previously obtained from the sets of edges for sorted vertices. If not, then the set of edges for the vertex may be output at step 512...output of each of the reducers may be sent to a single reducer to resolve conflicts where a child vertex belongs to multiple parent vertices for computing the connected components of a large-scale graph...”); Examiner notes that “sorted sets of edges for each vertex” indirectly teaches a label structure under its broadest reasonable interpretation, however, the secondary reference (Broecheler) is being relied upon to teach a linearly searchable label model as discussed below.
Bagherjeiran does not expressly teach ‘…generate a linearly searchable label model to determine one or more relationships between records in the plurality of records without serially traversing the plurality of connections between the plurality of nodes in the graph model'
However, Broecheler teaches …generate a linearly searchable label model to determine one or more relationships between records in the plurality of records without serially traversing the plurality of connections between the plurality of nodes in the graph model *see FIGS.1A-C, paras15-16(“...plurality of indices that are each specific to a particular vertex of the graph database is generated and stored...vertex-centric index may index all edges of a particular vertex. A plurality of virtual edges is automatically generated...if a query to find a twice removed vertex from an origin vertex is a common query, rather than locating the twice removed vertex by traversing an edge of the origin vertex to obtain the adjacent vertex and then following another edge of the adjacent vertex to finally obtain the twice removed vertex, a direct virtual edge between the origin vertex and the twice removed vertex is generated to create a direct connection between the origin vertex and the twice removed vertex...”), paras23-32(“...302, vertex-centric indices for a graph database are generated...a query may desire to identify edges of a particular vertex that match the query...identify an adjacent/ neighbor vertex connected to the subject vertex that matches the query criteria [‘determine… relationships between records’]. Rather than traversing an entire large graph of the entire dataset to locate a desired edge and/or vertex, a separate vertex-centric index for each vertex may be generated to enable fast vertex-centric query processing [‘without serially traversing...connections...’]...to locate a particular information about an edge or a neighbor vertex of a subject vertex, the desired information can be located with a single lookup in the vertex-centric index rather than traversing every edge/vertex of the subject vertex...vertex-centric index includes a table of connected edges and adjacent vertices for a particular vertex [‘linearly searchable label model’]... [0030] At 304, one or more virtual edges are automatically generated to update a plurality of vertex-centric indices...common search query might be to find a vertex that has a grandfather relationship with a subject vertex...rather than requiring the multiple levels of edge traversals, a direct "path" between the subject vertex and another vertex that previously was not directly connected to the subject vertex is generated as a virtual edge. For example, a "grandfather" relationship virtual edge is generated to directly connect the "hercules" vertex with the "saturn" vertex of graph 110 of FIG. 1C... "grandfather" virtual edge detected using the edges of the "jupiter" vertex (e.g., detected using vertex-centric index of "jupiter" vertex) is provided to be stored/indexed in the vertex-centric index of the "hercules" vertex and the vertex-centric index of the "saturn" vertex....”)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Bagherjeiran to incorporate the teachings of Broecheler and enable Bagherjeiran to generate a linearly searchable label model to determine relationships between records without serially traversing connections between nodes, as doing so would improve graph database performance and speed up traversing/searching large graphs of vertices, and in particular, enable locating information about an edge or a neighbor vertex of a subject vertex with a single lookup in the vertex-centric index rather than traversing every edge/vertex of the subject vertex (Broecheler, paras02,23-24).
Regarding claim 35,
Claim 35 recites substantially the same claim limitations as claim 25, and is rejected for the same reasons.
Claims 27 and 37 are rejected under 35 U.S.C. 103 as being unpatentable over Bagherjeiran in view of Borthwick and Rice (US 2018/0357264 A1).
Regarding claim 27,
Bagherjeiran as modified by Borthwick teaches all the claimed limitations as set forth in the rejection of claim 26 above.
Bagherjeiran as modified by Borthwick does not explicitly teach ‘The method of claim 26, wherein the feedback loop further provides an alert notification.’
However, Rice teaches The method of claim 26, wherein the feedback loop further provides an alert notification. see paras67-72(“...Regardless of how atoms are distributed based on partitioning policies, the distributed database system 100 can enable partitioned tables to be queried by SQL clients 102, with those clients viewing what appears to be one contiguous table…SQL clients 102 are provided a logical view of a database table, with that table's constituent partitions being potentially stored by N number of storage groups. This means that TE nodes can execute transactions that affect all table partitions or a subset of partitions, or both….SQL clients 102 request such transactions without necessarily understanding the partitioning policies implemented by the distributed database system 100, and instead can operate what appears to be a single, logical view of each table. [0072] Note that in some cases a storage group can fail or otherwise get shutdown (e.g., by an administrator) [teaches performance of relationship store is affected, under broadest reasonable interpretation of elements]. More particularly, if each SM node servicing a storage group fails or are shutdown, the storage group will transition into an unavailable state. A user interface hosted by an admin node may indicate this transition visually through an alert such as a text message, sound (e.g., a beep), audible message (e.g., “Storage group X unavailable, all SM nodes in error state”), or other notification [feedback loop further provides alert notification]. Queries against partitions that are mapped to the unavailable storage group can timeout and fail. Once at least one SM node servicing this storage group is brought back online, the storage group can transition back into the available state. The user interface hosted by an admin node may also indicate this transition through an alert such a text message, sound, or audible message…”)
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Bagherjeiran to incorporate the teachings of Rice and enable Bagherjeiran to enable feedback loop providing an alert notification, as doing so would help servicing and bringing back storage group back online/into available state (Rice, paras70-72).
Regarding claim 37,
Claim 37 recites substantially the same claim limitations as claim 27, and is rejected for the same reasons.
Conclusion
The prior art made of record in PTO-892 and not relied upon is considered pertinent to applicant's disclosure.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ANUGEETHA KUNJITHAPATHAM whose telephone number is (408)918-7510. The examiner can normally be reached M-F 9-5 PT.
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, Aleksandr Kerzhner can be reached at (571) 270-1760. 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.
/A.K./Examiner, Art Unit 2165
/ALEKSANDR KERZHNER/Supervisory Patent Examiner, Art Unit 2165