/greycat

GreyCat - Data Analytics, Temporal data, What-if, Live machine learning

Primary LanguageJavaApache License 2.0Apache-2.0

- This repository contains the legacy version of GreyCat. 
! DataThings crew is about to disclose a new, faster, ligher native GreyCat. Stay tuned and follow us on twitter/facebook or

GreyCat - Next-Gen Live Analytics using Temporal Graph

Join the chat at https://gitter.im/datathings/greycat Build Status

The GreyCat escaped the quantum box by evaluating all many-worlds alternatives...now let's see how he can help you do the same with your data and critical business analytics!

What is GreyCat?

GreyCat is the first Temporal Many-World Graph database. In a nutshell, this project defines a graph storage and processing framework that allows you to store and analyze highly interconnected complex data structures and rapidly evolving over time. This data structure can be as well infinitely cloneable in order to evaluate potential alternatives modifications to find the best one. To sum up GreyCat is a core data structure framework to build for businesses, a live reasoning engine that can handle simulations and analytics over data in motion.
Let's list the different features of GreyCat:

What is a graph?

Graphs allow to organize and structure data in the form of a set of nodes and relationships between these nodes. Each node can carry several attributes (for ex. name, address, position, etc). Nodes can have several relationships between them.

What is a temporal graph?

Data in real-life applications is barely static, think of social network graphs, i.e., graphs evolve and change over time. GreyCat adds time as a first-class entity to the graph. Therefore, all nodes, attributes and relationships can change over time.

What is a Temporal Many-World Graph?

After managing the time, GreyCat allows you to run simulations over the temporal graph. Inspired from the Many-World interpretation in physics, GreyCat allows you to fork the current database in order to simulate what-if scenarios. For example, this technique allows you to simulate for example what will happen if in an hypothetical action was taken without corrupting the current state of the graph.

To do what?

In short, analyzing data in motion! In many domains data coming from different devices and at different frequencies, has to be aggregated in a coherent view in order to reason and take decisions. To reach such goal GreyCat includes various machine learning algorithms. Here are some example of applications where GreyCat is useful: IoT systems, cyber-physical systems like smart Grid, trading, and simulation engines.

Who are we?

We are a startup of four passionate researchers holding PhDs in Computer Science. After several years of successful collaboration at the University of Luxembourg/SnT, we founded DataThings to start the next chapter in live data analytics. DataThings goal will be to develop a commercial activity around GreyCat in order to keep the development of the framework alive.

How to start?

Here are the essential information for a quick start:

How to build

  • requirements: NodeJS (since V8), NPM (since V5), Java (since V8), Maven (since V3.3)
  • then npm config set @greycat:registry https://registry.datathings.com/repository/npm-public/
  • then mvn clean install

In case of troubles or questions ?

Please contact us via our Github for questions, pull request, or feature requests.