Skip to content

Migrating from v0.9.x to v1.0.0

Status: Ready for publish — gates green on main (2026-06-29). Tag when crates.io + PyPI publish completes.

OntoLogos 1.0.0 means full HermiT replacement readiness per the ROADMAP. Phase 9 engineering gates are met on main:

  • parity_pct = 100% — zero planned Java + WG catalog cases (check-hermit-parity-phases.sh)
  • Phase 8 — v1.5–v1.9 expressivity tracks complete (with documented waivers)
  • Full HermiT + OWL WG conformance blocking in CI @ 30s (check-1.0-release-gates.sh)
  • HermiT Tier A + B + C gates blocking in CI

Remaining for the git tag: ontologos-dl (and sibling crates) published to crates.io; PyPI wheel 1.0.0; annotated tag v1.0.0.

Expected API changes

Area v0.9.x v1.0.0
Profile::Auto Single-engine pick; DL → whole ontology MORe-style hybrid EL + DL module routing
Profile::Dl Preview warning via --profile dl-preview Stable default for DL ontologies
ontologos-dl crates.io preview Stable workspace + crates.io dependency
JSON snapshot v2 v3 (ABox literals, negative assertions; v2 read supported)
CLI classify, materialize, explain Adds query for OWL QL

Removed workspace crates

Workspace 1.0.0 removes empty shim crates that duplicated functionality. Update Cargo.toml and imports:

v0.9.x crate v1.0.0 replacement Import change
ontologos-rdfs ontologos-rl ontologos_rdfs::RdfsEngineontologos_rl::rdfs::RdfsEngine
ontologos-rdfs ontologos-rl ontologos_rdfs::classify_reasonerontologos_rl::rdfs::classify_reasoner
ontologos-query ontologos-ql ontologos_query::*ontologos_ql::* (e.g. TaxonomyHierarchy)
ontologos-watch (removed) No replacement — was unused

Before (v0.9.x):

ontologos-rdfs = "0.9.0"
ontologos-query = "0.9.0"
use ontologos_rdfs::RdfsEngine;
use ontologos_query::TaxonomyHierarchy;

After (v1.0.0):

ontologos-rl = "1.0.0"
ontologos-ql = "1.0.0"
use ontologos_rl::rdfs::RdfsEngine;
use ontologos_ql::TaxonomyHierarchy;

Published 0.9.0 on crates.io still resolves the old crate names. They are not published for 1.0.0.

Python / Rust version pins

All ontologos-* crates and the PyPI wheel bump together to 1.0.0.

Conformance

1009 active conformance tests on main (1152 defined, 143 #[ignore]). Catalog parity_pct = 100% (in_scope_total 889); 450 Java axiom + 428 OWL WG cases pass @ 30s on blocking CI. 13 Ian/ComplexConcept CE cases are documented excluded gaps. Verify: bash benchmarks/scripts/check-1.0-release-gates.sh.

If you depend on 0.9.x preview behaviour

  • Pin ontologos = "0.9" in Cargo.toml or ontologos==0.9.* on PyPI.
  • Use explicit --profile el / --profile rl instead of auto until hybrid routing is validated on your corpus.