Changelog¶
All notable changes to owlcompare are recorded here. The format follows Keep a Changelog, and owlcompare aims to follow Semantic Versioning once it reaches a public release.
The two versioned contracts — the CLI and the JSON output schema — evolve under the compatibility policy described in their respective reference pages.
[Unreleased]¶
Nothing yet. New work lands here and moves down into a dated section when the next version is tagged.
[0.1.0] — first public release¶
The first end-to-end owlcompare: load two ontologies, diff them at the syntactic and structural layers, classify severity, detect renames, and render the result in five formats.
Added¶
owlcompare diff— compare two ontologies and report the delta. Exits10on breaking changes,0otherwise.owlcompare load— load one ontology and print a summary.owlcompare canonicalize— emit the normalized form of an ontology.- Layer 0 (syntactic) diff — the raw triple delta, with subsumed triples hidden by default.
- Layer 1 (structural) diff — entities, hierarchy, restrictions, and annotations, each rolled up from the triples that caused it.
- Severity classification —
breaking,non_breaking,additive,info, with six built-in cross-cutting refinement rules and TOML user overrides. - Rename detection — three confidence tiers (certain / high / medium), with
cascade consolidation and a
--export-rename-mappingworkflow. - Five output formats — terminal text, self-contained HTML report, PR-comment Markdown, schema-locked JSON, and JUnit XML.
- GitHub Action — a composite action wrapping the CLI: baseline detection, PR comments, artifact upload, and breaking-change gating.
- Published JSON Schema — a versioned, machine-readable contract for the JSON output, with a documented forward-compatibility policy.
- Flagship demo — a showcase diffing two published quarterly releases of FIBO Business Entities (see Showcase).
- PyPI release pipeline — tag-triggered publishing via OIDC Trusted
Publishing, so
pip install owlcompareanduv tool install owlcomparework out of the box.
Known limitations¶
- Layers 2 (inferential) and 3 (impact) are not yet implemented.
owl:importsclosures are not resolved; named-graph / quad sources are rejected.
How this page is maintained
Release entries are written by hand from the merged work, and the version
numbers track git tags. When a release is tagged, its [Unreleased] items
move down into a new dated section.