Metamodel is a collection of concepts (frames, rules, terms, constraints, models and theories) that are applicable and useful for modeling a predefined class of problems.
A model is an abstraction of phenomena in the real world; a metamodel is yet another abstraction, highlighting properties of the model itself. A model conforms to its metamodel in the way that a computer program conforms to the grammar of the programming language in which it is written.
Metamodeling, or meta-modeling in software engineering and systems engineering among other disciplines, is the analysis, construction and development of the frames, rules, constraints, models and theories applicable and useful for modeling a predefined class of problems.
Metamodeling is usually defines of a collection of concepts within a certain domain.