Web: https://deepcausality.com
DeepCausality is a hyper-geometric computational causality library that enables fast and deterministic context-aware causal reasoning over complex multi-stage causality models. Deep Causality adds only minimal overhead and thus is suitable for real-time applications without additional acceleration hardware.
DeepCausality is hosted as a sandbox project in the LF AI & Data Foundation.
- DeepCausality is written in Rust with safety, reliability, and performance in mind.
- DeepCausality provides recursive causal data structures that concisely express arbitrary complex causal structures.
- DeepCausality enables context awareness across data-like, time-like, space-like, spacetime-like entities stored within (multiple) context-hyper-graphs.
- DeepCausality simplifies modeling of complex tempo-spatial patterns.
- DeepCausality comes with Causal State Machine (CSM)
In your project folder, just run in a terminal:
cargo add deep_causality
See the starter example.
git clone https://github.com/deepcausality-rs/deep_causality.git
cd deep_causality
make example
You can also run the example code from the project root with cargo:
# make sure you're in the project root folder
cd deep_causality
# CSM (Causal State Machine)
cargo run --release --bin example-csm
# CTX (Context)
cargo run --release --bin example-ctx
# Smoking inference
cargo run --release --bin example-smoking
# Getting started example
cargo run --release --bin starter
Docs:
Code:
Cargo works as expected, but in addition to cargo, a makefile exists that abstracts over several additional tools you may have to install before all make commands work. To do so, please run the following command:
make install
The make install command tests and tries to install all required developer dependencies. if the automatic install fails, the script will show a link with further installation instructions.
After all dependencies have been installed, the following commands are ready to use.
make build Builds the code base incrementally (fast) for dev.
make bench Runs all benchmarks across all crates.
make check Checks the code base for security vulnerabilities.
make example Runs the example code.
make fix Fixes linting issues as reported by clippy
make format Formats call code according to cargo fmt style
make install Tests and installs all make script dependencies
make start Starts the dev day with updating rust, pulling from git remote, and build the project
make test Runs all tests across all crates.
The scripts called by each make command are located in the script folder.
Contributions are welcomed especially related to documentation, example code, and fixes. If unsure where to start, open an issue and ask. For more significant code contributions, please run make test and make check locally before opening a PR.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in deep_causality by you, shall be licensed under the MIT license without additional terms or conditions.
For details:
The project took inspiration from several researchers and their projects in the field:
- Judea Pearl at UCLA
- Lucien Hardy at the Perimeter Institute
- Kenneth O. Stanley at OpenAI
- Ilya Shpitser at Johns Hopkins University
- Miguel Hernan, Causal Lab at Harvard University
- Elias Bareinboim at Columbia University
- Causality and Machine Learning at Microsoft Research
- Causal ML at uber.
Parts of the implementation are inspired by:
Finally, inspiration, especially related to the hypergraph structure, was derived from reading the Quanta Magazine.
This project is licensed under the MIT license.
For details about security, please read the security policy.
JetBrains, the premier software development tool provider, has granted a free all-product license under its open-source community support program to the DeepCausality project. The project team expresses its gratitude towards JetBrains generous contribution. Thank you for your commitment to OSS development!
- Marvin Hansen.
- Github GPG key ID: 369D5A0B210D39BC
- GPG Fingerprint: 4B18 F7B2 04B9 7A72 967E 663E 369D 5A0B 210D 39BC