A modelling language can be defined by a meta-model in UML class diagram. This paper defines the semantics of such metamodels through two mappings: a signature mapping from metamodels to signatures of first order languages and an axiom mapping from metamodels to sets of axioms over the signature. Valid models, i.e. instances of the metamodel, are therefore mathematical structures in the signature that satisfies the axioms. This semantics definition enables us to analyse the logical consistency and completeness of metamodels. A software tool called LAMBDES is implemented to translate metamodels into first order logic systems and analyse them by employing the theorem prover SPASS. Case studies with the tool detected inconsistency and incompleteness in the metamodel of UML 2.0 and an AspectJ profile.