In GJXDM and NIEM, the composition of data entities and the relationships between them have been defined precisely and flexibly using two kinds of components: types and properties. An understanding of the concept of types and properties is the baseline for developing an understanding of the models. Types and properties are maintained as distinct entities.
A type is a structure which carries values associated with a real-world entity. Types represent real-world entities, such as persons or vehicles and can also be defined as an independently insatiable collection of properties. When an object is created, it is described as being instantiated.
A property associates specific characteristics with an instance of a type. Every property in the data dictionary is given a definition which outlines how the property is to be used, and what it means.
There are three components to a property:
1. The property name is a unique label applied to the property (property names are unique within the data dictionary).
2. The subject type is the type to which the property applies. For example, with the property “Name”, if a person has a name, then the subject type of the property “Name” would be “PersonType”.
3. The object type is the type of the value of the property. For example, if a name is a string, then the object type of the property “Name” would be “StringType”.