Java-free shared OWL 2 structural parsing and communication kernel
Project description
pyowl-core
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
- Documentation index
- API guide
- Documents, snapshots, views, overlays, and composites
- Parse-once consumer handoff
- Security, imports, and caches
- Native fallback troubleshooting
- Measured performance evidence
- Version and consumer compatibility
- Migration guide
- Release checklist
- Release, yank, and security rollback
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98ecf1db443ea8103e94e3554b6b826260c3397d39037054fa2bd9e9012431cd
|
|
| MD5 |
ac5dc5314e634ed71a6cefa81ce107a6
|
|
| BLAKE2b-256 |
aeb2387022c9c6e75f913079c3da2c333a9ffd76990807dd47ecfa71431ac538
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
859c0a8d060fc8fb34b088966b8a54238d073a5fdff994a4fa7a910401069126
|
|
| MD5 |
5eb3b929f4478da2410b4cc06b2bcf84
|
|
| BLAKE2b-256 |
0d3ee7a94fca04852dbb1cd8bda691fc715013d6e3d6579ce68d575f97690e09
|