ObjectType - Object types (internal data type)
An object type is a type that defines the intensional aspect of a single or a set of individual objects, i.e. the properties an object type consists of and other common features of individual objects belonging to the object type. Object type definitions provide an intentional view to individual objects.
Since an object type usually refers to common features for a set of objects, object type definitions reflect a specific interest or a specific view to objects in the collection, i.e. the object type describes the properties and features of object instances as specific view to objects of the given type.
Besides properties, the object type definition may include other relevant features as rules, subtypes, classifications etc., which are listed below.
Object types support a number of features, which provide a detailed object type definition. Most object type features are optional. The only mandatory feature required for each object type is at least one property (which might be a generalization).
Most important features are data model relevant features as
- Properties
- Keys
- Extensions
Behavioral features are described as rules, which might be referenced as constraint, condition or action.
Several features describe causalities:
- Events
- Causalities
Some models consider generalization as feature relation for object types. Here, generalization is considered as property, which is a more specific feature relation.
Object type properties define the properties of an object type, i.e. characteristics and concept relations, which define the specific view to an object by creating an object instance as an image of reality. Properties are available for each object instance of the given object type and determine the object instance state [UDT]. Object type properties are usually defined as generalizations, characteristics, parts or associations, which provide more specific property definitions. Since properties defined in generalizations are inherited from the object type, those need not to be redefined in each specialization. Properties except generalizations might be redefined (specialized) in specialized object types.
Fixed characteristics are characteristics with an assigned value (women are persons with a fixed characteristic sex, which is female for all women). Fixed characteristics overload (specialize) characteristics with the same name defined in on of the generalizations of the object type.
When a specialized object type is defined by the value of a classifying characteristic, the fixed characteristic has to be defined as property of the object type. Fixed characteristics have to refer to classifying characteristics of one of the generalizations.
Keys are projections of properties (usually characteristics) from the defined object type. Keys are defined in order to identify object instances or in order to give more weight to a number of attributes.
In order to define a typed classification, i.e. a classification that may apply on objects of a given type, only, the classification may be defined as object type feature, rather than as terminology model feature, which provides more global classifications.
Extensions describe object instance collections. Actually, extensions are properties of a higher context (terminology module the object type is defined in) and should be defined as properties there.
It is a matter of viewpoint, whether extensions are considered as feature of the object type or as object type property in a higher context. On one side, it seems, that discussing the concept of an object type (e.g. invoice), extensions seem to belong to the definition of the object type. On the other hand, one could argue, that collections always require a specific context (e.g. an enterprise), for which the collection is of relevance.
For practical reasons, the terminology model also allows defining extensions as object type feature. Thus, one might define paid and unpaid invoices as feature of the object type invoice, as well as an object collection containing all invoices.
Within the context of an object type, local object types might be defined, which are known within the context of the object type, only. Features defined for the object type, only, should reference local object types. Object types referred to by other features of other object types must not be defined as local object types.
It makes a big difference, whether a property (e.g. address) or a local object type (address) has been defined. A local object type never carries data but requires at least one feature (property), referring to it.
This is an enhanced feature, which looks a bit technical. In fact, there are situations, where this becomes very useful in sense of terminology, e.g. when defining different object types for address instances in person and enterprise object types. Alternatively, one could, of course, create object types company address and person address in the terminology model, but this may conflict with the way, language is used in the subject area.
When an object type contains generalization properties, it will inherit all features from its generalizations. Features might be overloaded by redefining a feature with the same name and different meaning.
Properties, reactions, constraints and behavior might be redefined for specialized features. Redefining a feature means that the new feature replaces the feature defined with the same name for the generalization without changing the feature category.
Property specialization is a typical way in human language for expressing slight modifications for properties and behavior inspecialized object types. Most technical environments do, however, not yet support property specialization.