What is Apache Ossie and How It Solves Semantic Fragmentation in Modern Data Stacks
Apache Ossie (formerly Open Semantic Interchange) is an open-source, vendor-agnostic specification for semantic model exchange that unifies KPI definitions across BI, AI, and analytics platforms, eliminating manual reconciliation and vendor lock-in.
Apache Ossie is an Apache Software Foundation project that provides a standardized JSON/YAML schema for defining datasets, metrics, and relationships. According to the apache/ossie source code, the project addresses the critical gap between data engineering tools where the same metric gets defined differently in dbt, Tableau, GoodData, and other platforms. By establishing a single source of truth for semantic models, Ossie enables automatic conversion between formats and provides reliable context for AI agents.
Why Semantic Fragmentation Breaks Data Stacks
Modern data stacks suffer from semantic fragmentation, where business logic becomes inconsistent across tools. Ossie solves four critical pain points that plague data teams:
-
Inconsistent KPI definitions – The same metric is defined differently in dbt, GoodData, Tableau, and other platforms, leading to contradictory dashboards. Ossie provides a single JSON/YAML schema that unifies the definition of datasets, fields, relationships, and metrics as specified in
core-spec/spec.md. -
Manual reconciliation effort – Data engineers waste hours mapping definitions between platforms. Ossie eliminates this through reference converters (e.g., dbt ↔ Ossie, Salesforce ↔ Ossie) that automate format translation without hand-crafted mapping, documented in
converters/dbt/README.md. -
Unreliable AI agent outputs – LLMs produce inconsistent results when fed models with missing context. Ossie adds an
ai_contextfield that carries instructions, synonyms, and examples directly in the semantic model, giving AI systems a reliable "source of truth." -
Vendor lock-in – Proprietary metadata formats prevent interoperability. Ossie supports custom extensions where vendors attach their own JSON payloads without altering the core schema, guaranteeing forward compatibility as defined in
core-spec/spec.md.
The Three-Layer Architecture of Apache Ossie
Ossie consists of three distinct layers that work together to standardize semantic exchange:
Core Specification
The foundation is a language-agnostic YAML/JSON schema defined in core-spec/spec.md. This specification describes semantic models, datasets, fields, relationships, and metrics using dialect-specific expressions. It supports ANSI SQL and other query languages, ensuring models remain portable across different database engines.
Reference Converters
Reusable CLI-driven tools translate between Ossie and existing formats like dbt, GoodData, and Polaris. The dbt converter, detailed in converters/dbt/README.md, handles bidirectional translation between dbt's MetricFlow Semantic Interface (MSI) and Ossie format. Additional converters are indexed in converters/README.md.
Validation and Tooling
Command-line utilities validate models against the core schema and generate documentation. The validation tools, located in the validation/ directory, ensure structural integrity before deployment to production systems.
Implementing Apache Ossie: Practical Examples
Defining a Minimal Semantic Model
Create a YAML file that describes your analytics domain using Ossie's schema:
semantic_model:
- name: sales_analytics
description: Sales and customer analytics model
datasets:
- name: orders
source: sales.public.orders
primary_key: [order_id]
fields:
- name: order_id
expression:
dialects:
- dialect: ANSI_SQL
expression: order_id
- name: amount
expression:
dialects:
- dialect: ANSI_SQL
expression: amount
relationships:
- name: orders_to_customers
from: orders
to: customers
from_columns: [customer_id]
to_columns: [id]
metrics:
- name: total_revenue
expression:
dialects:
- dialect: ANSI_SQL
expression: SUM(orders.amount)
The same model can be expressed in JSON—Ossie's schema supports both formats interchangeably.
Converting dbt Manifests to Ossie
First generate dbt's MetricFlow Semantic Interface JSON, then convert it to Ossie format:
# Generate dbt's MetricFlow Semantic Interface JSON
dbt parse # → target/semantic_manifest.json
# Convert to Ossie YAML
ossie-dbt msi-to-osi -i target/semantic_manifest.json -o semantic_model.yaml
The CLI prints warnings for any lossy conversion (e.g., dropped visibility modifiers) while still producing a valid Ossie model.
Reverse Conversion: Ossie to dbt
Convert Ossie models back to dbt format for downstream pipelines:
ossie-dbt osi-to-msi -i semantic_model.yaml -o semantic_manifest.json
The generated semantic_manifest.json can be consumed directly by MetricFlow or dbt pipelines.
Validating Against the Schema
Ensure your model conforms to the specification before distribution:
ossie-validate -i semantic_model.yaml
The validator checks the document against the core schema (spec.yaml) and reports structural issues.
Summary
-
Apache Ossie eliminates semantic fragmentation by providing a single specification for defining metrics and datasets across BI, AI, and analytics tools.
-
The core specification in
core-spec/spec.mddefines a vendor-neutral JSON/YAML schema, while reference converters inconverters/automate translation between Ossie and formats like dbt. -
Custom extensions allow vendors to add proprietary metadata without breaking interoperability, and the
ai_contextfield provides LLMs with structured business context. -
Command-line tools like
ossie-dbtandossie-validateenable practical implementation, supporting bidirectional conversion and schema validation.
Frequently Asked Questions
What is Apache Ossie used for?
Apache Ossie standardizes how organizations define and exchange semantic models between data tools. It serves as a bridge between dbt, BI platforms like Tableau, and AI systems, ensuring that metrics like "active revenue" have the same definition everywhere.
How does Apache Ossie differ from dbt semantic models?
While dbt semantic models are specific to the dbt ecosystem, Ossie is vendor-agnostic. Ossie can represent dbt models through converters, but also supports GoodData, Polaris, Salesforce, and other platforms through its extensible core specification in core-spec/spec.md.
Can Apache Ossie integrate with proprietary BI tools?
Yes. Ossie's custom extensions mechanism allows proprietary tools to attach vendor-specific JSON payloads to Ossie models without altering the core schema. This ensures forward compatibility while maintaining interoperability.
What is the ai_context field in Ossie models?
The ai_context field is a specialized schema element that carries instructions, synonyms, and examples directly within the semantic model. It provides LLMs and AI agents with reliable business context, reducing hallucinations and ensuring consistent interpretation of metrics across AI applications.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →