Translating queries into graph queries using primitives

US9330138B1Active Publication Date: 2016-05-03MICROSOFT TECH LICENSING LLC
11 Cites 30 Cited by

Patent Information

Authority / Receiving Office
US · United States
Current Assignee / Owner
Publication Date
2016-05-03

Smart Images

  • Figure 1
    Figure 1
  • Figure 2
    Figure 2
  • Figure 3
    Figure 3
Patent Text Reader

Abstract

In order to facilitate the requesting of desired information from a graph database that stores a graph, a system may translate an initial query into a query that can be executed against the graph database. In particular, using primitives, the system may translate a query associated with a type of database (such as a relational database) into the query. The graph may include nodes, edges between the nodes, and predicates to represent and store data with index-free adjacency. Moreover, the primitives may include: a rule based on edges in the graph that expresses a relational schema in the 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 type of database. Then, the system may execute the query against the graph database, and may receive a result that includes a subset of the graph.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] 1. Field

[0002] The described embodiments relate to techniques for performing a query of a database. More specifically, the described embodiments relate to techniques for translating an arbitrary query into an edge query for use with a graph database.

[0003] 2. Related Art

[0004] Data associated with applications is often organized and stored in databases. For example, in a relational database data is organized based on a relational model into one or more tables of rows and columns, in which the rows represent instances of types of data entities and the columns represent associated values. Information can be extracted from a relational database using queries expressed in a Structured Query Language (SQL).

[0005] In principle, by linking or associating the rows in different tables, complicated relationships can be represented in a relational database. In practice, extracting such complicated relationships usually entails performing a set of queries and then determining the in...

Examples

Embodiment Construction

[0031]In order to request desired information from a graph database, a system executes a query (which is sometimes referred to as an ‘edge 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 typically must include the desired information expressed within an associated structure of the graph.

[0032]Furthermore, the result of the query may be used in a concatenated or sequential set of queries. In particular, the system may execute a second query against the subset of the graph received in response to the original query. This second query may identify a second edge associated with a second predica...