Reasonable

An OWL 2 RL reasoner with reasonable performance.

Reasonable materialises the deductive closure of an RDF graph under the OWL 2 RL profile. It is implemented in Rust and exposed through a command-line tool and Python bindings.

PyPI

pip install reasonable

Cargo (CLI)

cargo install reasonable-cli

GitHub

https://github.com/gtfierro/reasonable

License

BSD-3-Clause

Performance

Benchmarked on Brick models of varying sizes, Reasonable is roughly 7× faster than Allegro and 38× faster than OWLRL.

Quick start

CLI — load one or more Turtle/N3 files and write the materialised output:

reasonable ontology.ttl data.ttl -o output.ttl

Python — reason over an rdflib graph:

import rdflib
import reasonable

g = rdflib.Graph()
g.parse("ontology.ttl")
g.parse("data.ttl")

r = reasonable.PyReasoner()
r.from_graph(g)
triples = r.reason()

Contents