ontologos-core 0.9.0

In-memory OWL ontology data model — interned IRIs, typed axioms, and JSON v2 snapshots
Documentation

OntoLogos

CI Documentation crates.io License Rust

Native Rust ontology reasoning orchestration: load OWL files, detect profiles, and delegate to reasonable (RL/RDFS) and horned-owl (parsing) through stable facades. OWL EL uses the in-house completion engine in ontologos-el.

Try in 5 minutes: pip install ontologos or add ontologos-parser = "0.9.0" to Cargo.toml — no clone required.

Status: v0.9.0 ready on main (tag pending) — Python ecosystem: in-memory ontologies, explain(), incremental mutations. Not full OWL DL / HermiT replacement.

You need… Use today
Embed ontology graph in Rust ontologos-core
Load .owl / .ttl files ontologos-parser (horned-owl)
RDFS TBox inferences ontologos-rdfs → reasonable
OWL RL saturation ontologos-rl → reasonable
OWL EL taxonomy ontologos-el (in-house completion)
Engine adapters / conversions ontologos-bridge

5-minute try: Getting started · API: docs.rs/ontologos-core

Partial OWL mapping: axiom_count() reflects mapped axioms, not Protégé's total. See Supported constructs.

Install

Requires Rust 1.88+.

[dependencies]
ontologos-core = "0.9.0"
ontologos-parser = "0.9.0"
ontologos-profile = "0.9.0"
ontologos-bridge = "0.9.0"
ontologos-rdfs = "0.9.0"
ontologos-rl = "0.9.0"
ontologos-el = "0.9.0"
ontologos-query = "0.9.0"
ontologos-explain = "0.9.0"

Python: pip install ontologosOntology, Reasoner, explain(), incremental mutations (Python guide).

Quick start (crates.io)

No repository clone required — use any OWL file on disk:

cargo new ontologos-demo && cd ontologos-demo

Cargo.toml:

[package]
name = "ontologos-demo"
version = "0.1.0"
edition = "2021"

[dependencies]
ontologos-core = "0.9.0"
ontologos-parser = "0.9.0"
ontologos-rdfs = "0.9.0"

src/main.rs:

use ontologos_parser::load_ontology;
use ontologos_rdfs::RdfsEngine;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let path = std::path::Path::new("ontology.owl"); // your file here
    let mut ontology = load_ontology(path)?;

    let report = RdfsEngine::new().materialize(&mut ontology)?;
    println!(
        "mapped {}{} axioms (inferred {})",
        report.initial_axiom_count,
        report.final_axiom_count,
        report.inferred_total()
    );
    Ok(())
}
cargo run

OWL RL saturation, profile detection, and CLI examples: documentation site.

Quick start (repository clone)

For CLI, benchmarks, and full test suite:

git clone https://github.com/eddiethedean/ontologos.git
cd ontologos
./benchmarks/scripts/download.sh   # Pizza corpus; Family is vendored
cargo run -p ontologos-core --example pizza_builder
cargo build -p ontologos-cli --release
./target/release/ontologos materialize benchmarks/data/family.owl

CLI: classify --profile auto routes to EL or RL; use materialize for explicit RDFS. See CLI reference.

Workspace

Crate Description Published
ontologos-core Data model, builder, JSON v2 crates.io
ontologos-bridge core ↔ horned-owl/oxrdf adapters crates.io
ontologos-parser OWL/RDF loading (horned-owl) crates.io
ontologos-profile Profile detection crates.io
ontologos-rdfs RDFS facade → reasonable crates.io
ontologos-rl OWL RL facade → reasonable crates.io
ontologos-el OWL EL completion engine crates.io
ontologos-explain Proof graphs and explanations crates.io
ontologos-query Taxonomy queries crates.io
ontologos-cli CLI binary Source-build only
ontologos-watch File-watch reload (Ontocode hook) Workspace only
ontologos-py Python bindings PyPI (alpha)

Full feature matrix and roadmap: documentation index · ROADMAP

Documentation

Section Link
Documentation site ontologos.readthedocs.io
Getting started docs/getting-started/
Guides RDFS · OWL RL · Python · Comparison
Reference CLI · Errors · Supported constructs
Project FAQ · CONTRIBUTING · CHANGELOG
v0.9.0 release Release notes · Migration guide

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.