System and method for analysis of graph databases using intelligent reasoning systems
A system for analyzing graph databases using intelligent reasoning systems including scalable collection of, and transformation of, graph data into facts suitable for use with programming logic languages doing deductive reasoning. A graph analyzer ingests disparate graph data from across the Internet and transforms the graph data into a fact table. In order to reduce latency and processing congestion, a stream processing engine and sharding strategy are employed to ensure scalability through parallelized processing of programming logic queries. Transformed graph data, now relational data, is utilized with programming logic languages that allow for hypothetical queries whereby an inference engine can deduce new information to satisfy such a query. Furthermore, the self-contained nature of inputs, outputs, and transformations of the system means strict data provenance can be observed and adhered to.
1. A system for analyzing graph databases using intelligent reasoning systems including scalable collection of, and transformation of, graph data into facts for use with programming logic languages for deductive reasoning, comprising:
a computing device comprising a memory, a processor, and a non-volatile data storage device;
a stream processing engine comprising a first plurality of programming instructions stored in the memory of, and operating on the processor of, the computing device, wherein the first plurality of programming instructions, when operating on the processor, cause the computing device to:
receive an ontology-mediated query, wherein the ontology-mediated query is constructed by a programming logic language;
ingest one or more graph-based databases related to the ontology-mediated query;
determine a conversion configuration for each graph-based database, the conversion configuration comprising a storage technology and data model of that graph-based database and a storage format and model format for a fact table into which the graph-based database is to be converted; and
send the conversion configuration of each graph-based database to a translation service;
a translation service comprising a second plurality of programming instructions stored in the memory of, and operating on the processor of, the computing device, wherein the second plurality of programming instructions, when operating on the processor, cause the computing device to:
convert each graph-based database to facts suitable for use with programming logic languages for deductive reasoning, wherein the conversion is based on the identified storage technology and data model; and
send the facts suitable for use with programming logic languages for deductive reasoning to a sharding service;
a sharding service comprising a third plurality of programming instructions stored in the memory of, and operating on the processor of, the computing device, wherein the third plurality of programming instructions, when operating on the processor, cause the computing device to:
combine the facts suitable for use with programming logic languages for deductive reasoning from the graph-based databases into the fact table; and
a semantic reasoner comprising a fourth plurality of programming instructions stored in the memory of, and operating on the processor of, the computing device, wherein the fourth plurality of programming instructions, when operating on the processor, cause the computing device to:
satisfy the ontology-mediated query by analyzing the fact table; and
output the ontology-mediated query results.
2. The system of claim 1 , further comprising an event log, wherein the event log provides a means for data provenance.
3. The system of claim 1 , wherein the stream processing engine uses distributed computing to process the ontology-mediated query.
4. The system of claim 1 , further comprising a semantic reasoner.
5. The system of claim 4 , wherein the semantic reasoner deduces new information from the fact table.
6. The system of claim 5 , wherein the new information is integrated into the fact table.
7. The system of claim 6 , wherein the semantic reasoner uses the fact table to satisfy a hypothetical query.
8. A method analyzing graph databases using intelligent reasoning systems including scalable collection of, and transformation of, graph data into facts for use with programming logic languages for deductive reasoning, comprising the steps of:
receiving an ontology-mediated query, wherein the ontology-mediated query is constructed by a programming logic language;
ingesting one or more graph-based databases related to the ontology-mediated query;
determining a conversion configuration for each graph-based database, the conversion configuration comprising a storage technology and data model of that graph-based database and a storage format and model format for a fact table into which the graph-based database is to be converted; and
converting each graph-based database to facts suitable for use with programming logic languages for deductive reasoning, wherein the conversion is based on the identified storage technology and data model;
combining the facts suitable for use with programming logic languages for deductive reasoning from the graph-based databases into the fact table; and
providing the fact table to the programming logic language to satisfy the ontology-mediated query;
satisfying the ontology-mediated query by analyzing the fact table; and
outputting the ontology-mediated query results.
9. The method of claim 8 , further comprising an event log, wherein the event log provides a means for data provenance.
10. The method of claim 8 , wherein the stream processing engine uses distributed computing to process the ontology-mediated query.
11. The method of claim 8 , further comprising a semantic reasoner.
12. The method of claim 11 , wherein the semantic reasoner deduces new information from the fact table.
13. The method of claim 12 , wherein the new information is integrated into the fact table.
14. The method of claim 13 , wherein the semantic reasoner uses the fact table to satisfy a hypothetical query.