Skip to content

HOWL 0.4.0: sriq

Choose a tag to compare

@github-actions github-actions released this 14 Oct 15:32
· 55 commits to main since this release
bc929cd

HOWL 0.4.0 adds sriq, a third profile. It reasons over inverses, unions, ∀, full negation and qualified cardinalities, which el and el++ omit.

Highlights

  • --profile sriq: the SRIQ object fragment with an ABox. It is available from the CLI, the C API and the Rust crate (Profile::Sriq).
    • BFO-core and CCO are fully covered and match HermiT on every class pair.
  • auto picks among el, el++ and sriq: the cheapest profile that covers the ontology, or else the one that omits least.
  • Bounded runs: sriq stops at a fixed budget of 500,000 clauses. A run that hits the budget is inconclusive (exit 2) unless it has already found an inconsistency or an unsatisfiable class. When auto picked sriq and the budget is hit, it falls back to el or el++ and notes this on stderr.

What changes if you're upgrading from 0.3.0

  • The default profile is still el. Nothing changes unless you ask for sriq or auto.
  • Under auto, ontologies with inverses or unions now run under sriq. The report's profile line says which profile answered.
  • The report format, exit codes, C ABI and Rust API are unchanged.
  • Every profile: OWL 1-style owl:intersectionOf / unionOf / oneOf on a named class is now reported as an omission instead of silently ignored. A report that used to say coherent may now say inconclusive.

Fixes

  • The named-class owl:intersectionOf case above.
  • A literal quoted in an omission is now escaped, so a multi-line literal can no longer break the report format.

Known limits

  • sriq runs single-threaded. --workers is accepted and the report is identical at any worker count.
  • RO hits the budget under sriq, and auto falls back to el++, which omits RO's inverses. Both runs are inconclusive.
  • OBI is out of sriq's reach. auto falls back to el++.
  • Performance against HermiT and Sequoia has not been measured yet.

Get it

  • CLI and C library: the binaries and libhowl zips below, for macOS arm64, Linux x86_64 and Windows x86_64.
  • Rust: howl-reasoner = "0.4.0" on crates.io.

The full list of changes is in CHANGELOG.md.