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

  1. 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).
  2. Run – nmo --help shows the CLI options. Example programs and datasets are in the separate nemo‑examples repo.
  3. Explore – Try the live demo at https://tools.iccl.inf.tu-dresden.de/nemo/ which runs the engine directly in your browser.
  4. 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