Member-only story
How to Build a Portable Semantic Layer: A Deep Dive into Apache Ossie
The problem nobody wants to admit
Every modern data team eventually ends up with the same quiet embarrassment: three or four different definitions of “revenue.” One lives in a dbt model. One is baked into a Looker dimension_group. One is a DAX measure in a Power BI semantic model. One is a saved calculation in Tableau that nobody remembers building.
They all mostly agree, until a board deck shows two different numbers for the same quarter and someone has to spend an afternoon reconciling SQL dialects by hand.
If you are not a member, you can still read this article for free here
This is the “semantic layer” problem, and it has gotten worse, not better, as the BI landscape has fragmented across platforms and now as AI agents start generating their own queries against business data. An LLM that doesn’t know your canonical definition of “active customer” will cheerfully invent one. Multiply that across every vendor’s proprietary metrics layer (dbt Semantic Layer, LookML, Power BI’s model.bim, Snowflake Semantic Views, ThoughtSpot, ModelOps layers from Databricks and GoodData), and you get an interoperability nightmare that is architecturally identical to the pre-ODBC database era: every tool speaks its own private dialect, and nobody can move a model between them without a full rewrite.
Apache Ossie (incubating) previously known as Open Semantic Interchange (OSI) is a new industry specification…









