モデル変換
任意の与えられたモデルについて一貫するモデルが常に1つ存在する。すなわち、一貫性関係は全単射である。それらモデルの対は、一貫性全単射で関係しているときのみ一貫している。どちらのモデルも同じ情報を持つが、表現が異なる。
一方向性モデル変換には唯一の実行モードしかなく、常に同種の入力を受け付けて、別の同種の出力を生成する。一方向性モデル変換はコンパイル的状況で便利であり、そこでの出力モデルは常にリードオンリーである。その際の一貫性は非常に単純であり、入力モデルは変換によって出力されるモデルと一貫しているだけである。
双方向性モデル変換では、同種のモデルが入力にも出力にもなる。双方向性モデル変換は、人々が複数のモデルを扱い、それらの間で一貫性を保たなければならない場合に必要となる。例えば、あるモデルに変更を加えたとき、一貫性を保つために他のモデルも変更する必要が生じる。モデルには他のモデルに反映されない情報が含まれることがあるので、あるモデルと一貫している多くのモデルが存在することもある。次のような重要な特殊ケースがある。
モデル変換はモデルを入力とするプログラムとみなすことができる。モデル変換の種類と用法は様々であり、特に入力と出力の表現方法が様々である。
モデル変換では通常、入力として受け付け可能なモデルと、もしあれば出力として生成するモデルを指定するのに、それらが準拠しなければならないメタモデルを指定する。
入力と出力のモデルが同じ言語の場合、その変換を「内因的」(endogenous) と呼ぶ。逆に言語が異なっているなら、その変換を「外因的」(exogenous) と呼ぶ。例えば、OMGのモデル駆動型アーキテクチャにおいてはプラットフォーム独立モデルからプラットフォーム特化モデルへの変換が行われるが、これは外因的モデル変換である。