Add OSI (Open Semantic Interchange) Support in Polaris
- Dominant language
- Java
- Stars
- 2.1k
- Forks
- 522
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 137
Description
### Is your feature request related to a problem? Please describe.
Polaris already governs physical table metadata via the Iceberg/Polaris REST Catalog API. The semantic layer above those tables is currently scattered across dbt projects, Cube definitions, BI-tool-specific YAML, and vendor-owned semantic views. Each consumer (BI dashboard, LLM agent, notebook) re-derives definitions like "monthly recurring revenue" from incomplete inputs. By hosting OSI models in Polaris, we can support following use cases:
1. AI agent grounding. An LLM agent answering "what were our top three metrics by region last quarter?" loads the relevant OSI models, reads ai_context for descriptions and synonyms, walks dataset.source to find the underlying tables, and constructs an accurate query. Polaris is the system of record for "what metrics exist and what do they mean."
2. BI catalog browsing. A BI tool lists all semantic models under a namespace via the Polaris API, populates its metric grid from the returned identifiers and ai_context, and lets users drag metrics onto dashboards. The same definitions feed dashboards in tools that don't share a backend.
3. Multi-engine metric consistency. A data team defines monthly_recurring_revenue once as an OSI metric in Polaris. Spark, Trino, and others clients each read the same definition (with their respective SQL dialect picked from expression.dialects[]) and produce identical numbers. Without this, each engine's BI layer re-derives the metric independently and the numbers drift.
### Describe the solution you'd like
_No response_
### Describe alternatives you've considered
_No response_
### Additional context
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.