1. A computer-implemented method for normalizing a data model of one or more entity classes, each entity class including a name and one or more attributes, the computer-implemented method comprising: determining a semantic meaning of each of the names and the one or more attributes of each entity class; determining that the name of a first entity class is semantically similar to the name of a second entity class based on a semantic distance between the semantic meaning of the name of the first entity class and the semantic meaning of the name of the second entity class; determining a substantial similarity between the first entity class and the second entity class based on a comparison of the semantic meaning of the one or more attributes of the first entity class to the semantic meaning of the one or more attributes of the second entity class; and collapsing the first entity class into the second entity class based on the substantial similarity between the first entity class and the second entity class and based on a statistics system determining that the second entity class is used more often than the first entity class.