Skip to main content

pyHermiT

PyPI Python License

pyHermiT is specified as a Java-free Python and Rust reimplementation of the core HermiT OWL 2 DL reasoner, with a complete pure-Python fallback. It targets Python 3.10+ and uses the Java-free pyowl-core package for shared ontology parsing, immutable views, overlays, composites, and zero-reparse communication with Exact-OM and other consumers.

The 0.2.2 production implementation provides the public reasoner facade, complete pure-Python path, and an optional private Rust backend. It consumes the pyowl-core 0.2 model and can compile its encoded structural-view schema 2 directly in Rust. The normative architecture, compatibility rules, backend completeness requirements, and verification plan begin at specs/README.md. Built runtime artifacts contain no Java, JVM launcher, Java bridge, or reference implementation.

Installation

python -m pip install pyHermiT

A supported native wheel enables Rust acceleration automatically. The universal wheel provides the complete compiler-free Python backend. Neither installation contains, downloads, or starts Java.

Quick start

from pyowl_core import ImportPolicy, LoadOptions, load_snapshot
from pyhermit import Reasoner

ontology = (
    b"Prefix(:=<urn:example#>) Ontology(<urn:example> "
    b"Declaration(Class(:A)) Declaration(Class(:B)) SubClassOf(:A :B))"
)
view = load_snapshot(
    ontology,
    options=LoadOptions(imports=ImportPolicy.RESOLVE_STRICT),
)

with Reasoner(view) as reasoner:
    assert reasoner.ontology is view
    assert reasoner.is_consistent()
    taxonomy = reasoner.class_hierarchy()

See the user guide for backend selection, import resolution, classification and realization queries, timeouts, updates, and error handling. Existing 0.1 deployments should follow the 0.2 migration guide before reusing persisted data or caches.

Release and licensing status

The owner has selected the source-guided implementation mode and LGPL-3.0-or-later, matching the pinned upstream declaration. LICENSE contains the LGPL text, COPYING the GPL text it incorporates, and NOTICE.md the initial upstream attribution. The owner authorized 0.2.2 publication under the existing licensing policy; LIC-001 remains waived without representing that legal review occurred. The authorization is recorded in reports/release/0.2.2-owner-release-override.md. The completed repository audits are under reports/licensing/ and reports/release/artifact-audit.md.

Strict native pipeline

require_native_pipeline_support() checks the native HermiT and pyowl-core receipt capabilities before loading an ontology. Opt in with ReasonerConfig(require_native_pipeline=True) to require native structural validation, metadata, compilation and hierarchy processing. Defaults retain their existing behavior. Strict mode currently supports consistency and class/object/data-property hierarchies on core-validated native snapshot/segment owners. It rejects unsupported owners, Python or verification backends, and Python byte-indexing fallback explicitly. Assertion-local generic queries share the permanent native rules, join plans, role automata, datatype registries and existential templates. Only their facts, clauses, witnesses and mutable tableau state are local. Batches retain at most one active query state; result caches contain bounded Boolean results.

The admitted query syntax includes Boolean class expressions, nominals/equality, known role assertions, existing source literals, universal restrictions and ground existential witnesses. Unknown roles or new literal payloads, newly required inverse-role blocking, nested existential expansions below variable-valued universal restrictions, and global schema/role changes retain the full native rebuild path by default. Strict mode rejects these cases before publication. Realization publication and committed updates are not yet admitted in strict mode. Recurring committed updates have not been established as an Exact workload, so incremental admission remains conditional rather than widening this query envelope.

Reasoner.diagnostics() reports the actual core receipt, metadata validation and domain copies. native_result_validation becomes true after a successful native hierarchy result; native_result_publications counts these publications. A positive capability probe does not replace owner validation or admit an unsupported operation. The native_query_* counters separately record delta loads, local rule plans, peak local records, legacy full-program loads and default full-rebuild fallbacks. Query syntax is limited to 1 MiB per request, 16 MiB and 4,096 items per batch; exhausting a resource bound never enables a fallback.

Documentation

Start with the user guide for backend selection, standalone and shared-view loading, every service family, updates, concurrency, and errors. The API reference enumerates every stable facade member, and the developer guide traces the core-view boundary through the private IR and Python/Rust engines. The documentation index links the normative specifications and machine-readable evidence.

The historical 0.1.1 qualification is recorded in the release report, coverage matrix, and benchmark audit. The owner accepted the remaining licensed W3C, live-reference, and dedicated-performance runs as post-release follow-up for 0.2.0. The release workflow separately requires every configured native target to pass before trusted publication.

Development

Use Python 3.10 or newer and install a compatible pyowl-core:

python -m pip install \
  "pyowl-core>=0.2.1,<0.3" \
  "build>=1.2,<2" "hypothesis>=6.100,<7" "import-linter>=2.1,<3" \
  "mypy>=1.10,<3" "packaging>=24,<27" "pytest>=8.2,<10" \
  "pytest-cov>=5,<8" "ruff==0.15.22" "setuptools==83.0.0" \
  "setuptools-rust==1.13.0" "tomli>=2.0,<3; python_version < '3.11'"
PYHERMIT_BUILD_NATIVE=0 python -m pip install --no-build-isolation -e .
python -m pytest
python -m tools.specs.check_workpackages
python -m tools.specs.check_project
python -m tools.specs.check_links
python -m tools.specs.check_release_gate --require-publishable
ruff format --check .
ruff check .
mypy
lint-imports
cargo deny --manifest-path native/Cargo.toml check --config deny.toml

Build and inspect the compiler-free artifacts with:

SOURCE_DATE_EPOCH=946684800 PYHERMIT_BUILD_NATIVE=0 python -m build
python -m tools.packaging_probe.check_artifact --pure dist/*.whl
python -m tools.packaging_probe.check_artifact dist/*.tar.gz

PYHERMIT_BUILD_NATIVE=auto|0|1 is the only supported build switch:

  • auto (default) attempts the optional native extension when Cargo is available and otherwise produces a truthfully tagged Python-only local build;
  • 0 never declares the extension and produces the reproducible py3-none-any fallback; and
  • 1 requires the locked Rust build and fails instead of silently falling back.

The distribution workflow builds the sdist, universal fallback, and the eight required cp310-abi3 manylinux 2.17, musllinux 1.2, macOS, and Windows x86-64/ARM64 targets. It audits Rust advisories/licenses/sources, ABI, and external libraries; installs on CPython 3.10 and 3.12; compares pure/native metadata and Python payloads, and verifies local-index resolver preference. The target manifest remains configured-awaiting-hosted-validation until those hosted jobs pass. The universal Python fallback is the portable production artifact while additional native wheels complete that hosted validation.

Metadata

Release files for pyHermiT 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyHermiT 0.2.2
File Size Uploaded Provenance Actions
pyhermit-0.2.2.tar.gz 1.3 MB With provenance Details for pyhermit-0.2.2.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for pyHermiT 0.2.2
File Actions
pyhermit-0.2.2-py3-none-any.whl Python 3 none any Details for pyhermit-0.2.2-py3-none-any.whl
pyhermit-0.2.2-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details for pyhermit-0.2.2-cp310-abi3-win_arm64.whl
pyhermit-0.2.2-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for pyhermit-0.2.2-cp310-abi3-win_amd64.whl
pyhermit-0.2.2-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details for pyhermit-0.2.2-cp310-abi3-musllinux_1_2_x86_64.whl
pyhermit-0.2.2-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details for pyhermit-0.2.2-cp310-abi3-musllinux_1_2_aarch64.whl
pyhermit-0.2.2-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details for pyhermit-0.2.2-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
pyhermit-0.2.2-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details for pyhermit-0.2.2-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
pyhermit-0.2.2-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for pyhermit-0.2.2-cp310-abi3-macosx_11_0_arm64.whl
pyhermit-0.2.2-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details for pyhermit-0.2.2-cp310-abi3-macosx_10_12_x86_64.whl

Total release size: 34.5 MB

Release files / pyhermit-0.2.2.tar.gz

Download URL pyhermit-0.2.2.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
17058f1cbefb67d0043affb9b3c0881b48ecbdbc03c879add1c44d9d05c15a1b
BLAKE2b-256 checksum
How to use checksums
3cc3c9c3b2f57516c1c6d6039c462ad1a31201270183fe8b1a3366d4bc310568
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / pyhermit-0.2.2-py3-none-any.whl

Download URL pyhermit-0.2.2-py3-none-any.whl
Size 420.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
153435777dc7dbe865d208a56b21503b06efb59eff2934213a2bc700892d26e9
BLAKE2b-256 checksum
How to use checksums
1d8123417a320d9b3a1afe77ac010b4706f8b908d5b5a98dde7bdfa01534b35c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / pyhermit-0.2.2-cp310-abi3-win_arm64.whl

Download URL pyhermit-0.2.2-cp310-abi3-win_arm64.whl
Size 3.9 MB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
3022b559818d7e5e1e3a6fae3b50430b1fb30936b61e1e82e2648ee9473ee985
BLAKE2b-256 checksum
How to use checksums
e7284c76ae3541250ce78cebb9a595b5de1939f010217ca490827033646d0756
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / pyhermit-0.2.2-cp310-abi3-win_amd64.whl

Download URL pyhermit-0.2.2-cp310-abi3-win_amd64.whl
Size 4.3 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
c38dbe18ea0165b5534bb35ffe3a2c9f13657979bf6808a23a08507ef906e04e
BLAKE2b-256 checksum
How to use checksums
8395fbf1d6fbe1305cee156c22ca1a66919cd3ae26e382d97aec29ec0303dd6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / pyhermit-0.2.2-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL pyhermit-0.2.2-cp310-abi3-musllinux_1_2_x86_64.whl
Size 4.4 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
606a4d19a1c0b01780056066a1eb43a9b9e3922a9a13c5dff03dca8847a4d346
BLAKE2b-256 checksum
How to use checksums
4f99babc86eaf546a7b2eb27e56c5d471506d9db0428d655b437e1f78991a952
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / pyhermit-0.2.2-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL pyhermit-0.2.2-cp310-abi3-musllinux_1_2_aarch64.whl
Size 3.9 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
56a3e6baf203d20e56f5b8b661b95d46816b6ea0c614496a5a3bad0f539ebbbb
BLAKE2b-256 checksum
How to use checksums
733ce94139e221fc11d5d3dcba1d8eaf66784bcdc8605c746671f414f2df214c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / pyhermit-0.2.2-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL pyhermit-0.2.2-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 4.3 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
2b0596435dbe999d3c33ddad7e9e3a5a0dccc14230e8c168053b41fe2846ed55
BLAKE2b-256 checksum
How to use checksums
ee70164875591f4516bb8f9d4a675a99cd04b042ba718c2d1831b00636555f62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / pyhermit-0.2.2-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL pyhermit-0.2.2-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 3.8 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
acc06ecafad3b682bd78f10f643196a92b53a4745993b33d716b6c588a05d19b
BLAKE2b-256 checksum
How to use checksums
704f328d6056fe6757f8947c927e519d7e844b5979e1e483bd1ad83401ad109b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / pyhermit-0.2.2-cp310-abi3-macosx_11_0_arm64.whl

Download URL pyhermit-0.2.2-cp310-abi3-macosx_11_0_arm64.whl
Size 3.8 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4a48d27de7857517ccb6192abc131b741a119b35eacdc59586c14c1332229435
BLAKE2b-256 checksum
How to use checksums
a5283188f712db06d40ae38293a628525668738266c51e51cb7ebc05b03bd182
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / pyhermit-0.2.2-cp310-abi3-macosx_10_12_x86_64.whl

Download URL pyhermit-0.2.2-cp310-abi3-macosx_10_12_x86_64.whl
Size 4.3 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
8e63e145d468b370ab054bc1dcc349416071391790c65e2e7ec445b46ee43724
BLAKE2b-256 checksum
How to use checksums
ce81f47fbc896abd5923eed4dba62912840508be8c9b28c55e9e00f14e8f5480
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Security for pyHermiT 0.2.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 10 files in this release have been uploaded with provenance metadata.

Select from 10 files

Attestation for pyhermit-0.2.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page