ontologos-core 0.4.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: load OWL files, detect profiles, run RDFS materialization and OWL RL saturation.

Status: v0.4 pre-release — not a HermiT/ELK replacement for production EL/DL taxonomy classification yet.

You need… Use today Wait for
Embed ontology graph in Rust ontologos-core
Load .owl / .ttl files ontologos-parser
RDFS TBox inferences ontologos-rdfs or CLI materialize
OWL RL saturation ontologos-rl or Python profile="rl" CLI in v0.5
OWL EL taxonomy v0.5

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.4.0"
ontologos-parser = "0.4.0"
ontologos-profile = "0.4.0"
ontologos-rdfs = "0.4.0"
ontologos-rl = "0.4.0"

Python (alpha): pip install ontologos — always pass profile="rdfs" or profile="rl" (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.4.0"
ontologos-parser = "0.4.0"
ontologos-rdfs = "0.4.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: Prefer materialize over classify — both run RDFS only in v0.4; classify is not OWL taxonomy classification. OWL RL requires the library or Python until v0.5.

Workspace

Crate Description Published
ontologos-core Data model, builder, JSON v2 crates.io
ontologos-parser OWL/RDF loading crates.io
ontologos-profile Profile detection crates.io
ontologos-rdfs RDFS materialization crates.io
ontologos-rl OWL RL saturation crates.io
ontologos-el OWL EL classification Stub (v0.5)
ontologos-cli CLI binary Source-build 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

License

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