The OOML project
OOML is developed as an open-source specification. The project aims to provide a technology-independent foundation for reusable object models and to encourage an ecosystem of model libraries, validators, visualizers, generators and integrations around that foundation.
The language is intentionally independent of any particular modelling tool, storage platform, programming language or vendor.
What exists today
Being candid about this matters more than appearing established. OOML is a draft specification with a small amount of supporting tooling.
The specification
A complete draft of the language in nineteen sections, including normative validation rules and an ABNF grammar.
View ↗A JSON Schema
Structural validation for OOML class and global attribute documents, published at a stable URL.
View ↗A reference validator
A command-line tool that checks a file or directory of artefacts against the schema.
View ↗A schema.org importer
A utility that transforms the schema.org vocabulary into OOML class artefacts — a worked demonstration that an existing vocabulary can be expressed in OOML at scale.
View ↗What does not exist yet
- Generators
- Nothing yet produces JSON Schema, SQL DDL, Protobuf, OWL, UML or source code from an OOML model. The language is designed to make such generators possible; none has been written.
- A registry
- There is no service for publishing or resolving OOML artefacts. The specification deliberately leaves distribution out of scope, and no separate registry specification has been published.
- Full semantic validation
- The reference validator checks structure. The cross-artefact rules — inheritance, use, metadata and dependency resolution — are specified but not yet implemented.
- Standard metadata profiles
- No governance, provenance or ontology profiles have been standardised. The mechanism exists; shared profiles do not.
Governance
OOML is currently an open-source specification under active development, maintained by Bitlife AS. Formal governance structures may evolve as the contributor and implementer community grows.
Decisions are currently made by the maintainers, in the open, through the issue tracker and pull requests on the specification repository. There is no standards body, working group or formal voting process, and this page will say so until there is.
Contributing
Contributions to the specification are welcome, particularly from people modelling real domains who find the language insufficient or awkward.
Open an issue first
Discuss a proposed change before submitting a pull request. Changes affecting language semantics, validation rules or the grammar require particular care.
State the version impact
Indicate which version component your change would increment — MAJOR, MINOR or TRIVIAL — and why. This is how compatibility stays visible.
Report what does not work
A domain the language cannot express cleanly is more useful feedback than a feature request. Bring the model that gave you trouble.
Repositories
- ooml-org/ooml ↗
- The specification, its JSON Schema and the reference utilities.
- Bitlife-AS/ooml.org ↗
- This website.
Licence
The specification is published under the BSD-3-Clause licence, copyright © 2026 Bitlife AS.
It may be used, implemented and redistributed — including commercially — provided the copyright notice and disclaimer are retained and the copyright holder’s name is not used to endorse derived products.