Nemo

From International Center for Computational Logic

Nemo

A fast, scalable, and reliable rule engine

Nemo is a free, 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.

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 rule language supported by Nemo is an extension of Datalog that incorporates, among others, the following features:

  • Datatypes with suitable built-in predicates and functions (e.g., arithmetic comparisons and operations)
  • Existential rules (a.k.a. tuple-generating dependencies)
  • Stratified negation

Nemo can be used for data analysis, query answering, data integration, and also specialised tasks such as program analysis or ontological reasoning. It allows the use of multiple datasources at the same time, of various types and formats (RDF graphs, CSV files, etc.).

Nemo is a successor project of VLog, and uses some of the same techniques (esp. columnar storage), but has a completely new architecture and implementation that enables Nemo to support further features while achieving faster performance.


Proceedings Articles

Alex Ivliev, Stefan Ellmauthaler, Lukas Gerlach, Maximilian Marx, Matthias Meißner, Simon Meusel, Markus Krötzsch
Nemo: First Glimpse of a New Rule Engine
In Enrico Pontelli, Stefania Costantini, Carmine Dodaro, Sarah Gaggl, Roberta Calegari, Artur D'Avila Garcez, Francesco Fabiano, Alessandra Mileo, Alessandra Russo, Francesca Toni, eds., Proceedings 39th International Conference on Logic Programming (ICLP 2023), volume 385 of EPTCS, 333--335, September 2023
Details Download