IP Library Granted Patent US 9,348,947
Granted Patent B2
US 9,348,947 · App. 14/318,432 · Granted May 24, 2016

Systems and methods for visualizing and manipulating graph databases

Inventors: Robert Chess Stetson (Altadena, CA); Jacob Aptekar (Altadena, CA)
Assignee: Helynx, Inc.
G06F17/30994G06F17/30958G06F17/30961
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 9,348,947
App. No.
14/318,432
Granted
May 24, 2016
Kind
B2
Abstract

Systems and methods for visualizing and manipulating graph databases in accordance embodiments of the invention are disclosed. In one embodiment of the invention, a graph database manipulation device includes a processor and a memory configured to store a graph database manipulation application, wherein the graph database manipulation application configures the processor to obtain a graph database including a set of nodes and a set of edges, determine a source node within the set of nodes, locate a set of related nodes based on the source node and the set of edges, recursively locate a set of sub-related nodes based on the set of related nodes and the set of edges, generate a representation of the set of related nodes from the perspective of the source node, and recursively update the generated representation of the set of sub-related nodes from the perspective of the source node and the related nodes.

Claims (64)

1. A graph database manipulation device, comprising:

a processor; and

a memory configured to store a graph database manipulation application;

wherein the graph database manipulation application configures the processor to:

obtain a graph database, wherein the graph database comprises:

a set of nodes; and

a set of edges, wherein an edge in a set of edges defines a relationship between a first node in the set of nodes and a second node in the set of nodes and an edge comprises:

edge weight metadata; and

edge display metadata, wherein the edge display metadata describes the spatial relationship between the first node and the second node;

determine a source node within the set of nodes;

locate a set of related nodes based on the source node and the set of edges, where a related node in the set of related nodes has an edge in the set of edges indicating a relationship between the related node and the source node;

recursively locate a set of sub-related nodes based on the set of related nodes and the set of edges, where a sub-related node in the set of sub-related nodes has an edge in the set of edges indicating a relationship between a related node in the set of related nodes and the sub-related node;

generate a representation of the set of related nodes from the perspective of the source node, where the representation of a related node in the subset of the set of related nodes is based on the edge weight metadata and the edge display metadata from the edge defining the relationship between the particular related node and the source node; and

recursively update the generated representation of the set of sub-related nodes from the perspective of the source node and the set of related nodes, where the representation of a sub-related node in the set of sub-related nodes within the generated representation is recursively based on the edge weight metadata and the edge display metadata from the edge defining the relationship between the particular sub-related node and its predecessor nodes.

2. The graph database manipulation device of claim 1 , further comprising:

a display device and configured to display a visualization of a representation of nodes and edges within the graph database;

wherein the graph database manipulation application further configures the processor to display the generated representation using the display device.

3. The graph database manipulation device of claim 2 , wherein the display of the generated representation further comprises performing a recursive shift based on the relationship between the related nodes in the set of related nodes and the edge display metadata for the subset of edges defining the relationship between pairs of the related nodes in the set of related nodes.

4. The graph database manipulation device of claim 2 , wherein the display of the generated representation further comprises performing a recursive transformation based on the relationship between the related nodes in the set of related nodes and the edge display metadata for the subset of edges defining the relationship between pairs of the related nodes in the set of related nodes.

5. The graph database manipulation device of claim 1 , further comprising:

an input device configured to receive graph manipulation data;

wherein the graph database manipulation application further configures the processor to:

modify the nodes and edges within the graph database based on the graph manipulation data; and

refresh the generated representation of the source node and the set of related nodes based on the modified graph database.

6. The graph database manipulation device of claim 1 , wherein:

a node comprises permission metadata, where the permission metadata describes a set of nodes that have access to the node; and

the graph database manipulation application further configures the processor to locate the set of related nodes for the source based on the permission metadata for the nodes in the set of related nodes.

7. The graph database manipulation device of claim 6 , wherein the graph database manipulation application further configures the processor to recursively locate the sub-related nodes in the set of sub-related nodes based on the permission data for the sub-related nodes.

8. The graph database manipulation device of claim 7 , wherein the recursive location of sub-related nodes from a related node further comprises receiving a set of related edges from a node having an edge in common with the related node based on the permission metadata for the node.

9. The graph database manipulation device of claim 1 , wherein the edge weight metadata is a complex number having a real component and an imaginary component.

10. The graph database manipulation device of claim 9 , wherein the edge weight metadata represents a property selected from the group consisting of a spatial position, a color, and a size.

11. The graph database manipulation device of claim 9 , wherein the meaning of the edge weight metadata is based on the generated representation of the nodes associated with the edge comprising the edge weight metadata.

12. The graph database manipulation device of claim 9 , wherein the recursive update of the visualized representation is based on an accumulation of the weights of the sub-related nodes.

13. The graph database manipulation device of claim 1 , wherein a portion of the edge display metadata is convertible to a binary string.

14. The graph database manipulation device of claim 13 , wherein:

the edge display metadata describes the relative layout of the nodes associated with the edge comprising the edge display metadata; and

the generation of the representation of the set of related nodes and the set of sub-related nodes based on the perspective of the source node further comprises recursively calculating the position of the representation of a sub-related node based on the edge display metadata for the sub-related node and the edge display metadata for nodes within the set of related nodes that are predecessor nodes to the sub-related node.

15. The graph database manipulation device of claim 1 , wherein:

at least one third-party node in the set of nodes represents a third-party data source device; and

the at least one third-party node comprises node metadata retrieved from the third-party data source device.

16. The graph database manipulation device of claim 15 , wherein the edge weight metadata for the edges in the set of edges that are connected to the at least one third-party node is based on the latency associated with retrieving the node metadata from the third-party data source device.

17. The graph database manipulation device of claim 15 , wherein the edge weight metadata for the edges in the set of edges that are connected to the at least one third-party node is based on the latency associated with retrieving edge metadata from the third-party data source device.

18. The graph database manipulation device of claim 1 , wherein the edge display metadata is calculated based on the related nodes and the sub-related nodes.

19. The graph database manipulation device of claim 1 , wherein the display metadata comprises time data describing a time associated with the edge.

20. The graph database manipulation device of claim 19 , wherein the generated representation comprises a historical narrative of the set of nodes based on the time data.

21. The graph database manipulation device of claim 1 , wherein at least one generated representation includes a partially overlapping subset of at least one other generated representation.

22. The graph database manipulation device of claim 1 , wherein at least one node in the set of nodes is configured to execute actions based on a received request.

23. The graph database manipulation device of claim 22 , wherein:

the received request comprises a request for the set of nodes related to the at least one node configured to execute actions; and

the at least one node configured to execute actions to:

identify nodes connected to the at least one node by at least one edge;

generate a set of sub-related nodes based on the identified nodes and edges, where the set of sub-related nodes comprises the sub-related nodes and the edges associated with the sub-related nodes and the at least one node; and

transmit a portion of the generated set of sub-related nodes based on the received request.

24. A method for visualizing graph databases, comprising:

obtaining a graph database using a graph database manipulation device, wherein the graph database comprises:

a set of nodes; and

a set of edges, wherein an edge in a set of edges defines a relationship between a first node in the set of nodes and a second node in the set of nodes and an edge comprises:

edge weight metadata; and

edge display metadata, wherein the edge display metadata describes the spatial relationship between the first node and the second node;

determining a source node within the set of nodes using the graph database manipulation device;

locating a set of related nodes based on the source node and the set of edges using the graph database manipulation device, where a related node in the set of related nodes has an edge in the set of edges indicating a relationship between the related node and the source node;

recursively locating a set of sub-related nodes based on the set of related nodes and the set of edges using the graph database manipulation device, where a sub-related node in the set of sub-related nodes has an edge in the set of edges indicating a relationship between a related node in the set of related nodes and the sub-related node;

generating a representation of the set of related nodes from the perspective of the source node using the graph database manipulation device, where the representation of a related node in the subset of the set of related nodes is based on the edge weight metadata and the edge display metadata from the edge defining the relationship between the particular related node and the source node; and

recursively updating the generated representation of the set of sub-related nodes from the perspective of the source node and the set of related nodes using the graph database manipulation device, where the representation of a sub-related node in the set of sub-related nodes within the generated representation is recursively based on the edge weight metadata and the edge display metadata from the edge defining the relationship between the particular sub-related node and its predecessor nodes.

Assignments (4)
CHANGE OF NAME Recorded Feb 24, 2020
From: HELYNX, INC.
To: DRISK, INC.
Reel/Frame 051908/0770 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2016
From: QURATOR, INC.
To: STETSON, ROBERT CHESS
Reel/Frame 038346/0632 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2016
From: STETSON, ROBERT CHESS
To: HELYNX, INC.
Reel/Frame 038346/0664 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2014
From: STETSON, ROBERT CHESS; APTEKAR, JACOB
To: QURATOR, INC.
Reel/Frame 033366/0911 →
Continuity (2)
Provisional Application 61858782 · Jul 26, 2013
Related Publication 20150033106A1 · Jan 29, 2015