I mention this because metamodels are themselves models. When an observer decodes a metamodel, understanding of a code is the result, just as when a regular program model is decoded, understanding of a program is the result. Since metamodels are themselves models, they too have canonical codes. These metacodes allow the observer to understand other codes. Metacodes in turn are modeled by meta-metamodels .
Concepts are abstract.
They're physically represented with models . To determine which concept a model represents, known as decoding the model, the observer uses a code . Codes are concepts. They're physically represented with metamodels . To decode a metamodel, the observer uses a metacode .