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 |
|
Cargo (CLI) |
|
GitHub |
|
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()