Data classes provide the specification of a logical data type. This goes beyond the type used to store the data value and includes a specification of the values that are found in this logical type. For example, a credit card number is typically stored as a string. However, it has a well-defined pattern of four groups of four digits. The data class allows the capture of the specification of a credit card number type that can be used by discovery engines to find more information out about the data values within a resource.