Ecosystem

Where OOML fits

OOML exists in a mature ecosystem of modelling languages, schema formats, data standards and implementation technologies. Many of these overlap with OOML in some capabilities, but they solve different primary problems.

OOML should not be understood as replacing them. Its intended role is the technology-independent modelling layer from which implementation-specific representations can be related, constrained or generated.

OOML and UML

UML is primarily a general-purpose visual modelling language for software and systems. OOML is a machine-readable language for defining reusable data and object models.

UML class diagrams and OOML naturally share concepts such as classes, attributes, associations and inheritance, which makes UML a useful way to visualize an OOML model.

OOML modelUML class diagram

In such an arrangement the OOML representation remains the authoritative machine-readable model, and UML provides one possible visualization of it.

OOML does not attempt to cover UML’s much broader set of behavioural and systems-modelling diagrams.

OOML and JSON Schema

JSON Schema defines the shape and validity of JSON documents. OOML defines models independently of JSON.

JSON Schema is an excellent choice when the problem is validating a JSON representation. It becomes more limiting as a canonical enterprise or domain model, because the model’s identity and semantics then become coupled to JSON’s representation model.

OOML modelJSON Schema

The same OOML model may also have non-JSON projections. That allows JSON Schema to do what it does well without making JSON the canonical definition of the domain.

OOML artefacts are themselves written as JSON, and the project publishes a JSON Schema for validating them. That is a different thing from using JSON Schema as the modelling language.

OOML and Avro / Protocol Buffers

Avro and Protocol Buffers are designed around data serialization and system communication. OOML is designed around canonical meaning and structure.

Both contain schema facilities because reliable serialization requires schemas. OOML operates one layer above the wire representation.

Where mappings are possible, an OOML model could be used to generate or validate message schemas while retaining a technology-independent source model.

Not every OOML construct necessarily has a lossless mapping to every target technology. Where a target cannot express something, the mapping — not the model — is where that limitation belongs.

OOML and OpenAPI

OpenAPI describes HTTP APIs. OOML describes the information those APIs may expose.

An API frequently needs request and response schemas, but an API representation is only one context in which a domain concept may appear. The same concept may also be stored, exchanged over a message bus, catalogued and reported on.

OOML can provide the canonical model while OpenAPI defines how a particular service exposes that model over HTTP.

OOML and ODCS

The Open Data Contract Standard and OOML address related but different concerns: OOML defines reusable, technology-independent models, while ODCS defines contracts around the delivery and operation of data products.

ODCS covers concerns such as physical representations, ownership, service expectations, quality and infrastructure — the operational agreement between a data producer and its consumers.

An organization could use OOML to define what concepts such as Customer, Address or Observation mean across the organization, while using ODCS to specify how a particular data product delivers a selection of those concepts.

In such an architecture, OOML supplies reusable semantic definitions and ODCS supplies the operational agreement. The two are more naturally complementary than competitive.

Domain concepts and shared semantics
Canonical modelOOML
Data-product representation
Operational data contractODCS
Physical delivery / platform
A possible architecture. OOML and ODCS are complementary; neither standard requires the other.
Neither standard requires the other, and neither sits beneath the other by obligation. A future integration could allow ODCS contract elements to reference the OOML artefacts from which their semantic definitions originate; no such integration exists today.

OOML and DAMA-DMBOK

DAMA-DMBOK describes disciplines and practices for managing data. OOML is a modelling language that can help implement parts of those practices.

DMBOK is not another schema language, and OOML is not an alternative to it. They operate at different levels: one describes what a data management function should do, the other provides a technical means of doing some of it.

OOML’s strongest alignment is with Data Modeling and Design, with important supporting roles in Metadata Management and Data Architecture. Its reusable models, identities and metadata can also support Data Governance, Reference and Master Data, Data Integration and Interoperability, and aspects of Data Quality.

DAMA-DMBOK knowledge areas
  • Data GovernanceOOML supports
  • Data ArchitectureOOML supports
  • Data Modeling & DesignOOML core
  • Metadata ManagementOOML strongly supports
  • Reference & Master DataOOML supports
  • Data Integration & InteroperabilityOOML supports semantics
  • Data QualityOOML structural contribution
  • Other operational disciplines
OOML is one technical building block within a broader data-management practice — not an implementation of DMBOK.

OOML does not attempt to implement DAMA-DMBOK as a whole. It provides no organizational governance process, no storage operations, no security enforcement and no data-quality execution.

It is best understood as one technical building block within a broader data-management architecture: a language for creating and maintaining the shared models on which several DMBOK disciplines depend.

OOML and ontologies / OWL

OOML models contain semantics, but OOML is not an ontology language in the formal OWL sense.

OOML models identify concepts, relationships, specialization and constraints. That is meaningful semantic content, and it is enough for many modelling purposes.

OWL is designed for formal knowledge representation and logical inference. It can express axioms such as class equivalence, disjointness, inverse relationships and other statements from which a reasoner can derive facts that were never explicitly asserted. OOML deliberately focuses on a more pragmatic object-modelling problem.

For organizations that require both, the two can be complementary. Core structural semantics may map naturally from OOML to OWL, while OWL-specific semantics could be supplied through a typed OOML metadata profile. An ontology generator could then combine the model and the ontology metadata to produce an OWL representation.

OOML model+ ontology metadata profileOWL

This illustrates a broader OOML design principle: specialized semantics do not necessarily have to become core language features. They can be introduced through typed model metadata and consumed by specialized tooling.

OOML cannot currently represent all OWL semantics, and no ontology generator exists today. The mapping above describes an architecture the language permits, not a shipped capability.
A note on naming. OOML — the Open Object Modelling Language — is unrelated to the Ontological Modeling Language (OML) developed under JPL and openCAESAR. The full acronym OOML is used throughout this site and the specification to avoid confusion.

Comparison overview

TechnologyPrimary concernRelationship to OOML
UMLVisual and general software modellingCan visualize OOML models
JSON SchemaJSON validationPotential projection target
AvroData serializationPotential projection target
ProtobufMessages and wire contractsPotential projection target
OpenAPIHTTP API contractsCan expose OOML-modelled data
ODCSOperational data contractsComplementary contract layer
OWLOntology and logical reasoningComplementary semantic projection
SQL DDLRelational storagePotential implementation target
DAMA-DMBOKData-management practice frameworkBroader framework in which OOML can play a role

“Potential target” indicates a mapping the architecture permits. It does not indicate that a generator exists.