🚀 OntoBDC (Ontology-Based Data Capabilities)
OntoBDC (Ontology-Based Data Capabilities) is a domain-driven data architecture and capability runtime for executing ontology-aware data operations on portable datasets. It bridges the gap between static data storage and dynamic semantic execution.
When data is described by RO-Crate, it becomes self-describing. OntoBDC leverages this metadata to automatically discover and execute available operations relevant to the data context.
Use OntoBDC to manage the lifecycle of your engineering data projects. The runtime orchestrates L1 Queries (Discovery), L2 Actions (Transformation), and L3 Use Cases (State Transitions) to provide reproducible and auditable workflows.
Table of contents
- Project Focus
- Principles
- Architecture
- Capabilities
- Getting Started
- Entity Framework
- Useful Links
- Open Source
- Contributing
- Who uses OntoBDC?
Project Focus
OntoBDC works best with decentralized, portable data projects. Unlike monolithic systems that lock data into specific databases, OntoBDC assumes data lives in portable packages (Zip/Folder/Local Storage) that can be moved between local environments, cloud, and edge devices without losing semantic meaning or operational capability.
OntoBDC is commonly used to:
- Standardize data exchange between diverse engineering disciplines (BIM, GIS, Documents).
- Execute context-aware operations and automated checks without hardcoded pipelines.
- Validate engineering data against defined capabilities and rules ensuring reproducibility.
Principles
- Semantic: Data is not just bytes; it has meaning defined by ontologies and metadata (RO-Crate).
- Modular: Capabilities are isolated plugins. You can add new operations without changing the core runtime.
- Portable: The entire runtime and data package are self-contained. Run it on a laptop, a server, or inside a container.
Architecture
OntoBDC is built on core semantic layers:
- Context Layer: RO-Crate for semantic metadata and relationships.
The Capability Runtime binds these layers together, dynamically resolving which tools (CLI strategies) apply to the current data state.
Capabilities
Capabilities are the core units of execution in OntoBDC. They are categorized into three levels of power and responsibility, ensuring safety and clarity for autonomous agents:
| Level | Name | Scope & Power | Side Effects? | Example |
|---|---|---|---|---|
| L1 | Query | Read-Only / Discovery. Pure interface to query the environment. | NO. Must be idempotent and safe to retry infinite times. | list_documents, get_file_content, check_syntax. |
| L2 | Action | Transformation / Creation. Takes input data and produces new data/files without changing business state logic. | Local Only. Can create/write files but does not advance workflow state. | unzip_file, convert_pdf_to_png, generate_ro_crate_json. |
| L3 | Use Case | State Transition. Orchestrates L1 and L2 to move the business process forward. | YES. Changes the "truth" of the system. | process_chat_folder (Raw -> Processed), publish_dataset. |
This structure allows granular control over what an agent can do, separating "sensing" (L1) from "doing" (L2) and "deciding" (L3).
Getting Started
OntoBDC requires Python 3.11+ and pip. Install it to start using the CLI:
pip install ontobdc
After installation, you can initialize a project context:
ontobdc init
This creates the local configuration (.__ontobdc__ directory) automatically detecting the environment (e.g., venv or Google Colab).
To execute capabilities interactively:
ontobdc run
To validate engineering data against defined rules:
ontobdc check --repair
Entity Framework
The Entity Framework is a local structure that helps you manage Entities (ELOFs) and their ontology façade files under .__ontobdc__/ontology/entity/, indexed by .__ontobdc__/entity.rdf.
Enable it (also prepares .__ontobdc__/payload/* and downloads ISO 21597 container ontologies when needed):
ontobdc entity --enable true
Create and list entities:
ontobdc entity --create org.example.my_entity
ontobdc entity --list
Disable and purge all local Entity Framework state:
ontobdc entity --enable false
ontobdc entity --purge
Useful Links
| Resource | Link |
|---|---|
| 📘 Documentation | docs.ontobdc.org |
| 🐙 GitHub | github.com/OntoBDC |
| 📦 PyPI | pypi.org/project/ontobdc |
Open Source
OntoBDC is a free and open-source initiative, licensed under the Apache License 2.0. We believe in the power of community-driven development to solve complex data interoperability challenges.
Contributing
We are always on the lookout for contributors to help us fix bugs, create new features, or improve project documentation. If you are interested, feel free to open a PR or issue on GitHub.
Who uses OntoBDC?
OntoBDC is the core engine behind InfoBIM, powering semantic data interoperability for complex engineering projects.
Proudly developed in Brazil 🇧🇷