{
  "id": "dwd_5hhpphgh",
  "type": "teardown",
  "slug": "open-semantic-interchange",
  "title": "Open Semantic Interchange (Apache Ossie): what it is, and what it isn't yet",
  "summary": "OSI is a portable format for semantic models: datasets, fields, joins, metrics and AI context. It is not a catalog, glossary, lineage or governance standard. Export to it; don't build your core on it yet.",
  "status": "draft",
  "classification": "public",
  "authors": [
    {
      "name": "Shan Umasankar",
      "url": "https://dealwithdata.com",
      "role": "author"
    }
  ],
  "assisted_by": [
    "Claude"
  ],
  "scales": [
    "business",
    "enterprise"
  ],
  "tags": [
    "standards",
    "semantic-layer",
    "ai"
  ],
  "terms": [
    "dwd_5k2ibrbv",
    "dwd_xzf7arim",
    "dwd_2agj6wti",
    "dwd_lk4rq6xm"
  ],
  "related": [
    "dwd_wg5zzqg2",
    "dwd_cb2bgvae"
  ],
  "as_of": "2026-10-07",
  "sources": [
    {
      "title": "Apache Ossie: Core Metadata Specification",
      "url": "https://github.com/apache/ossie/blob/main/core-spec/spec.md",
      "accessed": "2026-10-07"
    },
    {
      "title": "Apache Ossie Roadmap",
      "url": "https://github.com/apache/ossie/blob/main/ROADMAP.md",
      "accessed": "2026-10-07"
    },
    {
      "title": "OSI Community Update: What's New and What's Next (April 2026)",
      "url": "https://ossie.apache.org/updates/osi-april-2026-community-update/",
      "accessed": "2026-10-07"
    },
    {
      "title": "Snowflake: OSI specification now live",
      "url": "https://www.snowflake.com/en/blog/open-semantic-interchanges-specs-finalized/",
      "accessed": "2026-10-07"
    }
  ],
  "created": "2026-10-07",
  "updated": "2026-10-07",
  "version": 1,
  "url": "https://dealwithdata.com/c/open-semantic-interchange/",
  "markdown_url": "https://dealwithdata.com/c/open-semantic-interchange.md",
  "body_markdown": "**In one line:** OSI lets BI and AI tools exchange the *structure* of a\n[[semantic-layer]] model. Everything else, such as identity, governance,\nglossary and lineage, is out of scope or still on the roadmap.\n\n## Status\n\n- Started by Snowflake with dbt Labs, Databricks, Salesforce and others; the\n  first spec went public in January 2026 under Apache 2.0.\n- Now **Apache Ossie**, in the Apache Incubator. Oracle, Cloudera, Dataiku,\n  Denodo and Dremio are among the later joiners.\n- Only formal release: **0.1.1** (December 2025). The in-development\n  **0.2.0.dev0** has already made one breaking change: one model per\n  document, with the old `semantic_model` array removed. The spec itself\n  says not to depend on it in production.\n\n## The whole model\n\n| Construct | What it holds |\n|---|---|\n| Semantic model | `version`, `name`, `description`, `ai_context`, and the lists below |\n| Datasets | Logical entities pointing at a physical `source`, with primary and unique keys |\n| Fields | Row-level attributes defined by an expression, in one or more SQL dialects |\n| Relationships | Foreign-key joins between datasets, simple or composite |\n| Metrics | Aggregate expressions at model level; may span datasets |\n| `ai_context` | Instructions, synonyms and example questions, on almost any object |\n| `custom_extensions` | Vendor-tagged JSON for anything the core doesn't cover |\n\nSupported dialects include ANSI SQL, Snowflake, Databricks, BigQuery, DAX,\nMDX, Tableau and Ossie's own portable SQL.\n\n## What it does not cover (yet)\n\n- **Stable identifiers.** Objects are identified by `name`; stable IDs are an\n  open discussion.\n- **Governance.** No owner, steward, certification or criticality field.\n- **Sensitivity.** PII and confidentiality flags are proposals only.\n- **Meaning.** No [[business-glossary]] or ontology; the project describes\n  its own scope as structural, not conceptual, interoperability. An ontology\n  working group is active.\n- **Lineage.** Use OpenLineage.\n- **Storage and versioning.** No registry and no model versioning. The\n  document's `version` is the *spec* version, not yours. Catalog\n  integration and a semantic registry are roadmap items.\n\n## A governed field, the practical way\n\nCarry your governance in an extension until the spec grows the slots:\n\n```yaml\n- name: mortgage_outstanding_balance\n  expression:\n    dialects:\n      - dialect: ANSI_SQL\n        expression: outstanding_bal_amt\n  datatype: Decimal\n  description: Unpaid principal on the mortgage as of the reporting date, excluding escrow.\n  ai_context:\n    synonyms: [\"UPB\", \"outstanding principal\"]\n  custom_extensions:\n    - vendor_name: ACME_CATALOG\n      data: '{\"global_id\":\"BE-000123\",\"cde\":true,\"status\":\"certified\",\"model_version\":\"2026.10.1\"}'\n```\n\n## Where to store and version OSI files\n\nNothing is standardized, so do what works today:\n\n1. **Generate** OSI from your catalog, the system of record. Never hand-edit.\n2. **Keep it in Git**, one file per model. CI runs the project's validator\n   (schema, unique names, references, SQL syntax).\n3. **Tag a release** when stewards approve a change set.\n4. **Deploy outward** with the community converters (Snowflake Cortex\n   Analyst, GoodData, Salesforce, Apache Polaris).\n\n## Verdict\n\n- **Don't build your core model on it.** It is pre-1.0, has broken its schema\n  once, and lacks IDs and governance.\n- **Do export to it.** It is cheap, and the BI and AI vendors are converging\n  on it.\n- **Join the working groups if you can.** Governance, identity and catalog\n  integration are exactly where regulated industries have the most to say,\n  and they are under-represented.\n\n## Three scales\n\n- **Business:** if you run dbt or a single BI tool, OSI is mostly invisible;\n  it matters when you add a second tool or an AI analyst.\n- **Enterprise:** OSI is one outbound channel among several, next to\n  lineage, events and an agent interface. See the consumption pattern.\n"
}