Curiously, the UML specification uses UML to explain UML. In other words, the specification builds a UML model of UML. This model is called the UML meta-model.
To reduce the obvious circularity, the meta-model only uses a tiny subset of UML. Essentially, the meta-model consists of class diagrams that are used to model the other types of diagrams: statechart, sequence, use case, and, of course, class diagrams.
The UML specification has two parts: the infrastructure and the superstructure.
The superstructure package contains models of all of the familiar UML diagrams. The elements that are employed in the superstructure are modeled in the infrastructure.