Ontology driven data synchronization mechanism
Implementations include obtaining a knowledge graph comprising a computer-readable data structure and including nodes and connections between the nodes, the nodes including: data nodes each representing a computational resource, analysis nodes each representing an analysis, and source nodes each representing a source of a data element; and determining, using the knowledge graph, an access strategy and a synchronization strategy for performing an analysis, by, automatically: identifying a first source node representing a source of a data element on which the analysis is to be performed, identifying a first data node representing a computational resource on which the analysis is to run, identifying a second data node representing a computational resource on which the data element is to reside, determining the access strategy between the first source node and the second data node, and determining the synchronization strategy between the first data node and the second data node.
1 . A computer-implemented method executed by one or more processors and comprising:
importing knowledge elements, the knowledge elements include an infrastructure context, analytics scripts, and a composite ontology,
uploading information about the infrastructure context, the analytics scripts, and the composite ontology resulting in knowledge, wherein the knowledge is represented in a knowledge graph having an initial state representing disjoint knowledge instances of data sources, and
wherein the knowledge graph includes a set of nodes, the set of nodes including:
analysis nodes, each analysis node representing an analysis,
data nodes, each data node representing a computational resource, and
ontology nodes, each ontology node representing an axiom of a data ontology;
connecting, in an interlace step, sources of information to create a knowledge graph instance of the knowledge graph, wherein the knowledge graph instance represents a raw data mesh,
wherein the raw data mesh is a fully connected graph, with the analysis nodes connected to any data nodes that represent computational resources that are available to perform the analysis,
wherein the interlace step includes connecting the analysis nodes with other analysis nodes,
wherein the interlace step includes connecting the data nodes with the analysis nodes to generate a default setting for all analysis availability on the data nodes, and
wherein the interlace step includes connecting the data nodes with the ontology nodes by mapping a data schema to an ontology schema;
applying rules and constraints to limit the connections of the analysis nodes to the data nodes,
generating a functional data mesh by applying the rules to identify a set of computational resources to support the analysis, and
wherein the functional data mesh includes, for each analysis node, a direct or indirect connection to at least one data node;
optimizing the functional data mesh to generate a recommended data mesh, wherein optimizing the functional data mesh includes removing the data nodes that are not needed for deploying the recommended data mesh;
obtaining an updated knowledge graph representing the recommended data mesh, the updated knowledge graph comprising a computer-readable data structure and including nodes and connections between the nodes:
and
determining, using the updated knowledge graph, an access strategy and a synchronization strategy for performing an analysis, by, automatically:
identifying, within the updated knowledge graph, a first source node representing a source of a data element on which the analysis is to be performed,
identifying, within the updated knowledge graph, a first data node representing a computational resource on which the analysis is to run,
identifying, within the updated knowledge graph, a second data node representing a computational resource on which the data element is to reside,
determining the access strategy between the first source node and the second data node, and
determining the synchronization strategy between the first data node and the second data node.
2 . The method of claim 1 , wherein identifying the first data node representing the computational resource on which the analysis is to run comprises identifying, within the updated knowledge graph, a connection between the first data node and a first analysis node representing the analysis to be performed.
3 . The method of claim 1 , wherein the nodes include ontology nodes, each ontology node representing the axiom of the data ontology,
wherein identifying, within the updated knowledge graph, the first source node representing the source of the data element on which the analysis is to be performed comprises:
identifying, within the updated knowledge graph, a connection between a first ontology node and a first analysis node representing the analysis to be performed; and
identifying, within the updated knowledge graph, a connection between the first source node and the first ontology node.
4 . The method of claim 1 , wherein determining the access strategy comprises selecting, from the updated knowledge graph, a connection between the first source node and the second data node representing a path for transferring data between the first source node and the second data node.
5 . The method of claim 1 , wherein the first data node is different from the second data node, and determining the access strategy comprises selecting, from the updated knowledge graph, a connection between the first data node and the second data node representing a path for transferring the data element between the first data node and the second data node.
6 . The method of claim 1 , wherein the first data node is the same as the second data node.
7 . The method of claim 1 , wherein identifying, within the updated knowledge graph, the first data node representing the computational resource on which the analysis is to run comprises:
evaluating a plurality of data nodes using a cost function; and
selecting, from the plurality of data nodes, the first data node based on the evaluation of the plurality of data nodes.
8 . The method of claim 1 , comprising:
identifying, within the updated knowledge graph, a third data node representing a computational resource on which a backup of the data element is to reside, the method comprising:
determining a synchronization strategy between the second data node and the third data node.
9 . The method of claim 1 , wherein the source of the data element comprises one of a sensor, a file, or a database.
10 . The method of claim 1 , wherein the synchronization strategy defines a frequency of data synchronization between the first data node and the second data node.
11 . The method of claim 1 , wherein the synchronization strategy defines a direction of data transfer between the first data node and the second data node.
12 . The method of claim 1 , comprising determining the synchronization strategy based on a type of data of the data element.
13 . The method of claim 1 , comprising determining the synchronization strategy based on a type of the analysis.
14 . The method of claim 1 , wherein a connection between two data nodes represents a data transfer path between computational resources represented by the two data nodes.
15 . The method of claim 1 , wherein a connection between a source node and a data node represents a data transfer path between the source represented by the source node and the computational resource represented by the data node.
16 . A non-transitory computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
importing knowledge elements, the knowledge elements include an infrastructure context, analytics scripts, and a composite ontology,
uploading information about the infrastructure context, the analytics scripts, and the composite ontology resulting in knowledge, wherein the knowledge is represented in a knowledge graph having an initial state representing disjoint knowledge instances of data sources, and
wherein the knowledge graph includes a set of nodes, the set of nodes including:
analysis nodes, each analysis node representing an analysis,
data nodes, each data node representing a computational resource, and
ontology nodes, each ontology node representing an axiom of a data ontology;
connecting, in an interlace step, sources of information to create a knowledge graph instance of the knowledge graph, wherein the knowledge graph instance represents a raw data mesh,
wherein the raw data mesh is a fully connected graph, with the analysis nodes connected to any data nodes that represent computational resources that are available to perform the analysis,
wherein the interlace step includes connecting the analysis nodes with other analysis nodes,
wherein the interlace step includes connecting the data nodes with the analysis nodes to generate a default setting for all analysis availability on the data nodes, and
wherein the interlace step includes connecting the data nodes with the ontology nodes by mapping a data schema to an ontology schema;
applying rules and constraints to limit the connections of the analysis nodes to the data nodes,
generating a functional data mesh by applying the rules to identify a set of computational resources to support the analysis, and
wherein the functional data mesh includes, for each analysis node, a direct or indirect connection to at least one data node;
optimizing the functional data mesh to generate a recommended data mesh, wherein optimizing the functional data mesh includes removing the data nodes that are not needed for deploying the recommended data mesh;
obtaining an updated knowledge graph representing the recommended data mesh, the updated knowledge graph comprising a computer-readable data structure and including nodes and connections between the nodes
and
determining, using the updated knowledge graph, an access strategy and a synchronization strategy for performing an analysis, by, automatically:
identifying, within the updated knowledge graph, a first source node representing a source of a data element on which the analysis is to be performed,
identifying, within the updated knowledge graph, a first data node representing a computational resource on which the analysis is to run,
identifying, within the updated knowledge graph, a second data node representing a computational resource on which the data element is to reside,
determining the access strategy between the first source node and the second data node, and
determining the synchronization strategy between the first data node and the second data node.
17 . The non-transitory computer-readable storage medium of claim 16 , wherein identifying the first data node representing the computational resource on which the analysis is to run comprises identifying, within the updated knowledge graph, a connection between the first data node and a first analysis node representing the analysis to be performed.
18 . The non-transitory computer-readable storage medium of claim 16 , wherein the updated knowledge graph includes ontology nodes, each ontology node representing an axiom of a data ontology,
wherein identifying, within the updated knowledge graph, the first source node representing the source of the data element on which the analysis is to be performed comprises:
identifying, within the updated knowledge graph, a connection between a first ontology node and a first analysis node representing the analysis to be performed; and
identifying, within the updated knowledge graph, a connection between the first source node and the first ontology node.
19 . The non-transitory computer-readable storage medium of claim 16 , wherein determining the access strategy comprises selecting, from the updated knowledge graph, a connection between the first source node and the second data node that represents a path for transferring data between the first source node and the second data node.
20 . A system, comprising:
a computing device; and
a computer-readable storage device coupled to the computing device and having instructions stored thereon which, when executed by the computing device, cause the computing device to perform operations comprising:
importing knowledge elements, the knowledge elements include an infrastructure context, analytics scripts, and a composite ontology,
uploading information about the infrastructure context, the analytics scripts, and the composite ontology resulting in knowledge, wherein the knowledge is represented in a knowledge graph having an initial state representing disjoint knowledge instances of data sources, and
wherein the knowledge graph includes a set of nodes, the set of nodes including:
analysis nodes, each analysis node representing an analysis,
data nodes, each data node representing a computational resource, and
ontology nodes, each ontology node representing an axiom of a data ontology;
connecting, in an interlace step, sources of information to create a knowledge graph instance of the knowledge graph, wherein the knowledge graph instance represents a raw data mesh,
wherein the raw data mesh is a fully connected graph, with the analysis nodes connected to any data nodes that represent computational resources that are available to perform the analysis,
wherein the interlace step includes connecting the analysis nodes with other analysis nodes,
wherein the interlace step includes connecting the data nodes with the analysis nodes to generate a default setting for all analysis availability on the data nodes, and
wherein the interlace step includes connecting the data nodes with the ontology nodes by mapping a data schema to an ontology schema;
applying rules and constraints to limit the connections of the analysis nodes to the data nodes,
generating a functional data mesh by applying the rules to identify a set of computational resources to support the analysis, and
wherein the functional data mesh includes, for each analysis node, a direct or indirect connection to at least one data node;
optimizing the functional data mesh to generate a recommended data mesh, wherein optimizing the functional data mesh includes removing the data nodes that are not needed for deploying the recommended data mesh;
obtaining an updated knowledge graph representing a recommended data mesh, the updated knowledge graph comprising a computer-readable data structure and including nodes and connections between the nodes;
and
determining, using the updated knowledge graph, an access strategy and a synchronization strategy for performing an analysis, by, automatically:
identifying, within the updated knowledge graph, a first source node representing a source of a data element on which the analysis is to be performed,
identifying, within the updated knowledge graph, a first data node representing a computational resource on which the analysis is to run,
identifying, within the updated knowledge graph, a second data node representing a computational resource on which the data element is to reside,
determining the access strategy between the first source node and the second data node, and
determining the synchronization strategy between the first data node and the second data node.