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
- 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 provide 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)