When talking about the UML, it is important to distinguish between the meta-model and the notation. The meta-model consists of definitions and descriptions of the various components and their possible relationships. For example, the meta-model describes exactly what is meant by an "association." As PHP developers who are well versed in object-oriented technology, we know intuitively what we mean when we talk about an association between two classes. However, since the UML is a general-purpose modeling language, the specifications have to contain a definition for "associations" that applies to all areas where the UML can be used. Moreover, the definition has to be rigorous enough for the whole interdependent system to make sense. In other words, it needs to be rigorous in a mathematically logical sense.
Although the UML would not be possible without the meta-model, it is the notation in which we as practitioners are really interested. The UML...