Whenever multiple representations or models of a system exist, there is the possibility of defining how they relate. In model driven software development, it is essential that these mappings are defined precisely and automated as far as possible: they form the basis for generation of code and other models from a model, for reconciliation and management of consistency between models, and even for the definition of modeling languages themselves. A standard way of defining software modeling languages is metamodeling, which involves the construction of an object model of the syntax and, optionally, semantics of the language, using the diagrammatic syntax of the Unified Modeling Language (UML). This paper proposes an extension to UML for expressing mappings between models using diagrams, and illustrates how the extension can be used in metamodeling. The extension is inspired by mathematical relations and corrects a deficiency in the concept of association in class diagrams. The notat...