IP Library Granted Patent US 11,567,997
Granted Patent B2
US 11,567,997 · App. 17/214,334 · Granted Jan 31, 2023

Query language interoperabtility in a graph database

Inventors: Kawarjit Bedi (Sammamish, WA); Piyush Gupta (Issaquah, WA); Sainath Chowdary Mallidi (Seattle, WA); Divij Vaidya (Seattle, WA); Andi Gutmans (Menlo Park, CA)
Assignee: Amazon Technologies, Inc.
G06F16/9024G06F16/2452G06F16/24542G06F16/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 11,567,997
App. No.
17/214,334
Granted
Jan 31, 2023
Kind
B2
Abstract

Methods, systems, and computer-readable media for query language interoperability in a graph database are disclosed. Data elements are inserted into a graph database using one or more of a plurality of graph database query languages. The graph database query languages comprise a first graph database query language associated with a first data model and a second graph database query language associated with a second data model. The data elements are stored in the graph database using an internal data model that differs from the first and second data models. One or more of the data elements are retrieved from the graph database based at least in part on a query. The query is expressed using a different graph database query language than the graph database query language used to insert the one or more retrieved data elements.

Claims (50)

1. A method, comprising:

inserting, according to respective query requests received via one or more query interfaces, a plurality of data elements into a graph database, the respective query requests expressed using a plurality of query languages respectively associated with a plurality of data formats, wherein inserting respective data elements of the plurality of data elements comprises:

automatically indexing the data element according to an internal data format different from individual ones of the plurality of data formats; and

storing the data element in the graph database using the internal data format; and

retrieving at least one data element of the plurality of data elements from the graph database based at least in part on a query expressed using a query language different from a query language of the plurality of query languages used in inserting the at least one data element.

2. The method as recited in claim 1 , wherein the plurality of data formats comprises:

a first data model that represents data elements using resource description framework (RDF) triples comprising subjects, predicates, and objects; and

a second data model that represents data elements using property graphs.

3. The method as recited in claim 2 , wherein a set of the plurality of data elements is inserted into the graph database based at least in part on mapping one or more RDF triples to the internal data model, and wherein the set of the data elements are retrieved from the graph database based at least in part on mapping the internal data model to one or more property graphs.

4. The method as recited in claim 2 , wherein a set of the plurality of data elements are inserted into the graph database based at least in part on mapping one or more property graphs to the internal data model, and wherein the set of the data elements is retrieved from the graph database based at least in part on mapping the internal data model to one or more RDF triples.

5. The method as recited in claim 1 , further comprising:

retrieving an additional one or more of the plurality data elements from the graph database based at least in part on an additional query, wherein the query and the additional query are expressed using different query languages.

6. The method as recited in claim 5 , further comprising:

generating a query execution plan based at least in part on the query;

generating an additional query execution plan based at least in part on the additional query; and

executing the query execution plan and the additional query execution plan using a query execution engine.

7. The method as recited in claim 1 , wherein the internal data format represents the data elements using subject identifiers, column names, and values for the column names, wherein the column names are globally scoped in the graph database, and wherein the column names are associated with respective data types for the values.

8. The method as recited in claim 7 , further comprising:

creating indices corresponding to the column names, wherein an individual one of the indices comprises one or more of the values associated with the corresponding column name, and wherein the query is performed using one or more of the indices corresponding to one of more of the column names associated with the query.

9. A distributed system, comprising:

a plurality of computing devices respectively comprising one or more processors and a memory, the memory storing instructions that upon execution on or across the one or more processors cause the one or more computing devices to implement a graph database configured to:

insert, according to respective query requests received via one or more query interfaces, a plurality of data elements, the respective query requests expressed using a plurality of query languages respectively associated with a plurality of data formats, wherein to insert respective data elements of the plurality of data elements, the graph database is configured to:

automatically index the data element according to an internal data format different from individual ones of the plurality of data formats; and

store the data element using the internal data format; and

retrieve at least one data element of the plurality of data elements based at least in part on a query expressed using a query language different from a query language of the plurality of query languages used in inserting the at least one data element.

10. The distributed system as recited in claim 9 , where respective ones of the plurality of computing devices are located in different ones of a plurality of availability zones.

11. The distributed system as recited in claim 9 , wherein the graph database is further configured to:

automatically partition storage of the graph database according to respective column names of the plurality of data elements in the internal data format.

12. The distributed system as recited in claim 9 , wherein the plurality of data formats comprises:

a first data model that represents data elements using resource description framework (RDF) triples comprising subjects, predicates, and objects; and

a second data model that represents data elements using property graphs.

13. The distributed system as recited in claim 12 , wherein a set of the plurality of data elements is inserted into the graph database based at least in part on mapping one or more RDF triples to the internal data model, and wherein the set of the data elements are retrieved from the graph database based at least in part on mapping the internal data model to one or more property graphs.

14. The distributed system as recited in claim 12 , wherein a set of the plurality of data elements are inserted into the graph database based at least in part on mapping one or more property graphs to the internal data model, and wherein the set of the data elements is retrieved from the graph database based at least in part on mapping the internal data model to one or more RDF triples.

15. One or more non-transitory computer-accessible storage media storing program instructions that when executed on or across one or more processors cause one or more computer systems to perform:

inserting, according to respective query requests received via one or more query interfaces, a plurality of data elements into a graph database, the respective query requests expressed using a plurality of query languages respectively associated with a plurality of data formats, wherein inserting respective data elements of the plurality of data elements comprises:

automatically indexing the data element according to an internal data format different from individual ones of the plurality of data formats; and

storing the data element in the graph database using the internal data format; and

retrieving at least one data element of the plurality of data elements from the graph database based at least in part on a query expressed using a query language different from a query language of the plurality of query languages used in inserting the at least one data element.

16. The one or more non-transitory computer-accessible storage media as recited in claim 15 , wherein the plurality of data formats comprises:

a first data model that represents data elements using resource description framework (RDF) triples comprising subjects, predicates, and objects; and

a second data model that represents data elements using property graphs.

17. The one or more non-transitory computer-accessible storage media as recited in claim 15 , wherein the program instructions are further computer-executable to perform:

retrieving an additional one or more of the plurality data elements from the graph database based at least in part on an additional query, wherein the query and the additional query are expressed using different query languages.

18. The one or more non-transitory computer-accessible storage media as recited in claim 17 , wherein the program instructions are further computer-executable to perform:

generating a query execution plan based at least in part on the query;

generating an additional query execution plan based at least in part on the additional query; and

executing the query execution plan and the additional query execution plan using a query execution engine.

19. The one or more non-transitory computer-accessible storage media as recited in claim 15 , wherein the internal data format represents the data elements using subject identifiers, column names, and values for the column names, wherein the column names are globally scoped in the graph database, and wherein the column names are associated with respective data types for the values.

20. The one or more non-transitory computer-accessible storage media as recited in claim 19 , wherein the program instructions are further computer-executable to perform:

creating indices corresponding to the column names, wherein an individual one of the indices comprises one or more of the values associated with the corresponding column name, and wherein the query is performed using one or more of the indices corresponding to one of more of the column names associated with the query.

Continuity (2)
Continuation 15411596 · Jan 20, 2017
Related Publication 20210286848A1 · Sep 16, 2021
Cited By (1)
US 12,461,926