An inspectable business model, deployed natively.
The business model, the observed schema, the mappings and the native output are distinct, inspectable artifacts — reviewed in Git and deployed as Unity Catalog metric views or Snowflake semantic views.
What does revenue mean here?
One question, three distinct artifacts: the declared definition, the mapping to physical columns, and the computed result. They are related — and they are not the same thing.
Question
“How much did revenue grow?”
AI answer without the business definition
Revenue grew 10%.
Gross revenue: $10.0m → $11.0m. The gross-revenue answer is 4.6 percentage points above the growth Finance reports.
Gross revenue, Q2 vs Q3 2026
Growth: 10.0%
| Component | Q2 | Q3 |
|---|---|---|
| Gross revenue | $10.0m | $11.0m |
| Discounts | $0.5m | $0.8m |
| Credits | $0.2m | $0.4m |
| Net revenue | $9.3m | $9.8m |
Fictional example in USD. Not customer data.
- 01
Declaration
The business definition and its owner, declared once in versioned YAML.
- 02
Mapping
Each mapping carries at most one typed target location; a definition can have several mappings.
- 03
Result
The number the platform computes from that mapping — reproducible, not re-explained.
The business model, as a record.
Every fact below is a stored, reviewable value. The stable identifier and the source mapping reference are exposed separately from the business wording.
- Metric
- net-revenue — the stable identifier
- Definition
- Declared once; the mapping binds it to columns
- Synonyms
- Resolved to the same identifier
- Unit
- USD
- Owner
- Finance — recorded on the declaration
- Dimensions
- quarter, customer_segment — mapped to source columns
- Reports
- Report usage recorded per metric
metric:
name: Net revenue
identifier: net-revenue
description: Gross revenue less discounts and credits, in USD for the selected quarter.
unit: USD
period: Quarterly
businessOwner: Finance
formula:
pretty: Net revenue = Gross revenue - Discounts - CreditsQ1 · How much did revenue grow?
10% on gross — the column an assistant finds first.
Q2 · Show the business definition.
Net revenue grew 5.4%: gross − discounts − credits, owned by Finance.
Q3 · Why did discounts grow faster?
The grounded answer opens the next business question — and any missing definition returns to business review.
Declared definition → target mapping → native semantic asset.
Duodata captures and maintains the business model and its connection to the implementation. Platforms ship capable native semantics — Duodata feeds them, it does not replace them.
From business meaning to platform execution
Defined by the business
Net revenue
= gross revenue − discounts − credits
- Owner
- Finance
- Used for
- Quarterly reporting
Model, mappings and native output
Your business meaning, ready for AI
One agreed definition with an owner, a time grain and the words people use to ask for it.
Choose your platform
Your platform executes the calculation. Pick one; you don't need both.
Answer in Cortex Analyst
Net revenue grew 5.4% from Q2 to Q3.
Definition used: net revenue = gross revenue − discounts − credits (owner: Finance), served through Semantic Views.
Fictional example
Reviewed SQL sums the amounts per calendar quarter into the persisted Gold table snapshot.
Calculation, report usage and influence are different things.
Solid edges compute the number. A dashed edge records an asserted business influence for review — it is not proved causation and not part of the reconciliation.
- Gross revenue
- Discounts
- Credits
Net revenue
Owner: Finance · Quarterly
An asserted business relationship, recorded for review. It is not a calculation, not proved causation, and not part of the numeric reconciliation.
Meaning changes and implementation changes are reviewed differently.
A definition change is a business policy review. A schema change is a mapping review. Both are human decisions, recorded and carried through — never silently auto-fixed.
Meaning change
The business revises a policy or definition — for example, how conditional inspections count. Review is a human, business-owned decision; the change is recorded with its owner and date.
Implementation change
A column or schema changes in the source. The impacted mapping surfaces for review; nothing is silently re-pointed. There is no universal auto-fix — a person confirms the new mapping before it deploys.
Mapping and native output match the observed schema.
1 · Observed schema
DEMO.GOLD.REVENUE_BY_QUARTER
Snowflake database DEMO, schema GOLD, table REVENUE_BY_QUARTER
- CREDITS NUMBER(18,2)
- DISCOUNTS NUMBER(18,2)
- GROSS_REVENUE NUMBER(18,2)
- QUARTER DATE
2 · Mapping
| Logical | Physical |
|---|---|
| gross_revenue | GROSS_REVENUE |
| discounts | DISCOUNTS |
| credits | CREDITS |
Business definition unchanged: net revenue = gross revenue − discounts − credits.
3 · Totals
- Q2 net revenue
- $9.3m
- Q3 net revenue
- $9.8m
Mapping current
format: schema.yaml
version: "1.0"
schemas:
- source:
database: DEMO
schema: GOLD
type: snowflake
tables:
REVENUE_BY_QUARTER:
columns:
CREDITS: {type: "NUMBER(18,2)", is: [notnull]}
DISCOUNTS: {type: "NUMBER(18,2)", is: [notnull]}
GROSS_REVENUE: {type: "NUMBER(18,2)", is: [notnull]}
QUARTER: {type: DATE, is: [notnull]}name: revenue_semantics
description: Fictional quarterly revenue example.
tables:
- name: revenue
base_table:
database: DEMO
schema: GOLD
table: REVENUE_BY_QUARTER
time_dimensions:
- name: quarter
expr: QUARTER
data_type: DATE
facts:
- name: gross_revenue
expr: GROSS_REVENUE
data_type: NUMBER
- name: discounts
expr: DISCOUNTS
data_type: NUMBER
- name: credits
expr: CREDITS
data_type: NUMBER
metrics:
- name: net_revenue
expr: SUM(gross_revenue) - SUM(discounts) - SUM(credits)Fictional example. Nothing here runs against a warehouse.
Metrics ontology, semantic layer and data catalog are complementary.
Catalogs already store terms, owners, relationships and policies, and platforms ship native semantics. The value Duodata adds is focused business participation and maintained meaning and mappings — not universal sync or connector promises.
Metrics ontology
What measures mean, who owns them, how they relate.
Duodata: Duodata's home: business participation, meaning and mappings, review and ongoing maintenance.
Semantic layer
How measures compute against data, natively in the platform.
Duodata: Duodata deploys into it: Unity Catalog metric views, Snowflake semantic views.
Data catalog
What data exists, where it lives, who can use it. Catalogs already store terms, owners, relationships and policies.
Duodata: Duodata contributes governed definitions and maintained mappings the catalog can reference.
On Databricks, this sits alongside Unity Catalog Semantics metric views, Pages and Domains, and the modeled and inferred context of Genie Ontology — Duodata curates definitions and mappings for those capabilities and does not control Genie's ranking. Supporting reading(opens in a new tab)
Start with measures; contribute to something wider.
A focused metrics model is not a rung on a maturity ladder. Scientific, clinical and broad domain models serve different needs — and a focused model can contribute to a wider enterprise ontology program through open formats, across an explicit boundary.
Duodata scope · focused business model
Measures, their definitions, owners, dimensions and reports — plus the business entities and entity relationships they refer to. Small enough for business participation.
Analytics interchange · Apache Ossie (incubating)
The open semantic-model interchange carries the agreed model into platform-native semantic assets — its verified role.
Alignment with your enterprise ontology
Broader programs stay customer-owned — wider domain models, vocabularies and reasoning serve different needs. The focused model contributes its agreed concepts and metric definitions to them; it does not replace them.
Ontology-guided engineering, layer by layer.
Definitions drive agent and review work into native semantics, gold facts and dimensions, and silver preparation — with bronze source validation underneath. Select a layer to see its input, output and check.
Defined once by the business
Duodata Metrics Ontology
- Definitions & formulas
- Dimensions & relationships
- Governance & ownership
Guided work
Agents & review
Create, test and maintain each layer — with human review before deploy.
- Input
- Reviewed mappings and the declared business definitions.
- Output
- A Unity Catalog metric view or Snowflake semantic view, ready for Genie or Cortex Analyst.
- Check
- Native validation — the semantic asset compiles and answers with the agreed definition.
Observed schema, mapping and native output stay separate.
The observed schema captures physical structure. The mapping model binds business terms to columns. Native output is what the platform runs. All three follow the platform selected above.
format: schema.yaml
version: "1.0"
schemas:
- source:
database: DEMO
schema: GOLD
type: snowflake
tables:
REVENUE_BY_QUARTER:
columns:
CREDITS: {type: "NUMBER(18,2)", is: [notnull]}
DISCOUNTS: {type: "NUMBER(18,2)", is: [notnull]}
GROSS_REVENUE: {type: "NUMBER(18,2)", is: [notnull]}
QUARTER: {type: DATE, is: [notnull]}| Business term | Logical | Column |
|---|---|---|
| Gross revenue | gross_revenue | DEMO.GOLD.REVENUE_BY_QUARTER.GROSS_REVENUE |
| Discounts | discounts | DEMO.GOLD.REVENUE_BY_QUARTER.DISCOUNTS |
| Credits | credits | DEMO.GOLD.REVENUE_BY_QUARTER.CREDITS |
| Quarter | quarter | DEMO.GOLD.REVENUE_BY_QUARTER.QUARTER |
Apache Ossie (incubating) is the open interchange between the mapping model and platform-native outputs. Open formats
Four artifact kinds, four owners.
Git makes every file diffable; customer review and adoption carry refinements back to the declared meaning.
declared/metrics/net-revenue.duodata.yaml
Business declaration plus target mappings. Core publishes from here.
observed/<system>/<DB>.<SCHEMA>.schema.yaml
Physical introspection of the source. Machine-owned, never hand-edited.
derived/<system>/<report>.ossie.yaml
The open semantic model Core projects — Apache Ossie (incubating) 0.1.1.
derived/<system>/<report>.refined.sv.yaml
Verified Snowflake refinement artifact, owned by the platform agent.
- A business formula is not the upstream calculation, the target aggregation, or the location mapping — they are distinct, typed parts.
- A schemaObjectRef is physical; a semanticObjectRef points into the semantic store. Each mapping carries at most one typed target location; a definition can have several mappings.
- Core currently emits Apache Ossie (incubating) 0.1.1 — a verified interchange, not a promise of future versions.
- Native artifacts here are explanatory examples. Execution happens in your warehouse, under your controls.
Explanatory examples of what deploys.
CREATE OR REPLACE VIEW demo.gold.revenue_semantics
WITH METRICS
LANGUAGE YAML
AS $$
version: "1.1"
comment: Fictional quarterly revenue example.
source: demo.gold.revenue_by_quarter
fields:
- name: quarter
expr: source.quarter
measures:
- name: net_revenue
expr: SUM(source.gross_revenue) - SUM(source.discounts) - SUM(source.credits)
$$;name: revenue_semantics
description: Fictional quarterly revenue example.
tables:
- name: revenue
base_table:
database: DEMO
schema: GOLD
table: REVENUE_BY_QUARTER
time_dimensions:
- name: quarter
expr: QUARTER
data_type: DATE
facts:
- name: gross_revenue
expr: GROSS_REVENUE
data_type: NUMBER
- name: discounts
expr: DISCOUNTS
data_type: NUMBER
- name: credits
expr: CREDITS
data_type: NUMBER
metrics:
- name: net_revenue
expr: SUM(gross_revenue) - SUM(discounts) - SUM(credits)Primary sources.
Jessica Talisman's writing informs how we distinguish shared business language, practical semantic models and formal ontology programs. The platform references are the official documentation.
- Jessica Talisman — The Semantics of Semantics(opens in a new tab)
- Jessica Talisman — Language is the Bridge(opens in a new tab)
- Jessica Talisman — Ontologies and Other Myths(opens in a new tab)
- Databricks — Operationalizing Genie Ontology(opens in a new tab)
- Databricks — Metric views YAML reference(opens in a new tab)
- Snowflake — Semantic views overview(opens in a new tab)
- Snowflake — Semantic view YAML specification(opens in a new tab)
- Apache Incubator — Ossie(opens in a new tab)
Built for Snowflake and Databricks.
Databricks
Business meaning deploys as Unity Catalog metric views, answered by AI/BI Genie.
Explore Duodata for DatabricksSnowflake
Business meaning deploys as Semantic Views, answered by Cortex Analyst.
Explore Duodata for SnowflakeStart a free pilot
We work through one business question with you: agree its meaning, map it to the relevant data and review how it works on Snowflake or Databricks. We agree the scope together before we start.
- 01One business question
- 02One owner of the definition
- 03The data it depends on
- 04A review on your platform
- Start a free pilotWatch demo

