Skip to main content

Java-free shared OWL 2 structural parsing and communication kernel

Project description

pyowl-core

PyPI Python License

pyowl-core is a Java-free OWL 2 structural kernel for Python 3.10 and newer. It parses an ontology once and exposes the same immutable view to Exact-OM, pyELK, pyHermiT, pyOwl2Vec-Star-projector, and OAEI evaluation code. Consumers build their own reasoning or projection IR; they do not reparse paths or own a second OWL object model.

Version 0.1.0 is the first production publication of the stabilized 0.1 API. The portable implementation is the compatibility baseline; native wheels are optional accelerators and can be published independently as their platform builds complete. Release decisions and retained limitations are recorded in the release checklist.

Installation

python -m pip install pyowl-core

The portable wheel provides the complete Python implementation without Java or a native compiler. Compatible platform wheels may add private Rust acceleration, but public behavior and values remain identical. Use BackendPreference.PYTHON for a quiet, explicit portable path or BackendPreference.NATIVE when acceleration is required and fallback would be an error.

Quick start

from pyowl_core import (
    BackendPreference,
    DocumentFormat,
    ImportPolicy,
    LoadOptions,
    load_snapshot,
)

source = b"Ontology(<urn:example> Declaration(Class(<urn:example#A>)))"
snapshot = load_snapshot(
    source,
    document_iri="urn:example:document",
    options=LoadOptions(
        format=DocumentFormat.FUNCTIONAL,
        imports=ImportPolicy.IGNORE,
        backend=BackendPreference.PYTHON,
    ),
)

assert snapshot.is_complete
assert len(tuple(snapshot.iter_axioms())) == 1

Passing snapshot to another package is an identity-preserving handoff: coerce_snapshot(snapshot) is snapshot. A provider implements owl_snapshot() and returns the same OntologyView. Cross-process handoff uses encode_snapshot, decode_snapshot, or open_snapshot; pickle and ontology path round-trips are not part of the contract.

What the package owns

  • The complete immutable OWL 2 structural model and canonical identity.
  • RDF/XML, Turtle, OWL/XML, and Functional Syntax acquisition and rendering.
  • Explicit import resolution, provenance, limits, and secure offline defaults.
  • Documents, resolved snapshots, persistent overlays, and zero-copy composites.
  • Lazy structural indexes, fingerprints, and validated wire/cache transport.
  • Equivalent complete Python behavior and optional private Rust acceleration.

It deliberately does not classify, realize, check consistency, project graph edges, repair an ontology, or expose consumer-private IDs. See architecture and view lifecycles.

Release status

The distribution name is pyowl-core; the import package is pyowl_core. The source tree carries the production 0.1.0 release. Native wheels are optional optimizations and must never remove features from the pure fallback. The 1.0 API remains a future compatibility milestone; it is not implied by the production status of the 0.1 line.

Documentation

Normative requirements begin at the master specification.

Compatibility boundary

  • Distribution: pyowl-core
  • Import: pyowl_core
  • Python: >=3.10
  • Current package line: production 0.1.x
  • API: (0, 1); model schema: 1; wire: (1, 1); adapter protocol: 1
  • Runtime/build: no JDK, JRE, JVM, OWLAPI, JPype, ROBOT, Maven, Gradle, or Java archive
  • Project source license: Apache License 2.0; packaged third-party notices are listed in THIRD_PARTY_LICENSES/

The exact tested consumer commits and ranges are recorded in reports/integration/consumer-compatibility.json.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyowl_core-0.1.0.tar.gz (2.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyowl_core-0.1.0-py3-none-any.whl (435.7 kB view details)

Uploaded Python 3

File details

Details for the file pyowl_core-0.1.0.tar.gz.

File metadata

  • Download URL: pyowl_core-0.1.0.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pyowl_core-0.1.0.tar.gz
Algorithm Hash digest
SHA256 98ecf1db443ea8103e94e3554b6b826260c3397d39037054fa2bd9e9012431cd
MD5 ac5dc5314e634ed71a6cefa81ce107a6
BLAKE2b-256 aeb2387022c9c6e75f913079c3da2c333a9ffd76990807dd47ecfa71431ac538

See more details on using hashes here.

File details

Details for the file pyowl_core-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyowl_core-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 435.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pyowl_core-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 859c0a8d060fc8fb34b088966b8a54238d073a5fdff994a4fa7a910401069126
MD5 5eb3b929f4478da2410b4cc06b2bcf84
BLAKE2b-256 0d3ee7a94fca04852dbb1cd8bda691fc715013d6e3d6579ce68d575f97690e09

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page