company logo

Property - Property (internal data type)

A property is an item that defines the extensional aspect of a general object collection (e.g. everything that costs money or persons that have been in a movie at a certain time, but also the names of a person). Potentially, properties define object collections even though, in many cases, those collections consist of exactly one value (e.g. person's birth date). A property is related to a value (property instance), which is part of an object instance reflecting an individual object. Properties may refer to single or complex values as well as to collections of object instances. A property instance is a value reflecting the property for an individual object, the value of the property in a related object instance [UDT].

A property may define a collection of object instances of a given type and with a specific role (e.g. children of a person). By means of property definitions, knowledge about groups of objects can be expressed in different ways. Thus, property definitions mainly express the extensional aspect of a general object in a specific context (object type). The intensional aspect is expressed by means of an object type the property refers to, which is the object type for all object instances in the collection.

Properties can be defined as features of an object type, and thus also as features of a terminology model. Properties always are defined as features of an object type, i.e. property instances are part of an upper object instance, which represents the state of an individual object.

Considering tables in the relational model [ERM] or extents in the object model [ODMG], which are properties in the sense of the definition above, it seems that properties may exist also independent properties. However, the context for those properties often exists as individual object, but it might not be reflected as such in data modeling. In general, a property is a feature, which describes a general object collection in a higher context (object type, terminology model).

A property refers to an object type (feature relation) of the elements, which might be stored in the property instance. In order to be consistent, types referred to by the properties must be elementary (integer, text etc.) or have to be defined within the terminology model, too (object type, classification).

Type relation

An important feature of the property is the type relation. Each property refers to a type, which might be an elementary type as text or number, an object type defined in the terminology model or a classification (enumerations).

Keys

In order to support object rating, unique constraints or for any other conceptual reason, the property may refer to a number of keys defined for the object type referred to by the property. Typically, keys are used in connection with collection properties.

Derivation rule

Properties may present the state of an object instance, but also refer to derived information. In order to define derived properties, an operation rule might be referenced, which defines, how the derived information has to be evaluated. It does not make sense storing e.g. the age of a person, but rather the birth date. Since age might be a property of conceptual interest, age could be defined as derived property calculated from the current date and the birth date.

Derived properties might be even more complex and may define derived views to objects or even create derived object instances or collections.

Notes:

Practically, derivation rules might be defined directly instead of referring to a named rule. Only, when the rule becomes very complex or is rather common, an explicitly defined rule will be referenced, instead.

Set relations

Typically, set relations for object type properties are described as supersets by referring to other properties. Properties referenced as superset might refer to properties defined in the higher context (parent item), to properties of the same or a related instance (local supersets).

In principle, set relations might become more complex and may describe complex set hierarchies. This is, however, not very typical for object type properties.