Skip to content

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
  • 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

Last updated · 319 distilled / 1,201 read