Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 01:17
· 10 commits to main since this release
ac9eeea

Each omission now says why its axiom was dropped, and an irregular RBox's omissions name the axioms
that make it irregular (issue #125). A host that wants to refuse an edit breaking an OWL 2 DL global
restriction no longer has to diff omission sets, which also catch harmless profile gaps, or parse an
omission's text, and it can point at the edit to undo. Every report golden is byte-identical, and
the slop-std-sys 0.5 / slop-rdf-sys 0.6 ranges are unchanged.

Added

  • Omission::reason (Rust) and howl_run_omission_reason / howl_run_omission_reason_role
    (C), with probe-run equivalents. The reasons:
    • OutOfProfile: the construct is not in the profile;
    • IrregularRbox { witness }: an RBox axiom of an RBox that is not regular. witness lists the
      axioms that make it so (SPEC §5.2's policy, the union over every failure), the same on every
      such omission. In C: howl_run_omission_witness_len / howl_run_omission_witness;
    • NonSimpleRole { role }: a simple-role-only axiom or restriction over a non-simple role, naming
      the canonically least such role;
    • RangeCondition: an el / el++ chain that breaks the range condition;
    • ResourceGuard: a sriq number restriction above 16, or a chain set aside by chain
      elimination's size guard;
    • Undeclared, UnresolvedImport and Unrecognized.
  • When an axiom fails several conditions, the first in the gate's order decides (SPEC §6.2).
  • The reason comes from checks the gate already runs, so classification costs the same.

Changed

  • Omission is #[non_exhaustive], and gains a field. Code that built an Omission with a
    struct literal no longer compiles; reading its fields is unchanged. A later witness for an
    irregular RBox will then not need another breaking change.