IP Library Granted Patent US 12,277,172
Granted Patent B2
US 12,277,172 · App. 16/223,328 · Granted Apr 15, 2025

Graph creation from multiple databases

Inventors: Xinyu Chang (Menlo Park, CA); Yu Xu (Millbrae, CA); Zixuan Zhuang (Redwood City, CA); Mingxi Wu (San Mateo, CA)
Assignee: TigerGraph, Inc.
G06F16/9024G06F16/90335
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,277,172
App. No.
16/223,328
Granted
Apr 15, 2025
Kind
B2
Abstract

Systems, methods, and software described herein provide operations to generate and manage a graph. In one implementation, a graph management system may identify a request to generate a graph from multiple databases. In response to the request, the graph management system may identify attributes of interest in the databases and generate vertices that correspond to the attributes of interest. As the new vertices are generated, the graph management system may determine attributes that are related to the same entity, generate entity vertices that correspond to the entities identified in the databases, and generate edges that connect the attribute vertices to the corresponding entity vertices.

Claims (58)

1. A method comprising:

identifying a request to generate a graph from a plurality of databases, wherein the plurality of databases indicate a plurality of attributes associated with a plurality of entities, and wherein a first database of the plurality of databases indicates a first set of attributes in the plurality of attributes that is different than a second set of attributes in a second database of the plurality of databases;

in response to the request, identifying attribute types of interest in the plurality of databases that correspond to unique identifier types for the plurality of entities;

for each attribute type of interest of the attribute types of interest, generating a vertex in the graph for each unique attribute identified in the plurality of databases for the attribute type of interest, wherein the unique attribute uniquely identifies an entity of the plurality of entities;

for each vertex in the graph:

determining whether the vertex is associated with one or more other vertices of the vertices generated for the unique attributes based on associations of the unique attribute for the vertex with other unique attributes of the unique attributes in the plurality of databases;

in response to determining that the vertex is associated with one or more other vertices, connecting the vertex with the one or more other vertices using an entity vertex representative of an entity of the plurality of entities; and

in response to determining that the vertex is not associated with one or more other vertices, generating an entity vertex representative of an entity of the plurality of entities and connecting the vertex to the entity vertex;

obtaining a query, wherein the query indicates a unique attribute of the unique attributes;

identifying at least one vertex in the graph that shares an entity vertex with the vertex for the unique attribute indicated in the query; and

generating a response to the query based on at least one unique attribute corresponding to the at least one vertex.

2. The method of claim 1 , wherein the attribute types of interest comprise unique identifier types for the plurality of entities.

3. The method of claim 1 , wherein the entities comprise users or employees of an organization.

4. The method of claim 1 further comprising:

for each of the attribute types of interest, traversing the plurality of databases to identify said each unique attribute for the attribute type of interest.

5. The method of claim 1 , wherein identifying whether the vertex is associated with one or more other vertices based on associations in the plurality of databases comprises:

identifying at least one row in at least one database of the plurality databases that contained the attribute associated with the vertex;

identifying whether the vertex is associated with one or more other vertices based on whether one or more other vertices correspond to one or more other attributes in the at least one row.

6. The method of claim 1 further comprising identifying other attributes associated with each of the entities and storing the other attributes with a corresponding entity vertex.

7. A computing apparatus comprising:

one or more non-transitory computer readable storage media;

a processing system operatively coupled to the one or more non-transitory computer readable storage media; and

program instructions stored on the one or more non-transitory computer readable storage media that, when executed by the processing system, direct the processing system to:

identify a request to generate a graph from a plurality of databases, wherein the plurality of databases indicate a plurality of attributes associated with a plurality of entities, and wherein a first database of the plurality of databases indicates a first set of attributes in the plurality of attributes that is different than a second set of attributes in a second database of the plurality of databases;

in response to the request, identify attribute types of interest in the plurality of databases that correspond to unique identifier types for the plurality of entities;

for each attribute type of interest of the attribute types of interest, generate a vertex in the graph for each unique attribute identified in the plurality of databases for the attribute type of interest, wherein the unique attribute uniquely identifies an entity of the plurality of entities;

for each vertex in the graph:

determine whether the vertex is associated with one or more other vertices of the vertices generated for the unique attributes based on associations of the unique attribute for the vertex with other unique attributes of the unique attributes in the plurality of databases;

in response to determining that the vertex is associated with one or more other vertices, connect the vertex with the one or more other vertices using an entity vertex representative of an entity of the plurality of entities; and

in response to determining that the vertex is not associated with one or more other vertices, generate an entity vertex representative of an entity of the plurality of entities and connecting the vertex to the entity vertex;

obtain a query, wherein the query indicates a unique attribute of the unique attributes;

identify at least one vertex in the graph that shares an entity vertex with the vertex for the unique attribute indicated in the query; and

generate a response to the query based on at least one unique attribute corresponding to the at least one vertex.

8. The computing apparatus of claim 7 , wherein the attribute types of interest comprise unique identifier types for the plurality of entities.

9. The computing apparatus of claim 7 , wherein the entities comprise users or employees of an organization.

10. The computing apparatus of claim 7 , wherein the program instructions further direct the processing system to, for each of the attribute types of interest, traverse the plurality of databases to identify said each unique attribute for the attribute type of interest.

11. The computing apparatus of claim 7 , wherein identifying whether the vertex is associated with one or more other vertices based on associations in the plurality of databases comprises:

identifying at least one row in at least one database of the plurality databases that contained the attribute associated with the vertex;

identifying whether the vertex is associated with one or more other vertices based on whether one or more other vertices correspond to one or more other attributes in the at least one row.

12. The computing apparatus of claim 7 , wherein the program instructions further direct the processing system to identify other attributes associated with each of the plurality of entities and store the other attributes with a corresponding entity vertex.

13. The computing apparatus of claim 7 further comprising a graph storage system for the graph.

14. An apparatus comprising:

one or more non-transitory computer readable storage media;

program instructions stored on the one or more non-transitory computer readable storage media that, when executed by a processing system, direct the processing system to

identify a request to generate a graph from a plurality of databases, wherein the plurality of databases indicate a plurality of attributes associated with a plurality of entities, and wherein a first database of the plurality of databases indicates a first set of attributes in the plurality of attributes that is different than a second set of attributes in a second database of the plurality of databases;

in response to the request, identify attribute types of interest in the plurality of databases that correspond to unique identifier types for the plurality of entities;

traverse the plurality of databases to identify unique attributes for each of the attribute types of interest, wherein each of the unique attributes uniquely identify an entity of the entities;

generate a vertex in the graph for each of the unique attributes;

for each vertex in the graph:

determine whether the vertex is associated with one or more other vertices of the vertices generated for the unique attributes based on associations of the unique attribute for the vertex with other unique attributes of the unique attributes in the plurality of databases;

in response to determining that the vertex is associated with one or more other vertices, connect the vertex with the one or more other vertices using an entity vertex representative of an entity of the plurality of entities; and

in response to determining that the vertex is not associated with one or more other vertices, generate an entity vertex representative of an entity of the plurality of entities and connecting the vertex to the entity vertex;

obtain a query, wherein the query indicates a unique attribute of the unique attributes;

identify at least one vertex in the graph that shares an entity vertex with the vertex for the unique attribute indicated in the query; and

generate a response to the query based on at least one unique attribute corresponding to the at least one vertex.

15. The apparatus of claim 14 , wherein the attribute types of interest comprise unique identifier types for the plurality of entities.

16. The apparatus of claim 14 , wherein the entities comprise users or employees of an organization.

17. The apparatus of claim 14 , wherein the program instructions further direct the processing system to identify other attributes associated with each of the plurality of entities and store the other attributes with a corresponding entity vertex.

Assignments (3)
SECURITY INTEREST Recorded Sep 24, 2025
From: TIGERGRAPH, INC.
To: WESTERN ALLIANCE BANK
Reel/Frame 072363/0020 →
CHANGE OF NAME Recorded Mar 22, 2023
From: GRAPHSQL, INC.
To: TIGERGRAPH, INC.
Reel/Frame 063146/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2018
From: CHANG, XINYU; XU, YU; ZHUANG, ZIXUAN; WU, MINGXI
To: GRAPHSQL, INC.
Reel/Frame 047803/0747 →
Continuity (1)
Related Publication 20200192938A1 · Jun 18, 2020
References Cited (5)
US 10657125B1 · Gautam · 2020 [cited by examiner]
US 20160055184A1 · Fokoue-Nkoutche · 2016 [cited by examiner]
US 20180011887A1 · Rozenwald · 2018 [cited by examiner]
US 20180136830A1 · Kindelsberger · 2018 [cited by examiner]
US 20190005025A1 · Malabarba · 2019 [cited by examiner]