Skip to main content

OntoBDC (Ontology-Based Datasets & Containers)

Project description

OntoBDC WIP Board

Internal development board for the OntoBDC working package in wip/.

This file is not a public-facing README. It is the team's quick status board for:

  • the current shape of the code in src/ontobdc/
  • what is already usable
  • what is still draft, partial, or temporarily disabled
  • where to look first when changing the stack

Working Definition

OntoBDC is currently being built as a Python CLI plus semantic runtime for:

  • bootstrapping local project context
  • validating environment and prerequisites
  • discovering and executing capabilities
  • managing local dataset references
  • running artifact-driven semantic workflows such as a3

The current capability vocabulary exposed by the code is:

  • QueryCapabilityPort: capability interface for discovery and read-only inspection.
  • TransformationCapabilityPort: capability interface for transformations that create or reshape artifacts.
  • ActionCapabilityPort: capability interface for executable actions in the runtime.

Current Surface

The command surface that matters right now:

ontobdc init
ontobdc check
ontobdc list
ontobdc run
ontobdc storage
ontobdc dev
ontobdc a3

Typical local loop:

ontobdc init
ontobdc check
ontobdc list
ontobdc run --id <capability_id>

Storage loop:

ontobdc storage
ontobdc storage --local [path]
ontobdc storage --remove <dataset_id>

Ready / Usable Now

These parts are safe to treat as the current working core of the stack:

  • init: creates .__ontobdc__/config.yaml and establishes the minimum local project context.
  • check: runs environment and infrastructure validation before execution.
  • list + run: expose the main capability discovery and execution surface.
  • storage --local and storage --remove: cover the current dataset registration workflow.
  • dev: active and useful, but intentionally gated by project config.
  • a3 --etl --source <file|url>: ingests a textual source and materializes a lifecycle package.
  • a3 --work: processes lifecycle packages through the current state machine.
  • Plugin/module split: the code is already organized around adapters, ports, plugins, and domain modules rather than a monolithic CLI.

Draft / Partial / In Transition

These items exist in code, scripts, or drafts, but should not be treated as settled:

  • ontobdc plan: legacy command path kept only as historical implementation residue; future planning behavior is expected to be unified under ontobdc run.
  • ontobdc extra --enable a3: referenced by the codebase and help text, but not wired as a finished public flow.
  • ontobdc storage --refresh: present in scripts, but currently treated as temporarily disabled in the intended workflow.
  • ontobdc storage --resource: present in scripts, but also treated as temporarily disabled for now.
  • Entity-related flows: drafts and checks reference entity support, but it is not a current public command surface.
  • a3 --watch: appears in draft material, not in the active A3 CLI.

Rule for contributors:

  • If it is in this section, do not document it as stable product behavior.
  • If it is referenced by code but not by the intended workflow, treat it as implementation residue, draft work, or a future path.

Code Map

Short map of src/ontobdc/:

  • cli/
    • Top-level routing, initialization helpers, CLI messaging, and shared entrypoint logic.
  • check/
    • Environment and infrastructure checks, with shell-backed validation and repair hooks.
  • run/
    • Capability discovery, context/parameter resolution, selection, execution, and rendering.
  • list/
    • Capability catalog output.
  • storage/
    • Dataset registration, storage index handling, and storage adapters.
  • dev/
    • Developer operations across repositories, branches, commits, and related config.
  • a3/
    • Artifact-driven ETL and lifecycle processing.
  • module/
    • Built-in domain modules and capability providers.
  • shared/
    • Shared adapters, ports, ontology helpers, and plugin utilities.

Suggested reading order for newcomers:

  1. cli/
  2. run/
  3. storage/
  4. a3/
  5. shared/

A3 Notes

a3 is the most explicit example of the stack's file-driven execution model.

Current entrypoints:

ontobdc a3 --etl --source <file|url>
ontobdc a3 --work

Current behavior:

  • --etl resolves a source extraction strategy and writes a lifecycle package starting from raw.txt.
  • --work scans the lifecycle area, creates one worker per package, and advances each package through the state machine.

Current canonical lifecycle:

undefined -> received -> sanitized -> parsed -> translated -> validated -> reasoned -> dispatched

Current artifact progression:

  • received -> raw.txt
  • sanitized -> sanitized.txt
  • parsed -> parsed.json
  • translated -> graph.ttl
  • validated -> validated.txt
  • reasoned -> reasoned.ttl
  • dispatched -> dispatched.jsonld

Why a3 matters:

  • State is inferred from files already present in the package directory.
  • Processing is resumable from the latest valid artifact.
  • The pipeline leaves a concrete trace for debugging and auditability.
  • It is the clearest current implementation of OntoBDC as an artifact-oriented runtime.

Current caveats:

  • A3 enablement UX is still awkward.
  • The repository references ontobdc extra --enable a3, but practical setup still depends on installing the Python dependencies correctly.
  • Some surrounding A3 documentation exists in draft form and is ahead of the final CLI UX.

Important Artifacts

Core files that matter during development:

  • .__ontobdc__/config.yaml
    • local project configuration and engine selection
  • .__ontobdc__/storage.ttl
    • dataset storage index
  • .__ontobdc__/payload/lifecycle/...
    • A3 lifecycle packages and intermediate artifacts

Practical point:

  • if you need to understand system state, inspect files first
  • OntoBDC currently externalizes a lot of runtime truth into disk artifacts

Relationship Between wip/ And ../docs/

Use this split when deciding where to update documentation:

  • wip/
    • internal working package
    • implementation-first
    • draft-friendly
    • team board and near-code notes
  • ../docs/
    • more formal stack-level documentation
    • use cases, specs, ontologies, and publishable material

When wip/ and ../docs/ disagree:

  • prefer src/ontobdc/ as the source of truth for actual behavior
  • treat documentation as lagging or leading depending on the feature

Contribution Notes

Before describing something as done, check all three:

  • is it routed by cli/__init__.py?
  • is it still intended by the current workflow?
  • is it documented as active rather than draft or temporarily disabled?

Before adding new docs in wip/, prefer:

  • short status notes
  • explicit caveats
  • code-oriented navigation

Avoid turning this file into:

  • a marketing README
  • a PyPI landing page
  • a polished product overview detached from implementation reality

License

Licensed under Apache 2.0.

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

ontobdc-0.10.0.tar.gz (119.5 kB view details)

Uploaded Source

Built Distribution

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

ontobdc-0.10.0-py3-none-any.whl (198.4 kB view details)

Uploaded Python 3

File details

Details for the file ontobdc-0.10.0.tar.gz.

File metadata

  • Download URL: ontobdc-0.10.0.tar.gz
  • Upload date:
  • Size: 119.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ontobdc-0.10.0.tar.gz
Algorithm Hash digest
SHA256 1745f280c46c37535035cf7325091256ce8faf0c882c7ed0fbeb956353fe9c62
MD5 4f52fa6379d0fcd5ce8dee3c07d1b7e9
BLAKE2b-256 5267c068a15bf5db8e83ec1ea780e5eb9c5ef83416eb93fda6b703c729bd77bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for ontobdc-0.10.0.tar.gz:

Publisher: pypi-publish.yml on OntoBDC/ontobdc-core

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

File details

Details for the file ontobdc-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: ontobdc-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 198.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ontobdc-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 25abcb12a37fe5697ff6f2f631659a00b6b71f19f10516ccaf901897725a4bf4
MD5 eb5b06d5c3625539f866fdbcf025a261
BLAKE2b-256 f18b8e6ce1a0710c6609fd645360575e4951794f2b5ea50fdfa4be492d3b8029

See more details on using hashes here.

Provenance

The following attestation bundles were made for ontobdc-0.10.0-py3-none-any.whl:

Publisher: pypi-publish.yml on OntoBDC/ontobdc-core

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

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