Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

OpenOntologyLite

OpenOntologyLite is a lightweight, executable semantic-contract toolkit for defining and validating organizational entities, relationships, actions, permissions, and AI workloads across models, agents, databases, and vendors.

Status

Current release: 0.2.0b2, the first published Beta release with documented limitations.

Beta Notice

OpenOntologyLite is 0.2.0b2 Beta software. It provides deterministic validation and contract transformation, but remains under active compatibility review. It does not execute actions, enforce authorization, or perform general-purpose inference.

Why It Exists

Organizations increasingly describe their work inside AI systems, agent frameworks, RAG stores, policy engines, and vendor platforms. OpenOntologyLite asks a practical question: can an organization move operational knowledge between systems without rebuilding the meaning of its business?

Core Capabilities

  • YAML and JSON ontology loading with safe parsers.
  • Typed entities, properties, relationships, actions, permissions, and preconditions.
  • Runtime entity-instance validation and non-enforcing action-contract checks.
  • Versioned neutral tool, policy, audit, meter, benchmark, and RAG handoff contracts.
  • Structural and semantic validation with stable machine-readable codes.
  • Deterministic canonical JSON and SHA-256 digest generation.
  • Cycle analysis for relationships and reference properties.
  • JSON Schema 2020-12, Mermaid, Markdown documentation, inspection, and diff exports.
  • Typed AI System Maps for workload risk, model routes, review, escalation, audit, and cost expectations.
  • Deterministic migration plans and bounded local-only ontology modules.
  • Local-first operation with no telemetry, network calls, database, server, cloud account, or AI model requirement.

Installation

python -m pip install openontologylite

For development:

python -m pip install -e ".[dev]"

Quick Start

openontology validate examples/customer_support.yaml
openontology inspect examples/customer_support.yaml
openontology digest examples/customer_support.yaml
openontology export-json-schema examples/customer_support.yaml --output build/customer-support.schema.json
openontology export-mermaid examples/customer_support.yaml --output build/customer-support.mmd
openontology docs examples/customer_support.yaml --output build/customer-support.md
openontology entity validate examples/customer_support.yaml Customer examples/data/customer.json --json
openontology action check examples/customer_support.yaml create_ticket examples/data/create_ticket.json -p support.ticket.create --json
openontology contract tool examples/customer_support.yaml create_ticket
openontology migration-plan old.yaml new.yaml --format markdown

AI workload mapping:

openontology ai-map validate examples/ai_system_map/customer_support_ai.yaml
openontology ai-map report examples/ai_system_map/customer_support_ai.yaml --output build/customer-support-ai.md
openontology ai-map render examples/ai_system_map/customer_support_ai.yaml --format mermaid --output build/customer-support-ai.mmd

Use --strict or --fail-on-warning when warnings must also produce a nonzero exit. See AI System Maps for the format and control rules.

Example Ontology

schema_version: "1.0"
ontology:
  id: customer-service
  name: Customer Service Ontology
  version: "1.0.0"
  namespace: example.customer_service
entities:
  Customer:
    properties:
      customer_id:
        type: string
        required: true
      account_status:
        type: string
        required: true
        enum: [active, suspended, closed]

Python API

from open_ontology_lite import (
    check_action_contract,
    generate_tool_contract,
    load_ontology,
    validate_entity_instance,
)

ontology = load_ontology("examples/customer_support.yaml")
entity = validate_entity_instance(
    ontology,
    entity_type="Customer",
    value={"customer_id": "C-1042"},
)
action = check_action_contract(
    ontology,
    action="create_ticket",
    inputs={"customer_id": "C-1042", "description": "Cannot sign in"},
    actor_permissions=["support.ticket.create"],
)
tool = generate_tool_contract(ontology, "create_ticket")
print(entity.valid, action.status, tool.name)

Validation Example

Validation returns stable codes, messages, logical paths, suggestions, and context. Strict permission validation is the default; undeclared permissions fail unless non-strict mode is requested.

openontology validate tests/fixtures/invalid/undeclared_permission.yaml --json

Diff Example

openontology diff tests/fixtures/diff/customer-support-v1.yaml tests/fixtures/diff/customer-support-v2.yaml

Diff exit behavior:

  • 0: no breaking changes detected;
  • 1: breaking changes detected;
  • 2: invalid input or execution error.

JSON Schema Export

OpenOntologyLite exports deterministic JSON Schema 2020-12 documents. Some ontology semantics, such as actions, permissions, and relationship intent, are lossy in JSON Schema and are documented rather than represented as perfect round-trip data.

Mermaid Export

The Mermaid command emits source text only. It does not require Mermaid to be installed.

AI System Maps

An AI System Map records the portable business meaning of AI work: named tasks and entities, risk levels, permitted model routes, human-review and escalation requirements, expected audit events, expected cost/outcome metrics, and integration patterns. It is a declarative artifact, not a runtime router, compliance certification, or policy enforcement engine.

The route vocabulary is intentionally small: candidate_model, baseline_model, human_review, and blocked_or_escalate. Risk levels are low, medium, high, regulated, and unknown.

schema_version: "1.0"
system:
  name: Customer Support AI
  risk_profile: medium
tasks:
  - name: PasswordReset
    risk_level: low
    allowed_routes: [candidate_model, baseline_model]
    expected_audit_events: [route_selected]
    expected_metrics: [estimated_cost, resolution_outcome]

Ecosystem Position

OpenOntologyLite remains independently installable. Its neutral contracts can be consumed by adapters for AgentForge, PrivateAIStack, ModelSwapBench, AgentPolicyPack, AIAuditLog, and AIMeter OSS, but generation does not claim registration, execution, persistence, enforcement, ingestion, billing, or a verified live integration.

Security Model

Ontology, module, AI System Map, entity, and action files are untrusted input. The package uses bounded regular-file reads, symlink rejection, safe YAML loading, duplicate-key rejection, graph, parsed-node, collection, string, nesting, and diagnostic limits, non-executing preconditions, deterministic serialization, and sanitized diagnostics. It does not resolve remote imports or schema references, execute expressions, or run shell commands.

Limitations

  • No full RDF or OWL compatibility.
  • No SPARQL.
  • No general-purpose inference engine.
  • No database synchronization.
  • No graphical editor.
  • No action execution.
  • No final authorization or policy-enforcement decisions.
  • Preconditions are declarative text only.
  • No remote schema resolution.
  • No hosted service.
  • AI System Maps document intended controls but do not execute routing, review, audit, or cost enforcement.
  • Neutral contracts do not register Forge tools, write audit records, calculate invoices or realized savings, execute benchmarks, or ingest RAG documents.
  • No compliance certification.
  • Diff classification is rule-based and conservative.
  • JSON Schema export may be lossy for ontology-specific semantics.
  • Relationship cycles are reported but not automatically invalid.
  • Format may evolve before stable 1.0.

Roadmap

Current Beta release, 0.2.0b2:

  • Added runtime entity and action validation, neutral ecosystem contracts, action schemas, and deterministic migration planning.
  • Expanded AI System Maps and added safe local module foundations with provenance.
  • Normalized canonical ordering for explicitly set-like declarations and clarified digest limits.
  • Recovered Trusted Publishing with the Core Metadata 2.5-compatible publisher action, without product feature expansion.

After Beta:

  • Additional contract adapters and resource-limit configuration.
  • Broader local module composition and schema packaging.

Deferred post-Beta work:

  • Optional SQLite catalog.
  • Signed manifests.

Contributing

See CONTRIBUTING.md. Run Ruff, mypy strict, pytest with branch coverage, Bandit, pip-audit, build, and Twine check before release preparation.

License

Apache License 2.0.

Author

sekacorn

Download files

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

Source Distribution

openontologylite-0.2.0b2.tar.gz (68.1 kB view details)

Uploaded Source

Built Distribution

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

openontologylite-0.2.0b2-py3-none-any.whl (74.3 kB view details)

Uploaded Python 3

File details

Details for the file openontologylite-0.2.0b2.tar.gz.

File metadata

  • Download URL: openontologylite-0.2.0b2.tar.gz
  • Upload date:
  • Size: 68.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for openontologylite-0.2.0b2.tar.gz
Algorithm Hash digest
SHA256 1ee8a808f74a34eaa361575eb4ab43ae6771f861c17dd51bf82e03f8adeefc24
MD5 8deb70004ebb4d1f328388f7d6b0efbd
BLAKE2b-256 a2b431a7757db055ef3afb3316293b03364ee3f140126033f1a8b6b008f71827

See more details on using hashes here.

Provenance

The following attestation bundles were made for openontologylite-0.2.0b2.tar.gz:

Publisher: release.yml on sekacorn/OpenOntologyLite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openontologylite-0.2.0b2-py3-none-any.whl.

File metadata

File hashes

Hashes for openontologylite-0.2.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 4c2e14b07170d536806dea364483c69b7c1894a7741db0a8343e4e930a91b161
MD5 34f0388dd3d4e8fed5a56afe956727f5
BLAKE2b-256 9817c957e512714c4824fec093c5340f793f0a862e7b60d2b9a4f7f931eeaccd

See more details on using hashes here.

Provenance

The following attestation bundles were made for openontologylite-0.2.0b2-py3-none-any.whl:

Publisher: release.yml on sekacorn/OpenOntologyLite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.0b2 This release

2 files

Supported by

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