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%— zeroplannedJava + 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::RdfsEngine → ontologos_rl::rdfs::RdfsEngine |
ontologos-rdfs |
ontologos-rl |
ontologos_rdfs::classify_reasoner → ontologos_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):
After (v1.0.0):
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 orontologos==0.9.*on PyPI. - Use explicit
--profile el/--profile rlinstead ofautountil hybrid routing is validated on your corpus.