Systems, methods, and apparatuses for executing a graph query against a graph representing a plurality of data stores

US2020226156A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2020226156-A1
Application numberUS-201916247468-A
CountryUS
Kind codeA1
Filing dateJan 14, 2019
Priority dateJan 14, 2019
Publication dateJul 16, 2020
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Embodiments of the invention identify entities stored within or across a number of data stores and identify relationships between the entities. A relationships graph is generated that represents the entities and the identified relationships between entities, the relationships graph comprising nodes in the relationships graph to represent one or more entities and edges between any two nodes in the relationships graph to represent the identified relationships between the one or more entities represented by each of the two nodes. The relationships graph is stored in a graph store. A graph query is received against selected nodes and edges in the graph store. One or more data store queries are generated therefrom, to be executed against respective selected ones of the one or more entities and their respective identified relationships based on the graph query and the graph store. The one or more data store queries are applied to selected one or more of the number of data stores. The results of the execution of the one or more data store queries are received and a response is composed to the graph query for the selected ones of the one or more entities and their identified relationships based on the results of the execution of the one or more data store queries.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method, comprising: identifying entities stored within or across a plurality of data stores and identifying relationships between the entities; generating a relationships graph that represents the entities and the identified relationships between entities, the relationships graph comprising nodes in the relationships graph to represent one or more entities and edges between any two nodes in the relationships graph to represent the identified relationships between the one or more entities represented by each of the two nodes; storing the relationships graph in a graph store; receiving a graph query against selected nodes and edges in the graph store; generating one or more data store queries to be executed against respective selected ones of the one or more entities and their respective identified relationships based on the graph query and the graph store; executing the one or more data store queries against the selected one or more of the plurality of data stores; receiving results of the execution of the one or more data store queries; and composing a response to the graph query for the selected ones of the one or more entities and their identified relationships based on the results of the execution of the one or more data store queries. 2 . The method of claim 1 , wherein identifying entities stored within or across the plurality of data stores and identifying relationships between the entities comprises identifying entities stored within or across one or more of: a relational database, an SQL database, a non-relational database, a non-SQL database, an unstructured database, and unstructured data. 3 . The method of claim 1 , wherein identifying the entities and the relationships between the entities comprises one or more of: receiving user input identifying the relationships between entities; and receiving meta-data regarding the entities and the plurality of data stores and automatically identifying relationships between the entities stored within or across the plurality of data stores based on the meta-data. 4 . The method of claim 3 , wherein receiving meta-data regarding the entities and the plurality of data stores and automatically identifying relationships between the entities stored within or across the plurality of data stores based on the meta-data comprises one or more of: receiving user or machine learning input identifying one or both of a similarity and frequency of an attribute-value expression for instances of an entity stored within or across the plurality of data stores; receiving a plurality of workflows applied to the entities stored within or across the plurality of data stores, and identifying relationships between the entities stored within or across the plurality of data stores based on an analysis of the plurality of work flows applied to the entities; receiving a respective data definition language (DDL) of a schema for each of a plurality of relational databases, and identifying relationships between the entities stored within or across the plurality of relational databases based on an analysis of the DDLs of the schemas; receiving user input identifying instances of entities within or across the plurality of data stores that are the same, and identifying relationships between the same instances of entities stored within or across the plurality of data stores; and receiving one or more of query logs and usage logs of the plurality of data stores, and identifying relationships between the entities stored within or across the plurality of data stores based on an analysis of the query logs and usage logs. 5 . The method of claim 1 , wherein the nodes in the relationships graph that represent the one or more entities each comprise an identity for or pointer to each of the plurality of data stores and the one or more entities respectively stored therein from which the node was generated. 6 . The method of claim 1 , wherein the nodes in the relationships graph that represent the one or more entities comprise nodes in the relationships graph that represent multiple instances of an entity stored within or across the plurality of data stores where the similarity and frequency of the attribute-value expression for the instances of the entity stored within or across the plurality of data stores exceeds a threshold. 7 . The method of claim 1 , wherein generating one or more data store queries to be executed against respective selected ones of the one or more entities and their respective identified relationships based on the graph query and the graph store comprises selecting the one or more of the plurality of data stores and selecting the ones of the one or more entities stored therein based on the identity for or pointer to each of the one or more data stores and the one or more entities respectively stored for or within each node in the relationships graph. 8 . The method of claim 1 , wherein composing the response to the graph query for the selected ones of the one or more entities and their identified relationships based on the results of the execution of the one or more data store queries further comprises composing the response to the graph query based on instructions set forth in the graph query itself for manipulating the selected ones of the one or more entities. 9 . A non-transitory computer readable storage media having instructions stored therein that, when executed by a system of a host organization operated by a cloud computing services provider, the system having at least a processor and a memory therein, the instructions cause the system to perform the following operations: identifying entities stored within or across a plurality of data stores and identifying relationships between the entities; generating a relationships graph that represents the entities and the identified relationships between entities, the relationships graph comprising nodes in the relationships graph to represent one or more entities and edges between any two nodes in the relationships graph to represent the identified relationships between the one or more entities represented by each of the two nodes; storing the relationships graph in a graph store; receiving a graph query against selected nodes and edges in the graph store; generating one or more data store queries to be executed against respective selected ones of the one or more entities and their respective identified relationships based on the graph query and the graph store; executing the one or more data store queries against the selected one or more of the plurality of data stores; receiving results of the execution of the one or more data store queries; and composing a response to the graph query for the selected ones of the one or more entities and their identified relationships based on the results of the execution of the one or more data store queries. 10 . The non-transitory computer readable storage media of claim 9 , wherein the instructions that cause the system to perform the operation of identifying entities stored within or across the plurality of data stores and identifying relationships between the entities comprise instructions that cause the system to perform the operation of identifying entities stored within or across one or more of: a relational database, an SQL database, a non-relational database, a non-SQL database, an unstructured database, and unstructured data. 11 . The non-transitory computer readable storage media of claim 9 , wherein the instructions that cause the system to perform the operation of identifying the entities and the relationships between the entities comprise instructions that cause the system to perform one or more of the op

Assignees

Inventors

Classifications

  • Graphs; Linked lists (G06F16/9027 takes precedence) · CPC title

  • G06F16/288Primary

    Entity relationship models · CPC title

  • G06F16/212Primary

    with details for data modelling support · CPC title

  • Query processing · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2020226156A1 cover?
Embodiments of the invention identify entities stored within or across a number of data stores and identify relationships between the entities. A relationships graph is generated that represents the entities and the identified relationships between entities, the relationships graph comprising nodes in the relationships graph to represent one or more entities and edges between any two nodes in t…
Who is the assignee on this patent?
Salesforce Com Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/288. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jul 16 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).