1. A computer-implemented method, comprising: receiving a plurality of data items of one or more types, wherein each data item is associated with one or more attributes, and wherein each attribute is associated with an attribute name and an attribute value; calculating a key for each attribute of each data item; determining whether the key is located in a dictionary; adding the key to the dictionary based on the determination along with an attribute description; calculating a number of occurrences of each key in the dictionary in relation to a number of the plurality of data items; classifying each attribute as a mandatory type, an expected type, or an optional type based on the calculated number of occurrences; and creating a template for each type.