This release is a pre-release and may not be stable for production use.
ONTLE Open World — Public Alpha
ONTLE is a reference toolchain for authoring, validating, packaging, and inspecting Open World Packages (OWP).
OWP is a portable package contract for publishing a reusable World, its compatible World Models, and related assets such as source/interface bindings, scenarios, datasets, evaluation profiles, and operational artifacts.
The public surface is intentionally small:
WORLD.md | WORLDMODEL.md | ONTOLOGY.md human-readable package card
owp.yaml machine-readable OWP manifest
views/ / state/ generated World View + State Compiler defaults (profile-dependent)
examples/ / models/ / interfaces/ ... only the additional assets the package actually needs
The registry and internal asset graph may be much richer. Authors should not need to manually create registry records, digests, lineage metadata, or derived build state.
Why
A model hub tells you which model artifact exists. A tool hub tells you which tool can be called. OWP adds a missing layer:
What world is being represented, what observations and actions mean in that world, what model is valid for which view of it, and what evidence shows that the package works?
This applies to both Physical AI and business/enterprise AI.
Physical AI
World -> sensors/actions/environment -> World Model/VLA -> trajectory/action/eval
Business AI
World -> ERP/MES/QMS/docs -> World Model/solver -> decision/action/eval
Quick start
Requires Python 3.11+ (tested on 3.11–3.14).
python3 -m venv .venv && . .venv/bin/activate
python -m pip install --pre ontle # alpha releases need --pre; add [rdf] for RDF tooling
# or, from a clone of this repository: python -m pip install -e .
ontle init my-world --namespace acme
cd my-world
# The starter compiles: a View, a State Compiler, sample observations, and the EWS they give.
ontle validate .
ontle ews compile . --observations examples/observations.yaml --as-of 2026-01-02T00:00:00Z
ontle pack . --list
The generated project contains only the authoring surface. .ontle/ is generator-owned metadata and can be ignored by most users.
Where to go next
| You want to | Read | Then try |
|---|---|---|
| Describe a World: what exists, what is observed, what state a task needs | docs/QUICKSTART.md, docs/STATE_COMPILATION.md | examples/business/manufacturing-quality-world |
| Build or compare a World Model for a World | docs/QUICKSTART.md §7, quality-scenario-world-model | python examples/business/quality-scenario-world-model/models/run.py --baselines |
| Run packages in your own runtime | docs/RUNTIME_INTEGRATION.md, demos/ | python demos/business-ai/run.py |
| Look up a term | docs/CONCEPTS.md, docs/GLOSSARY.md |
Starter templates
ontle init my-world --template minimal
ontle init my-enterprise-world --template enterprise
ontle init my-ontology --template ontology
ontle init my-world-model --template worldmodel --world ./my-world
ontle init my-vla-world-model --template worldmodel-multimodal
Adding assets
An asset is a YAML file that says what it is. Put it anywhere in the package; owp.yaml does not list it.
# views/manager.yaml
apiVersion: openworld/v1alpha1
kind: WorldViewProfile
metadata:
name: manager
spec:
purpose: {task: assign_accounts, objective: balance_territories}
projection: {include: [account, territory]}
ontle validate . finds it by its apiVersion and kind. To start from a skeleton with editor schema hints, run ontle new WorldViewProfile views/manager.yaml; it works for any asset kind.
More commands:
ontle inspect . --graph --resolved-views
ontle add extension acme/quality-extension@1.2.0 # declare a publisher extension in owp.yaml
# knowledge graphs (needs the rdf extra)
ontle kg check . --source ../ontologies # does the graph (A-box) use only its ontology's (T-box) classes and properties?
ontle kg extract . --profile extraction/claim-context.yaml --param claimId=C-102 > kg.yaml
ontle ews compile . --compiler state/quality-incident-compiler.yaml --observations observations.yaml --observations kg.yaml --as-of 2026-09-05T00:00:00Z
# distribution
ontle lock . # pin https external references
ontle fetch . --into fetched/ # download and verify external content
ontle pack . --vendor # include pinned https content in the archive
ontle index build dist/*.owp.zip --base dist --output dist/index.json
ontle validate --resolve --source index:dist/index.json .
ontle push dist/acme-line-world-0.1.0.owp.zip ghcr.io/acme/line-world:0.1.0 # needs oras
ontle sign dist/acme-line-world-0.1.0.owp.zip # needs cosign
ontle catalog . --format dcat
# ontology packages
ontle ontology index # write the term index (RDF entrypoints: pip install 'ontle[rdf]')
ontle export --format turtle
Examples
examples/business/manufacturing-quality-world— business/manufacturing World packageexamples/business/quality-transition-world-model— World Model bound to a business Worldexamples/business/quality-scenario-world-model— runnable reference World Models for one scenario: persistence, three-point, Monte Carlo, and Markov baselines on a CPU, and an LLM model as the minimum bar (python models/run.py --baselines)examples/ontology/lab-ontology,examples/ontology/sales-ontology— T-boxes of the assay and sales example graphsvocab/owp— the OWP vocabulary (RDF terms for OWP's own concepts);alignments/— informative alignments to PROV-O, BFO 2020 + IAO, and DOLCE+DnS Ultralite (docs/STANDARDS_INTEROP.md)examples/ontology/quality-ontology— ontology package (owp-yaml schema, SHACL shapes, SSSOM mappings) used by the manufacturing Worldexamples/research/assay-optimization-world— laboratory World with actors, roles, delegation, a design-test-learn work pattern, evaluation, and a scenarioexamples/business/sales-prioritization-world— actor-specialized Views, tasks, artifacts, and consumersexamples/physical-ai/mobile-manipulation-world— Physical AI World packageexamples/physical-ai/multimodal-action-world-model— multimodal/VLA-style World Model package
End-to-end demos on sample data, from observations to evidence: demos/ (see demos/README.md).
Conformance suite for independent implementations: conformance/ (see conformance/README.md). An independent TypeScript implementation written from the spec alone lives in implementations/typescript/ and passes the same suite.
Resolve dependencies and check World Model grounding across packages, without a hosted registry:
ontle resolve examples/physical-ai/multimodal-action-world-model --source examples
ontle validate --resolve --source examples examples/physical-ai/multimodal-action-world-model
# sources: directories, *.owp.zip, git+<url>@<tag>[#subdir=<path>]; ONTLE_PATH is also read
Compile and check Effective World State with the reference declarative compiler:
W=examples/business/manufacturing-quality-world
ontle ews compile $W --compiler state/quality-incident-compiler.yaml \
--observations $W/examples/observations.yaml --as-of 2026-09-05T00:00:00Z > ews.yaml
ontle ews check ews.yaml --world $W
Validate all examples:
./scripts/golden_smoke.sh
Core separation
World (in real)
<-> interface: observation / source / action / commit
World (in data schema)
-> World View (packaged reusable contract)
-> State Compiler (packaged reusable contract)
-> Effective World State (runtime-derived)
-> representation adapter
-> World Model / solver / simulator
-> decision / governed action
World (in real) is not a package artifact. OWP packages explicit representations and contracts about it.
A World does not need a World Model to be useful. WorldPackages declare a cumulative conformance profile — descriptive, viewable, stateful, model-ready, action-ready — while every WorldModelPackage must name the Views and State Compilers it is valid for.
Evaluation lineage
"Model A scored 92" is not reusable. "Model A scored 92 under EvaluationProfile 3.1, Verifier 1.4, View X, Environment Y" is. OWP binds results to exact evaluation versions through CompatibilityEvidence; running and evolving evaluations stays in runtimes and registries.
Position relative to other standards
OWP does not replace OpenUSD, ROS 2, LeRobot, ASAM OpenSCENARIO, ISA-95, OPC UA, Hugging Face cards, MLflow signatures, or OCI. It records how their artifacts relate inside one World, View, and model applicability scope. See docs/STANDARDS_INTEROP.md.
Naming
- Open World Package (OWP) is the packaging/interoperability standard.
owp.yamlis the public manifest filename.- ONTLE is the reference authoring/package-manager/registry client.
ontleis the CLI.
Status
Planned changes, in order, are in ROADMAP.md.
This repository is a public-alpha reference implementation. It is suitable for authoring, validation, deterministic package creation, archive verification, and examples. A hosted registry protocol/client is a subsequent layer and is not claimed as production-ready here.
Licensing
- Code, CLI, schemas, templates, examples: Apache-2.0
spec/anddocs/: CC BY 4.0- Trademarks: not granted by either license
See LICENSE, LICENSES/CC-BY-4.0.txt, and NOTICE.
Metadata
Release files for ontle 0.2.0a5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ontle-0.2.0a5.tar.gz | 153.7 kB | With provenance | Details for ontle-0.2.0a5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ontle-0.2.0a5-py3-none-any.whl | Python 3 | none | any | Details for ontle-0.2.0a5-py3-none-any.whl |
Total release size: 295.2 kB
Release files / ontle-0.2.0a5.tar.gz
| Download URL | ontle-0.2.0a5.tar.gz |
|---|---|
| Size | 153.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d41cf67e5df31752c6dbe482ba4d91725fa8d6f958031e865af17eb50bad531d
|
|
BLAKE2b-256 checksum How to use checksums |
5eb3e9bfa35121833a2ff7f7fff8b73f95fdf9b5a3206b8263db4f752f0a8d69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 5, 2026.
Transparency logRelease files / ontle-0.2.0a5-py3-none-any.whl
| Download URL | ontle-0.2.0a5-py3-none-any.whl |
|---|---|
| Size | 141.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a5cc477a577e077766f3712b250e148376fc0df67491eff8e23bb797f9a18165
|
|
BLAKE2b-256 checksum How to use checksums |
02ff61f76d8b3289e2c514577bb6e554a9240fa7a47336de289e5edd04bf2cbf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 5, 2026.
Transparency logSecurity for ontle 0.2.0a5
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
Both files in this release have been uploaded with provenance metadata.
Attestation for ontle-0.2.0a5.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 5, 2026.
Transparency logA 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.