CONCEPT Cited by 1 source
Metamodel¶
Definition¶
A metamodel is a model of models — a formal specification whose instances are themselves modelling languages or domain models. Where a domain model describes a domain ("a movie has attributes X, Y, Z"), a metamodel describes how to build a domain model ("a domain model is a set of keyed concepts with attributes and relationships, organised into taxonomies").
Why metamodels matter¶
A metamodel enables homogeneous tooling across heterogeneous models. If every domain model conforms to the same metamodel, then one toolchain — parsers, validators, diff, query, schema transpilers, UIs — works on all of them. Without a metamodel, every domain requires bespoke tooling; with one, tooling scales like the metamodel, not like the count of domains.
Canonical wiki instance: Netflix Upper¶
Upper — the metamodel underneath UDA — is the wiki's canonical metamodel instance. "Upper is the metamodel for Connected Data in UDA — the model for all models." Upper is specifically a bootstrapping upper ontology — see patterns/self-referencing-metamodel-bootstrap:
- Self-referencing — Upper models itself as a domain model.
- Self-describing — Upper defines the very concept of a domain model.
- Self-validating — Upper conforms to its own model.
The practical consequence: every Upper tool works on Upper itself, and Upper's own projections (Java API, GraphQL schema) exercise UDA's transpiler family in production.
Metamodel vs schema¶
A schema (GraphQL / Avro / SQL) describes the shape of instance data. A metamodel sits one level up: it describes the shape of schemas (or of domain models that generate schemas). The UDA post's framing: domain models project into schemas; Upper sits above domain models.
Upper (metamodel) ← "a domain model consists of …"
↓ instance-of
domain model ← "a movie has a title, a cast, …"
↓ transpile
GraphQL / Avro / SQL ← target schemas
↓ instance-of
instance data ← actual movies in the warehouse
Related in spirit¶
- OMG MOF (Meta-Object Facility) — the classical four-level metamodelling stack (M3 metameta → M2 meta → M1 model → M0 instance).
- UML's meta-circular definition — UML is a metamodel whose M2 layer is itself UML.
- RDFS / OWL — graph-native metamodelling primitives Upper builds on.
The Netflix UDA post doesn't cite MOF / UML explicitly but uses the same structural idea, ported to RDF + SHACL + a domain-modelling-friendly façade.
Seen in¶
- sources/2025-06-14-netflix-model-once-represent-everywhere-uda — Upper is the canonical wiki instance.
Related¶
- systems/netflix-upper — the canonical instance.
- systems/netflix-uda — the platform built on top.
- concepts/domain-model — what a metamodel models.
- concepts/upper-ontology — Upper's specific role.
- concepts/conservative-extension — the composition-safety property that makes metamodel-based extension stable.
- patterns/self-referencing-metamodel-bootstrap — the self-hosting pattern Upper embodies.
- patterns/model-once-represent-everywhere — the pattern metamodels enable at scale.