Apache Ossie

Overview

The Apache Ossie initiative is a collaborative, open-source effort dedicated to standardizing and streamlining semantic model exchange and utilization across the data analytics, AI, and BI ecosystem. Our shared vision is to establish a common, vendor-agnostic semantic model specification, promoting interoperability, efficiency, and collaboration among all participants.

Apache Ossie was formerly known as Open Semantic Interchange (OSI).

By providing a single, consistent source of truth, the Ossie standard ensures that your data's definitions and value remain consistent as they are interchanged between AI agents, BI platforms, and all other tools in your ecosystem — eliminating inconsistencies across your different tools.

The Problem: Semantic Fragmentation

Today's data ecosystem is fragmented. Organizations rely on a wide array of tools for analytics, business intelligence, data engineering, and AI — each with its own way of defining and interpreting semantic models. This fragmentation leads to:

  • Metric Drift: The same KPI is defined differently across dashboards and platforms, leading to conflicting numbers and eroded trust in data.
  • Manual Translation: Teams spend significant effort manually reconciling semantic definitions when data moves between systems — an expensive and error-prone process.
  • AI Hallucinations: When AI agents encounter conflicting or incomplete business logic across tools, they produce unreliable outputs grounded in inconsistent data definitions.
  • Integration Debt: Every new tool added to the stack requires custom integration work, creating a web of brittle, point-to-point connectors that are costly to maintain.

How Apache Ossie Solves It

Ossie addresses semantic fragmentation by providing:

  • Single Source of Truth: A unified specification for semantic and metric definitions that all tools can read and write, ensuring consistency across the entire data stack.
  • Native Interoperability: A hub-and-spoke model where tools exchange semantic models through Ossie as a common format — enabling direct platform-to-platform exchange without custom connectors.
  • Trusted AI Grounding: Consistent business logic and rich AI context annotations ensure that AI agents and LLMs can reliably interpret and query data.
  • Reduced Total Cost of Ownership: Automated model exchange eliminates manual reconciliation work and reduces the engineering effort needed to integrate new tools.

Specification at a Glance

The Ossie core specification (current version: 0.2.0.dev0, latest released: 0.1.1) defines a YAML-based format for describing semantic models. The key constructs are:

ConstructDescription
Semantic ModelThe top-level container representing a complete semantic model, including datasets, relationships, and metrics.
DatasetsLogical datasets representing business entities (fact and dimension tables), with fields, primary keys, and unique keys.
FieldsRow-level attributes for grouping, filtering, and metric expressions. Fields support multiple SQL dialects for cross-platform compatibility.
RelationshipsForeign key connections between datasets, supporting both simple and composite keys.
MetricsQuantitative measures (sums, averages, ratios, etc.) defined at the model level, capable of spanning multiple datasets.
Custom ExtensionsVendor-specific metadata stored as JSON, allowing platforms to carry additional information without breaking core compatibility.
AI ContextOptional annotations at every level (model, dataset, field, relationship, metric) to help AI tools understand business meaning — including instructions, synonyms, and example queries.

The specification supports multiple SQL dialects (ANSI_SQL, SNOWFLAKE, DATABRICKS, MDX, TABLEAU) so that expressions can be tailored to each platform while maintaining a common model structure.

For the full specification, see core-spec/spec.md. For validation tooling, see validation/validate.py. For a complete example, see the TPC-DS semantic model.

Participating Organizations

Ossie is supported by a broad coalition of 50+ organizations across the data ecosystem, including:

Alation, Anomalo, Atlan, AtScale, Bigeye, BlackRock, Blue Yonder, Carto, Cloudera, Coalesce, Collate, Collibra, Cogniti, Count, Credible, Cube, Databricks, DataHub, Denodo, dbt Labs, Dremio, Domo, Elementum AI, Firebolt, GoodData, Hex, Honeydew, Informatica, Instacart, JetBrains, Lightdash, Mistral AI, Omni, Oracle, Preset, Qlik, RelationalAI, Salesforce, Select Star, Sigma, Snowflake, Starburst Data, Strategy, Sundial, ThoughtSpot, and more.

Converters

Ossie converters follow a hub-and-spoke architecture: the Ossie core specification acts as the central, vendor-neutral format, and each converter handles translation to or from a specific vendor format (e.g., Snowflake, dbt, Salesforce, Databricks). This avoids the need for point-to-point converters between every pair of vendors.

For details on implementing a converter, see the Converters Guide.


Project Governance

We wanted the Ossie project to be a collaborative effort from the start. The purpose is to grow a community of developers, contributors, and users who are actively involved in shaping the Ossie Specification as it moves along. Apache Ossie project governance is inspired by the governance model from The ASF.

The Apache Way

The Apache Way articulates around several values:

  1. Meritocracy Merit is based on your contribution, and it never expires. Those with merit get more responsibility. Any constructive contribution earns merit — code, documentation, testing, community support, and specification reviews all count equally.

  2. Peer-based The community involves mutual trust and respect. Every participant is treated as a peer regardless of employer affiliation or seniority. Decisions are made by the community, not by any single company or individual.

  3. Consensus decision making We strive for consensus in all decisions. When full consensus cannot be reached, a formal vote may be called. This ensures that all voices are heard and that decisions reflect the broadest possible agreement within the community.

  4. Collaborative development and Open Communications All technical discussions, design decisions, and specification changes happen in the open — on GitHub issues, pull requests, discussions. Private decisions are discouraged. If it didn‘t happen on a public resource, it didn’t happen.

  5. Responsible oversight The community collectively ensures that the specification and its associated tooling remain high quality, secure, and aligned with the project's mission of vendor-agnostic semantic interoperability.

  6. Independence The Ossie project operates independently of any single vendor or organization. While contributors may be employed by companies that have a stake in semantic interoperability, the project's direction is determined by the community as a whole.

Governing Bodies

As an incubating project, Apache Ossie is governed by its Podling Project Management Committee (PPMC), working alongside the project's Mentors and under the oversight of the Apache Incubator PMC (IPMC). See CONTRIBUTING.md for the full description of roles and process.

The PPMC is responsible for the overall direction and health of the podling. It:

  • Reviews and approves significant changes to the core specification
  • Guides the roadmap for new specification features and extensions
  • Ensures backward compatibility and coherence across specification versions
  • Casts binding votes and votes on committer/PPMC nominations and releases
  • Resolves technical disputes that cannot be settled through normal consensus

New committers and PPMC members are nominated and voted on by the PPMC following the standard ASF process. During incubation, releases are additionally approved by the Incubator PMC.

Current PPMC members and Mentors are listed on the podling status page.

Roles

  • Contributors: Anyone who contributes to the project in any form — code, documentation, bug reports, specification feedback, or community support. Contributor votes are non-binding, but everyone is encouraged to participate in all discussions and votes.
  • Committers: Contributors who have earned write access to the repository through sustained contributions. Committers merge pull requests and have binding votes on the project's technical decisions. All committers have an ICLA on file.
  • PPMC Members: Committers who also help steer the podling — growing the community, overseeing releases, and mentoring contributors. PPMC votes are binding.
  • Mentors: Experienced ASF members assigned by the Incubator to guide the podling and shepherd release votes to the IPMC.

Voting on Specification Changes

Changes to the Apache Ossie specification follow the ASF voting model, held on the dev@ossie.apache.org mailing list:

  1. Proposal: Announce the change on dev@ossie.apache.org and open a GitHub pull request describing the motivation, the change, and its impact on existing implementations.
  2. Discussion period: The community has a minimum of 7 days to review and discuss. Complex changes may require a longer window.
  3. Vote: A [VOTE] thread is called. Voters cast:
    • +1: In favor
    • 0: Abstain / no strong opinion
    • -1: Veto — must include a technical justification; a valid veto is resolved only by addressing the stated concern PPMC member votes are binding.
  4. Resolution: A specification change passes with at least three binding +1 votes and no vetoes.

Working Groups

Working groups are focused teams that drive specific areas of the specification forward. Each working group has a designated lead and members drawn from across the participating organizations.

For the full list of working groups, leads, and members, see the Working Groups page.

Community Meetings

Community meetings are open to all participants and provide a forum for discussing specification progress, working group updates, and community-wide topics. Meetings are held at both the global level and within individual working groups.

  • Global Community Meetings: Regular meetings open to all community members for cross-cutting discussions, roadmap reviews, and community announcements.
  • Working Group Meetings: Each working group holds its own meetings to drive focused progress on their specific area of the specification.

Meeting schedules, agendas, and notes are published on the Ossie website and the project's GitHub repository. All community members are welcome to attend and participate.

Google Calendar: link TBD


Architecture

Hub-and-Spoke Model

Ossie is designed around a hub-and-spoke architecture that dramatically simplifies the integration landscape. Instead of requiring every tool to build custom connectors to every other tool, Ossie acts as the universal interchange format at the center.

                        ┌─────────────┐
                        │  Snowflake  │
                        └──────┬──────┘
                               │
      ┌─────────────┐    ┌─────┴─────┐    ┌─────────────┐
      │     dbt     ├────┤   Ossie   ├────┤  Salesforce │
      └─────────────┘    └─────┬─────┘    └─────────────┘
                               │
                        ┌──────┴──────┐
                        │  Databricks │
                        └─────────────┘

With N vendors, a point-to-point strategy would require N×(N-1) converters. With Ossie as the hub, only 2×N converters are needed (one import and one export per vendor), and interoperability with all other vendors comes for free.

How It Flows

A typical Ossie-based workflow looks like this:

  1. Author: A semantic model is authored in one tool (e.g., dbt) or directly in the Ossie YAML format.
  2. Import: If authored in a vendor tool, the vendor's import converter translates it into an Ossie model, preserving vendor-specific metadata in custom_extensions.
  3. Validate: The Ossie model is validated against the JSON Schema and the validation script to ensure correctness.
  4. Exchange: The Ossie model is shared — via Git, a data catalog, or a sync API — with other teams and tools.
  5. Export: Each consuming tool's export converter translates the Ossie model into its native format, selecting the appropriate SQL dialect and applying vendor-specific extensions.
  6. Round-Trip: When changes are made in a downstream tool, they can be imported back into the Ossie model, preserving all metadata for lossless round-tripping.

Multi-Dialect Expression System

A key architectural feature of Ossie is its multi-dialect expression system. Fields and metrics can carry expressions in multiple SQL dialects simultaneously:

expression:
  dialects:
    - dialect: ANSI_SQL
      expression: LOWER(email)
    - dialect: SNOWFLAKE
      expression: LOWER(email)::VARCHAR
    - dialect: DATABRICKS
      expression: lower(email)

This allows a single semantic model to be consumed natively by different platforms without expression translation. Each converter selects the dialect that matches its target platform, falling back to ANSI_SQL when a platform-specific dialect is not available.


Frequently Asked Questions

General

What is a semantic model? A semantic model is a structured description of business data that defines what datasets exist, what their fields mean, how datasets relate to each other, and what metrics (KPIs) can be computed from the data. It serves as a shared vocabulary between data producers and consumers — whether those consumers are humans using BI tools or AI agents generating queries.

How is Ossie different from existing standards? Most existing standards focus on data formats (e.g., Parquet, Arrow), query interfaces (e.g., ODBC, JDBC), or catalog metadata (e.g., Hive Metastore, OpenMetadata). Ossie focuses specifically on the semantic layer — the business meaning, metric definitions, and relationships that sit on top of raw data. It is complementary to these other standards rather than a replacement.

Is Ossie tied to any specific vendor? No. Ossie is vendor-agnostic by design. The specification is developed and governed by a community of contributors from many organizations. While vendor-specific metadata can be carried via custom_extensions, the core specification is neutral.

Adoption

Can I use Ossie with my existing BI tool? Yes, as long as a converter exists (or is built) for your tool. The hub-and-spoke model means that adding Ossie support to a single tool gives it interoperability with every other Ossie-compatible tool. Check the Converters Guide for currently supported vendors.

What if my vendor isn't supported yet? You can contribute a converter. The Converters Guide provides a step-by-step guide for implementing import and export converters for new vendors. The community is happy to help with design reviews and testing.

Do I need to rewrite my existing semantic models? No. Import converters translate existing vendor-specific models into the Ossie format automatically. Your existing models remain intact — Ossie provides an additional interchange layer on top of them.

How do I validate an Ossie model? Use the validation script included in the repository. It checks your model against the JSON Schema, validates SQL expressions across dialects, and ensures referential integrity between datasets and relationships.

Technical

Why YAML and not JSON? YAML is more human-readable and easier to author by hand, which is important for a specification that teams may edit directly. The Ossie JSON Schema is available for programmatic validation, and converters can work with either format.

How does Ossie handle vendor-specific features? Through custom_extensions. Each vendor can store arbitrary JSON metadata in extension blocks tagged with their vendor name. This metadata is preserved during round-trip conversions and ignored by tools that don't understand it — ensuring that no information is lost.

Can metrics reference multiple datasets? Yes. Metrics are defined at the semantic model level (not within a dataset) and can reference fields from multiple datasets.

What SQL dialects are supported? The current specification supports ANSI_SQL, SNOWFLAKE, DATABRICKS, MDX, and TABLEAU. New dialects can be proposed through the standard specification change process.


Versioning and Compatibility Policy

Specification Versioning

The Ossie specification follows Semantic Versioning (SemVer):

  • Major version (e.g., 1.0.0 → 2.0.0): Breaking changes that are not backward compatible. Existing valid models may not be valid under the new version. Major version bumps are rare and go through an extended review and migration period.
  • Minor version (e.g., 0.1.0 → 0.2.0): New features or constructs added in a backward-compatible way. Existing valid models remain valid.
  • Patch version (e.g., 0.1.0 → 0.1.1): Bug fixes, clarifications, and editorial improvements to the specification. No functional changes.

Backward Compatibility

The community is committed to minimizing breaking changes. When backward-incompatible changes are necessary:

  1. They are flagged clearly in the specification changelog.
  2. A migration guide is provided describing how to update existing models.
  3. A deprecation period is observed when possible — deprecated constructs are marked in one version and removed in a subsequent version.

Extension Compatibility

Custom extensions (custom_extensions) are explicitly outside the scope of core compatibility guarantees. Vendors are responsible for maintaining compatibility within their own extension schemas. However, the core specification guarantees that custom_extensions blocks are always preserved during round-trip conversions, even by tools that do not understand them.


Adoption Guide

A practical guide for organizations looking to adopt Ossie.

Phase 1: Evaluate

  • Inventory your semantic layer: Identify which tools in your organization define semantic models — BI platforms, data modeling tools, AI/ML pipelines, metrics stores.
  • Map your pain points: Determine where semantic fragmentation causes the most friction — conflicting metric definitions, manual reconciliation, onboarding new tools.
  • Check converter availability: Review the Converters Guide to see if converters exist for your tools. If not, assess the effort to build one.

Phase 2: Pilot

  • Start with one model: Choose a well-understood semantic model (e.g., a core sales or finance model) and express it in the Ossie format.
  • Validate: Run the validation script to ensure the model conforms to the specification.
  • Test round-tripping: If converters are available, export the Ossie model to your vendor format and compare with the original. Identify any gaps or lossy conversions.
  • Gather feedback: Share the pilot results with your data team and collect feedback on the experience.

Phase 3: Expand

  • Convert additional models: Gradually bring more semantic models into the Ossie format, prioritizing those shared across multiple tools.
  • Integrate into workflows: Add Ossie validation to your CI/CD pipeline. Store Ossie models in version control alongside your data code.
  • Automate synchronization: Use converters (and eventually the Sync API) to automate the propagation of semantic model changes across your tool ecosystem.

Phase 4: Govern

  • Establish ownership: Define who owns each semantic model and who is responsible for approving changes.
  • Implement review processes: Use the voting and review processes described in this document (or your own governance model) to manage specification changes.
  • Monitor consistency: Regularly validate that the semantic models consumed by each tool are in sync with the authoritative Ossie model.

Glossary

TermDefinition
Semantic ModelA structured description of business data that defines datasets, fields, relationships, and metrics. It provides a shared vocabulary for interpreting data across tools and teams.
DatasetA logical representation of a business entity, typically corresponding to a fact table or dimension table in a data warehouse.
FieldA row-level attribute within a dataset, used for grouping, filtering, or as part of metric expressions. Fields can be simple column references or computed expressions.
DimensionA categorical attribute used to slice and filter data (e.g., region, product category, date). In Ossie, dimensions are represented as fields with optional metadata such as is_time.
MetricA quantitative measure computed by aggregating data across one or more datasets (e.g., total revenue, average order value). Metrics are defined at the semantic model level.
RelationshipA foreign key connection between two datasets, defining how they can be joined. Relationships are always many-to-one (from the referencing dataset to the referenced dataset).
DialectA specific SQL or expression language variant (e.g., ANSI_SQL, SNOWFLAKE, DATABRICKS). Ossie supports multiple dialects so expressions can be tailored to each platform.
Custom ExtensionVendor-specific metadata attached to any Ossie construct as a JSON string. Extensions allow platforms to carry additional information without modifying the core specification.
AI ContextOptional annotations on any Ossie construct (model, dataset, field, relationship, metric) that provide additional context for AI tools — including natural language instructions, synonyms, and example queries.
ConverterA tool that translates between the Ossie format and a specific vendor's semantic model format. Converters come in pairs: import (vendor → Ossie) and export (Ossie → vendor).
Hub-and-SpokeThe architectural pattern used by Ossie, where the specification acts as the central format (hub) and vendor converters act as spokes, avoiding the need for point-to-point integrations.
Round-Trip FidelityThe ability to convert a model from one format to Ossie and back without losing information. Achieved by preserving vendor-specific metadata in custom_extensions.
Fact TableA dataset that records business events or transactions (e.g., sales, clicks, shipments). Fact tables typically contain numeric measures and foreign keys to dimension tables.
Dimension TableA dataset that describes business entities referenced by fact tables (e.g., customers, products, dates). Dimension tables provide the context for analyzing facts.
Semantic LayerThe abstraction layer between raw data and business users/tools. It defines the business meaning of data, standardizes metric calculations, and provides a consistent query interface.

Related Resources


Contributing

We welcome contributions from everyone — whether you are a developer, a data engineer, a BI analyst, or simply someone interested in the future of semantic interoperability.

Ways to Contribute

  • Specification Feedback: Review proposed specification changes and share your perspective on GitHub pull requests and issues.
  • Use Case Discussions: Share how your organization uses semantic models and what challenges you face — this helps shape the specification to address real-world needs.
  • Code Contributions: Contribute to validation tooling, converters, examples, or any other part of the project.
  • Documentation: Help improve and expand the project documentation.
  • Community Support: Answer questions, participate in discussions, and help onboard new contributors.

Getting Started

  1. Read the Specification: Familiarize yourself with the core specification to understand the semantic model format.
  2. Explore the Examples: Review the TPC-DS example to see a complete semantic model in practice.
  3. Join the Conversation: Open or participate in GitHub Issues and Discussions to share ideas and feedback.
  4. Submit a Pull Request: Fork the repository, make your changes, and submit a pull request. All contributions go through the standard review process described in the governance section above.
  5. Join the Slack workspace: You can chat directly with the community by joining Slack.

Code of Conduct

All participants in the Ossie community are expected to treat each other with respect and professionalism. We are committed to providing a welcoming and inclusive environment for everyone, regardless of background or experience level.


License

All content in this repository — including code, specification, and documentation — is licensed under the Apache License 2.0.