SkillAgentSearch skills...

Nemo

A fast in-memory rule engine

Install / Use

/learn @knowsys/Nemo
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Nemo

Build and Test main Documentations dependency status built with nix Gitter

Nemo is a datalog-based rule engine for fast and scalable analytic data processing in memory. It is available as a command-line tool nmo, through bindings to other programming languages, and via a browser-based web application.

<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/knowsys/nemo-doc/main/logo/build/with-text/nemo-logo-rusty-bright.svg"> <img width="40%" alt="Nemo logo" src="https://raw.githubusercontent.com/knowsys/nemo-doc/main/logo/build/with-text/nemo-logo-rusty.svg"> </picture> </p>

Goals of Nemo are performance, declarativity, versatility, and reliability. It is written in Rust. Nemo's data model aims at compatibility with RDF/SPARQL while preserving established logic programming conventions and features. The following formats are currently supported:

Nemo's datatypes allow the use of RDF-style data values but also "plain" names and constants in any of these formats.

The following publication gives a first overview of the system and can be used for citing Nemo:

  • Alex Ivliev, Lukas Gerlach, Simon Meusel, Jakob Steinberg, Markus Krötzsch: Nemo: Your Friendly and Versatile Rule Reasoning Toolkit. Proceedings of the 21st International Conference on Principles of Knowledge Representation and Reasoning (KR 2024), p743-754. IJCAI Organization, 2024. <a href="https://iccl.inf.tu-dresden.de/w/images/f/fb/KR-2024-CR.pdf">PDF</a>, <a href="https://iccl.inf.tu-dresden.de/web/Inproceedings3390">bibtex</a>

Nemo is in heavy development and the current releases should still be considered unstable.

Trying Nemo online

We provide a live online demo that you can try in your browser. The application is based on the Nemo browser integration and runs entirely on your browser. Performance will therefore vary depending on your machine and browser (we found Firefox to be fastest).

Help

Detailed information for users and developers is found in the Nemo documentation. Feel free to use GitHub discussions to ask questions or talk about Nemo.

For quick questions and discussions, we also provide a public community chatroom, which can also be accessed from any Matrix client as #nemo_community:gitter.im.

Bug reports are also very welcome.

Installation

The fastest way to run Nemo is to use system-specific binaries of our command-line client. Archives with pre-compiled binaries for various platforms are available from the Nemo releases page. To build your own version from source, you need to have an up-to-date installation of Rust. Moreover, Nemo requires the following dependency on Linux/Unix systems:

  • OpenSSL development packages (e.g., libssl-dev on Ubuntu or openssl-devel on Fedora; you may also need to install pkg-config)

Download the source code (from a release or this repository) and run

cargo build -r

This will create the command-line client nmo in the directory ./target/release/.

Usage

Run the following command for an overview of current options:

nmo --help

Further details are found in the Nemo CLI documentation. Example Nemo programs and datasets can be found in the Nemo Examples repository.

License

This project is licensed under either of

  • Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Nemo by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Development

We use the following commands before committing:

  • cargo fmt for our default formatting
  • cargo clippy --all-targets, followed by a (manual) repair of any issues

Acknowledgements

Nemo is developed by the Knowledge-Based Systems group at TU Dresden. Github provides the list of code contributors.

Special thanks are due to VLog, the conceptual predecessor of Nemo and a source of some of the tricks we use.

Made with ❤️ in Dresden.

View on GitHub
GitHub Stars242
CategoryDevelopment
Updated1d ago
Forks16

Languages

Rust

Security Score

100/100

Audited on Apr 9, 2026

No findings