IP Library Granted Patent US 9,535,963
Granted Patent B1
US 9,535,963 · App. 14/858,178 · Granted Jan 3, 2017

Graph-based queries

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,535,963
App. No.
14/858,178
Granted
Jan 3, 2017
Kind
B1
Abstract

In order to request desired information from a graph database, a system executes a query against the graph database. The graph database may store a graph that includes nodes, edges between the nodes, and predicates to represent and store data with index-free adjacency. Moreover, the query may identify a first edge associated with a predicate that specifies one or more of the nodes in the graph. In response to the query, the system receives a result that includes a subset of the graph. In particular, the subset of the graph may include the desired information expressed within an associated structure of the graph.

Claims (56)

1. A computer-system-implemented method for requesting desired information from a graph database storing a graph, the method comprising:

receiving an initial query that is compatible with a first type of database that is different from the graph database;

converting the initial query into a query using primitives, wherein the primitives comprise:

a rule, based on edges in the graph, that expresses a relational schema in the first type of database, and

information associated with a compound key that specifies a relationship between nodes, edges and predicates in the graph corresponding to a table in the first type of database;

executing the query against the graph database, wherein:

the graph comprises nodes, edges between the nodes, and predicates to represent and store data with index-free adjacency; and

the query identifies a first edge associated with a predicate that specifies one or more of the nodes in the graph; and

receiving a result in response to the query, wherein the result includes a subset of the graph.

2. The method of claim 1 , wherein the method further comprises generating the query with a subject, a predicate and an object based on the desired information.

3. The method of claim 2 , wherein the query is associated with entities in a professional network.

4. The method of claim 1 , wherein the type of database includes one of: a relational database, and a hierarchical database.

5. The method of claim 1 , wherein the method further comprises:

receiving another query that is compatible with JavaScript Object Notation; and

converting the other query into the query.

6. The method of claim 1 , wherein the subset of the graph includes the desired information expressed within an associated structure of the graph.

7. The method of claim 1 , wherein the result excludes hierarchical constraints and relational constraints.

8. The method of claim 1 , wherein the query includes a string.

9. The method of claim 1 , wherein the query includes a variable.

10. The method of claim 1 , further comprising:

executing a second query against the result; and

receiving a second result in response to the second query, wherein the second result includes a second subset of the graph.

11. An apparatus, comprising:

one or more processors;

memory; and

a program module, wherein the program module is stored in the memory and, during operation of the apparatus, is executed by the one or more processors to request desired information from a graph database storing a graph, the program module including:

instructions for receiving an initial query that is compatible with a first type of database that is different from the graph database;

instructions for converting the initial query into a query using primitives, wherein the primitives comprise:

a rule, based on edges in the graph, that expresses a relational schema in the first type of database, and

information associated with a compound key that specifies a relationship between nodes, edges and predicates in the graph corresponding to a table in the first type of database;

instructions for executing the query against the graph database, wherein:

the graph comprises nodes, edges between the nodes, and predicates to represent and store data with index-free adjacency; and

the query identifies a first edge associated with a predicate that specifies one or more of the nodes in the graph; and

instructions for receiving a result in response to the query, wherein the result includes a subset of the graph.

12. The apparatus of claim 11 , wherein the program module further comprises instructions for generating the query with a subject, a predicate and an object based on the desired information.

13. The apparatus of claim 11 , wherein the type of database includes one of: a relational database, and a hierarchical database.

14. The apparatus of claim 11 , wherein the program module further comprises instructions for:

receiving another query that is compatible with JavaScript Object Notation; and

converting the other query into the query.

15. The apparatus of claim 11 , wherein the subset of the graph includes the desired information expressed within an associated structure of the graph.

16. The apparatus of claim 11 , wherein the result excludes hierarchical constraints and relational constraints.

17. The apparatus of claim 11 , wherein the query includes a string.

18. The apparatus of claim 11 , wherein the query includes a variable.

19. The apparatus of claim 11 , wherein the program module further comprises instructions for:

executing a second query against the result; and

receiving a second result in response to the second query, wherein the second result includes a second subset of the graph.

20. A system, comprising:

a processing module comprising a non-transitory computer readable medium storing instructions that, when executed, cause the system to:

receive an initial query that is compatible with a first type of database that is different from a graph database storing a graph;

convert the initial query into a query using primitives, wherein the primitives comprise:

a rule, based on edges in the graph, that expresses a relational schema in the first type of database, and

information associated with a compound key that specifies a relationship between nodes, edges and predicates in the graph corresponding to a table in the first type of database;

execute the query against the graph database, wherein:

the graph comprises nodes, edges between the nodes, and predicates to represent and store data with index-free adjacency; and

the query identifies a first edge associated with a predicate that specifies one or more of the nodes in the graph; and

receive a result in response to the query, wherein the result includes a subset of the graph.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: LINKEDIN CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2015
From: SHANKAR, SRINATH; STEPHENSON, ROBERT W.; CARTER, ANDREW J.; LEE, MAVERICK SHU-BUN; MEYER, SCOTT M.
To: LINKEDIN CORPORATION
Reel/Frame 036761/0563 →