The Metamodel: A Model of the Models¶
Type: Non-normative
SMF never works alone. A business number rests on a dataset described by a data contract, is computed by a metric in a semantic layer or an interchange model, is used by a report or an AI assistant, and ends up in a decision. Each of those has its own standard, and each standard leaves something to the others.
This page draws that landscape once: the kinds of things each standard produces, and the connections between them. It is a model of the models. Use it to see where SMF sits, which connections it owns, and where the others hand off to it.
The four columns¶
| Column | What lives there | Standards and tools |
|---|---|---|
| Data | Datasets and the promises made about them | Data contracts (ODCS / ODPS), data platforms |
| Meaning | What a term or number means, from which perspective, who decides | SMF: Concepts, Perspectives, Semantic Contracts, answer rules |
| Analytics and AI | Where the number is computed and the model that carries it between tools | Semantic layers, BI models, Apache Ossie, metric stores |
| Decision | The question asked, the answer given, the number that was relied on | Contexts, consumers (reports, AI assistants), claims and checks |
Meaning is the only column with connections into all three others. That is the whole reason it needs its own discipline.
The map¶
flowchart LR
subgraph DATA["Data"]
DC["Data contract<br/>(ODCS)"]
end
subgraph MEANING["Meaning (SMF)"]
C["Concept"]
P["Perspective<br/>owner"]
MC["Metric Contract<br/>owner · approved uses · comparability"]
R["Answer rule"]
end
subgraph ANALYTICS["Analytics and AI"]
B["Build record"]
O["Interchange model<br/>(Apache Ossie metric)"]
S["Semantic layer / BI measure<br/>(generated from the model)"]
end
subgraph DECISION["Decision"]
X["Context"]
U["Consumer<br/>(report, AI assistant)"]
CL["Claim<br/>(a number someone relied on)"]
T["Check"]
end
DC -- "built on" --> MC
DC -. "points to its business definition" .-> MC
C -- "has" --> P
P -- "measured by" --> MC
MC -- "comparable / not comparable with" --> MC
MC -- "implemented in" --> B
B -- "names" --> O
B -- "names" --> S
O -. "points to its contract" .-> MC
O -- "generated into" --> S
X -- "selects" --> R
R -- "applies to" --> P
R -- "gives one of five answers to" --> U
U -- "produces" --> CL
CL -- "backed by" --> MC
CL -- "computed by" --> B
T -- "tests" --> U
T -- "tests" --> B
Solid lines are connections SMF records. Dotted lines are the same connections recorded from the other side, in the other standard's own file. Where both exist they must agree; neither restates the other.
The connections, and who owns each¶
| From | Connection | To | Recorded by | Plain meaning |
|---|---|---|---|---|
| Data contract | built on | Metric Contract | SMF (the contract lists its data contracts) and ODCS (the field points to its business definition) | This number stands on these datasets |
| Concept | has | Perspective | SMF | Two things can be true; each has an owner |
| Perspective | measured by | Metric Contract | SMF | This is the agreed number for this perspective |
| Metric Contract | comparable or not comparable with | Metric Contract | SMF | What may and may not be compared or combined |
| Metric Contract | implemented in | Build record | SMF | Where the number is actually calculated, and whether it still matches |
| Build record | names | Interchange model, semantic layer, BI measure, spreadsheet | SMF | The locator inside the tool |
| Interchange model | points to its contract | Metric Contract | Apache Ossie (its extension slot, by convention) | The model says which agreement governs it |
| Semantic layer metric | points to its contract | Metric Contract | The semantic layer (its notes slot, by convention; shown for dbt in the reference) | The metric says which agreement governs it |
| Data product | serves | Metric Contract | ODPS (the product points to the business definition and names the data contract version behind each port) | Which packaged data this number is delivered from |
| Interchange model | generated into | Semantic layer or BI measure | SMF (the build record says what it was derived from) | Test the hub once; the spokes are generated |
| Context | selects | Answer rule | SMF | Who is asking, where, for what |
| Answer rule | applies to | Perspective | SMF | Which meaning this situation gets |
| Answer rule | gives one of five answers to | Consumer | SMF | Use it, use the replacement, ask, flag the conflict, not governed |
| Consumer | produces | Claim | SMF | A number someone relied on |
| Claim | backed by | Metric Contract version | SMF | Which agreement, which version |
| Claim | computed by | Build record | SMF, with lineage (OpenLineage) for the run | Which build, which run, which data snapshot |
| Check | tests | Consumer, Build record | SMF | Did it use the right meaning? Does the build still match? |
Technical names for every connection, including those recorded in other standards' files, are in the reference.
Two ways to read it¶
Right to left is the audit trail of a decision. The board saw 31%. The claim names the contract version. The contract names the perspective and the owner who signed it. The build record names the metric that computed it. The data contract names the dataset it stood on. Every hop is a card with a standard behind it. When someone asks "why is it that number?", the answer is a person, a date and a decision, and it is already written down.
Left to right is the operating picture. Which concepts have perspectives with no owner. Which contracts have no build record. Which builds have drifted from their contract. Which claims rest on an untested build. Each of these is a connection that should exist and does not. The gap catalogue lists them.
What SMF deliberately does not own¶
The map also shows the hand-offs. SMF does not describe datasets (ODCS does), does not carry the executable calculation (the semantic layer or the Ossie model does), does not record lineage (OpenLineage does), and does not store any of this in a system of its own. Everything in the Meaning column is a file that can live in a repository, a catalog or a shared folder. The connections are the product; the storage is whatever you already have.
That is the boundary with catalogs and governance platforms: they are systems of record for data. The metamodel is a way of reading them, plus one small system of record for meaning.