knowsys/nemo
A fast in-memory rule engine
Nemo – A Fast, In‑Memory Datalog Engine
What it is
- Nemo is a rule‑engine that lets you write Datalog programs (logic rules) to query and transform data. It runs entirely in memory and is built for speed.
- Implemented in Rust, it ships as a command‑line tool (
nmo), language bindings, and a browser‑based UI.
Why it matters
- Datalog is a declarative language often used for knowledge‑graph reasoning, data integration, and static analysis. Nemo aims to combine the performance of low‑level systems with the ease of a high‑level, logic‑based query language.
- Its data model is compatible with RDF and SPARQL, so it can be used as a lightweight reasoning engine for semantic‑web datasets.
Key features (as described in the README)
| Category | Details |
|---|---|
| Performance & scalability | In‑memory execution, written in Rust, supports large analytic workloads. |
| Declarative rule language | Datalog dialect with stratified negation, arithmetic, aggregates, and existential rules (TGDs). |
| Data format support | Input/Output: CSV, TSV, generic DSV, N‑Triples, Turtle, RDF/XML, N‑Quads, TriG, and direct SPARQL endpoint access. |
| Interoperability | Command‑line client (nmo), language bindings, and a web UI that runs fully in the browser. |
| Compatibility | Designed to work with RDF/SPARQL data models while keeping classic logic‑programming semantics. |
| Open source | Dual‑licensed under Apache‑2.0 and MIT; contributions welcome. |
How to get started
- Install – Grab a pre‑compiled binary from the releases page or build from source with
cargo build -r(requires Rust and OpenSSL dev libs on Linux). - Run –
nmo --helpshows the CLI options. Example programs and datasets are in the separate nemo‑examples repo. - Explore – Try the live demo at https://tools.iccl.inf.tu-dresden.de/nemo/ which runs the engine directly in your browser.
- Learn more – Full documentation, tutorials, and API references are at https://knowsys.github.io/nemo-doc/.
Typical use cases
- Reasoning over RDF knowledge graphs (e.g., infer new triples from existing data).
- Complex data‑integration pipelines where rules combine CSV/TSV sources with semantic data.
- Academic research on logic programming, rule reasoning, or knowledge representation.
Project status
- The README notes that Nemo is under heavy development and current releases are unstable—expect frequent updates and possible breaking changes.
Community
- Discussions on GitHub, a Gitter/Matrix chatroom, and an active documentation site.
Bottom line Nemo provides a fast, Rust‑based Datalog engine that bridges traditional logic programming with modern RDF/SPARQL ecosystems, making it useful for anyone needing high‑performance rule reasoning over structured data.
Related
- Project
- Project
- Project
- Project