ITEA is the Eureka Cluster on software innovation
ITEA is the Eureka Cluster on software innovation
ITEA 4 page header azure circular

Datalog Reasoner Nemo

Project
20054 InnoSale
Type
New system
Description

Nemo is a new logic programming engine with a focus on reliability and performance. Nemo is built for data-centric analytic computations, modelled in a fully declarative Datalog dialect. Its scalability for these tasks matches or exceeds that of leading Datalog systems. It provides a feature-rich rule language, which extends Datalog with many useful features like existential rules, arithmetic operations, and aggregates. Nemo provides bindings to other programming languages, and is accessible as a browser-based application from the web.

Nemo is available as open-source project on github.

Contact
Alex Ivliev
Email
alex.ivliev@tu-dresden.de
Research area(s)
Knowledge Representation and Reasoning, Logic Programming
Technical features

Nemo works on a custom Datalog dialect that modifies common notation from logic programming to accommodate the more flexible and accurate data model from the W3C RDF and SPARQL standards. More specifically, the rule language extends Datalog with existential quantifiers (tuple-generating dependencies), stratified negation, numeric data types, arithmetic operations, numeric comparison, and aggregation. Nemo can also provided explanations for derived facts during the reasoning process.

The following input and output formats are currently: CSV, TSV, DSV, N-Triples, Turtle, RDF/XML, N-Quads, TriG.

The system is fast and memory-efficient, which allows for reasoning on large knowledge graphs and ontologies, containing several millions of input facts, on commonly available hardware.

Integration constraints

Nemo is primarily used as a command-line tool. As it is written in Rust, it is easy to compile it from source for all common platforms, including Linux, Windows, and MacOS. Furthermore, pre-compiled binaries for Windows and Linux are provided. Both, the source-code and the current releases, can be accessed from the github page: https://github.com/knowsys/nemo.

Nemo can also be accessed through bindings to other programming languages like Python and JavaScript (via Web-Assembly). In addition, the tool is available a browser-based web application: https://tools.iccl.inf.tu-dresden.de/nemo/

Targeted customer(s)

Nemo is targeted towards data engineers, data scientist, and researches within the knowledge representation and reasoning community. The tool can also be used for a wide variety of reasoning tasks within industry applications.

Conditions for reuse

This project is licensed under either Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0), or MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT) at your option.

Confidentiality
Public
Publication date
28-04-2023
Involved partners
Technische Universität Dresden (DEU)