Science Score: 52.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
✓Institutional organization owner
Organization knowsys has institutional domain (kbs.inf.tu-dresden.de) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.4%) to scientific vocabulary
Keywords
Repository
A fast in-memory rule engine
Basic Info
- Host: GitHub
- Owner: knowsys
- License: apache-2.0
- Language: Rust
- Default Branch: main
- Homepage: https://knowsys.github.io/nemo-doc/
- Size: 7.13 MB
Statistics
- Stars: 163
- Watchers: 12
- Forks: 8
- Open Issues: 41
- Releases: 10
Topics
Metadata Files
README.md
Nemo
Nemo is a 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 following formats are currently supported: - Input: CSV, TSV, DSV, N-Triples, Turtle, RDF/XML, N-Quads, TriG - Rules: datalog dialect with support for existential rules (tuple-generating dependencies), stratified negation, and datatypes (including numeric comparison and arithmetic functions) - Output: CSV, TSV, DSV, N-Triples, Turtle, RDF/XML, N-Quads, TriG
Nemo's datatypes allow the use of RDF-style data values but also "plain" names and constants in any of these formats.
The following publication gives a first overview of the system and can be used for citing Nemo:
- Alex Ivliev, Lukas Gerlach, Simon Meusel, Jakob Steinberg, Markus Krötzsch: Nemo: Your Friendly and Versatile Rule Reasoning Toolkit. Proceedings of the 21st International Conference on Principles of Knowledge Representation and Reasoning (KR 2024), p743-754. IJCAI Organization, 2024. PDF, bibtex
Nemo is in heavy development and the current releases should still be considered unstable.
Trying Nemo online
We provide a live online demo that you can try in your browser. The application is based on the Nemo browser integration and runs entirely on your browser. Performance will therefore vary depending on your machine and browser (we found Firefox to be fastest).
Installation
The fastest way to run Nemo is to use system-specific binaries of our command-line client.
Archives with pre-compiled binaries for various platforms are available from the
Nemo releases page.
To build your own version from source, you need to have an up-to-date installation of Rust.
Moreover, Nemo requires the following dependency on Linux/Unix systems:
- OpenSSL development packages (e.g., libssl-dev on Ubuntu or openssl-devel on Fedora; you may also need to install pkg-config)
Download the source code (from a release or this repository) and run
cargo build -r
This will create the command-line client nmo in the directory ./target/release/.
Usage
Run the following command for an overview of current options:
nmo --help
Further details are found in the Nemo client documentation. Example Nemo programs and datasets can be found in the Nemo Examples repository.
Help
Detailed information for users and developers is found in the Nemo documentation. Feel free to use GitHub discussions to ask questions or talk about Nemo.
Bug reports are also very welcome.
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Nemo by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Development
We use the following commands before committing:
- cargo fmt for our default formatting
- cargo clippy --all-targets, followed by a (manual) repair of any issues
Acknowledgements
Nemo is developed by the Knowledge-Based Systems group at TU Dresden. Github provides the list of code contributors.
Special thanks are due to VLog, the conceptual predecessor of Nemo and a source of some of the tricks we use.
Made with ❤️ in Dresden.
Owner
- Name: Knowledge-Based Systems
- Login: knowsys
- Kind: organization
- Location: Dresden, Germany
- Website: https://kbs.inf.tu-dresden.de
- Repositories: 19
- Profile: https://github.com/knowsys
Projects affiliated with the KBS research group at TU Dresden (note: hosting content here does not establish any formal or legal relation to TU Dresden)
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: Nemo
message: >-
If you use this software, please cite it using the
metadata from this file. Note that the related conference
paper is accepted and will appear soon.
type: software
authors:
- given-names: Alex
family-names: Ivliev
email: alex.ivliev@tu-dresden.de
affiliation: "Knowledge-Based Systems, TU Dresden"
orcid: "https://orcid.org/0000-0002-1604-6308"
- given-names: Stefan
family-names: Ellmauthaler
email: stefan.ellmauthaler@tu-dresden.de
affiliation: "Knowledge-Based Systems, TU Dresden"
orcid: "https://orcid.org/0000-0003-3882-4286"
- given-names: Lukas
family-names: Gerlach
email: lukas.gerlach@tu-dresden.de
affiliation: "Knowledge-Based Systems, TU Dresden"
orcid: "https://orcid.org/0000-0003-4566-0224"
- given-names: Markus
family-names: Krötzsch
email: markus.kroetzsch@tu-dresden.de
affiliation: "Knowledge-Based Systems, TU Dresden"
orcid: "https://orcid.org/0000-0002-9172-2601"
- given-names: Maximilian
family-names: Marx
email: maximilian.marx@tu-dresden.de
affiliation: "Knowledge-Based Systems, TU Dresden"
orcid: "https://orcid.org/0000-0003-1479-0341"
- given-names: Simon
family-names: Meusel
email: simon.meusel@mailbox.tu-dresden.de
affiliation: "Knowledge-Based Systems, TU Dresden"
- given-names: Jakob
family-names: Steinberg
email: jakob_maximilian.steinberg@mailbox.tu-dresden.de
affiliation: "Knowledge-Based Systems, TU Dresden"
repository-code: "https://github.com/knowsys/nemo"
url: "https://knowsys.github.io/nemo-doc/"
abstract: >-
Nemo is a 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.
keywords:
- Reasoning System
- Datalog
- Existential Rules
license: Apache-2.0
commit: 349e183c771ba4df93e8c6037c24d13c48636a83
version: 0.6.0
date-released: '2024-06-06'
preferred-citation:
authors:
- given-names: Alex
family-names: Ivliev
email: alex.ivliev@tu-dresden.de
affiliation: "Knowledge-Based Systems, TU Dresden"
orcid: "https://orcid.org/0000-0002-1604-6308"
- given-names: Lukas
family-names: Gerlach
email: lukas.gerlach@tu-dresden.de
affiliation: "Knowledge-Based Systems, TU Dresden"
orcid: "https://orcid.org/0000-0003-4566-0224"
- given-names: Simon
family-names: Meusel
email: simon.meusel@mailbox.tu-dresden.de
affiliation: "Knowledge-Based Systems, TU Dresden"
- given-names: Jakob
family-names: Steinberg
email: jakob_maximilian.steinberg@mailbox.tu-dresden.de
affiliation: "Knowledge-Based Systems, TU Dresden"
- given-names: Markus
family-names: Krötzsch
email: markus.kroetzsch@tu-dresden.de
affiliation: "Knowledge-Based Systems, TU Dresden"
orcid: "https://orcid.org/0000-0002-9172-2601"
title: "Nemo: Your Friendly and Versatile Rule Reasoning Toolkit"
type: conference-paper
conference:
name: "21st International Conference on Principles of Knowledge Representation and Reasoning"
location: Hanoi, Vietnam
alias: KR
website: "https://kr.org/KR2024/"
date-start: 2024-11-02
date-end: 2024-11-08
collection-title: "Proceedings of the 21st International Conference on Principles of Knowledge Representation and Reasoning (KR 2024)"
publisher: "International Joint Conferences on Artificial Intelligence Organization"
year: 2024
GitHub Events
Total
- Create event: 92
- Release event: 2
- Issues event: 136
- Watch event: 78
- Delete event: 85
- Member event: 1
- Issue comment event: 108
- Push event: 364
- Pull request review comment event: 252
- Pull request review event: 249
- Pull request event: 125
- Fork event: 2
Last Year
- Create event: 92
- Release event: 2
- Issues event: 136
- Watch event: 78
- Delete event: 85
- Member event: 1
- Issue comment event: 108
- Push event: 364
- Pull request review comment event: 252
- Pull request review event: 249
- Pull request event: 125
- Fork event: 2
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 124
- Total pull requests: 99
- Average time to close issues: 2 months
- Average time to close pull requests: 4 days
- Total issue authors: 15
- Total pull request authors: 7
- Average comments per issue: 0.95
- Average comments per pull request: 0.35
- Merged pull requests: 83
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 63
- Pull requests: 60
- Average time to close issues: 17 days
- Average time to close pull requests: 5 days
- Issue authors: 13
- Pull request authors: 6
- Average comments per issue: 0.6
- Average comments per pull request: 0.47
- Merged pull requests: 48
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- aannleax (35)
- Laschoking (23)
- mmarx (21)
- matzemathics (20)
- monsterkrampe (16)
- henrietteharmse (11)
- eilmiv (10)
- mkroetzsch (8)
- stefborg (4)
- rlwww (4)
- Luke-ebbis (2)
- ellmau (2)
- maphih (1)
- phochste (1)
- younes-io (1)
Pull Request Authors
- aannleax (42)
- matzemathics (31)
- mmarx (30)
- monsterkrampe (21)
- Laschoking (17)
- aidan-bailey (6)
- mkroetzsch (6)
- logicallangs (1)
- rlwww (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v3 composite
- hecrj/setup-rust-action v1 composite
- actions/checkout v3 composite
- hecrj/setup-rust-action v1 composite
- DeterminateSystems/magic-nix-cache-action v2 composite
- DeterminateSystems/nix-installer-action v4 composite
- actions/checkout v3 composite
- PyO3/maturin-action v1 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- hecrj/setup-rust-action v1 composite
- actions/checkout v3 composite
- actions/upload-release-asset v1.0.2 composite
- hecrj/setup-rust-action v1 composite
- 350 dependencies
- assert_fs 1.0 development
- env_logger * development
- quickcheck 1 development
- quickcheck_macros 1 development
- test-log 0.2 development
- ascii_tree 0.1.1
- bytesize 1.2
- csv 1.1.6
- flate2 1
- getrandom 0.2.9
- log 0.4
- nom 7.1.1
- nom_locate 4.1.0
- num 0.4.0
- oxiri 0.2.2
- path-slash 0.2.1
- petgraph 0.6.3
- rand 0.8.5
- reqwest 0.11.18
- rio_api 0.8.4
- rio_turtle 0.8.4
- rio_xml 0.8.4
- sanitise-file-name 1.0.0
- thiserror 1.0
- tokio 1.29.1
- criterion 0.5 development
- env_logger * development
- polars 0.30 development
- rand_pcg 0.3 development
- rand 0.8.5
- assert_cmd 2.0 development
- assert_fs 1.0.13 development
- dir-test 0.1 development
- predicates 3.0 development
- test-log 0.2 development
- clap 4.0.32
- colored 2
- env_logger *
- log 0.4
- arbitrary 1 development
- env_logger * development
- quickcheck 1 development
- quickcheck_macros 1 development
- rand 0.8 development
- test-log 0.2 development
- ascii_tree 0.1.1
- bytesize 1.2
- howlong 0.1
- linked-hash-map 0.5.6
- log 0.4
- num 0.4.0
- once_cell 1
- reqwest 0.11.18
- rio_turtle 0.8.4
- rio_xml 0.8.4
- thiserror 1.0