Frequently Asked Questions
on the Concept-Oriented Data Model (COM)
Alexandr Savinov
http://conceptoriented.org/
First started: 17.11.2004
Last updated: 28.12.2008
1 General Questions
1.1 What is COM?
1.2 What are the principles of COM?
1.3 What formalism COM is based on?
2 Duality Principle
2.1 What is the duality principle?
2.2 What is an identity?
2.3 What is an enetity?
2.4 What is the difference between identity modelling and entity modelling?
2.5 What is a concept?
2.6 What is a dimension?
2.7 What is a concept instance?
3 Inclusion Principle
3.1 What is the inclusion principle?
3.2 How inclusion structure is specified?
3.3 How inclusion relates to inheritance?
3.4 What is a complex identity?
3.5 What is a complex entity?
4 Order Principle
4.1 What is the order principle?
4.2 How order relation is specified?
4.3 What are primitive, bottom and top concepts/elements?
4.4 What is a concept-oriented schema?
4.5 What is projection and de-projection operations?
4.6 What is logical navigation?
5 Nested Partially Ordered Sets
5.1 What is a nested partially ordered set?
5.2 What are arity and cardinality?
5.3 What is a primitive dimension?
5.4 What is primitive representation?
COM stands for the concept-oriented model of data.
Wiki: Concept-oriented model
COM is based on the following three principles:
COM is based on the formalism of nested partially ordered sets.
Duality principle postulates that any element has two constituents:
one entity and one identity. Both identity and entity exist in
inseparable unity and can be viewed as two sides or flavours of one
thing.
Identity is one of two parts of any element according to the duality principle.
Identity is a phenomenon observable and manipulated directly in its
original form as it is without any indirection. Identity is a transient
representation of an element which exists only here and now. It cannot
be shared among other elements because it is stored and passed only
by-value.
The main role of identity is that it can represent
its entity, i.e., an identity can serve as a reference. (Therefore
identities and entities are frequently referred to as references and
objects.)
Another important role of Identities is that they can be interpreted as (data) values.
Entity is one of two parts of any element according to the duality principle.
Entity is regarded as a thing-in-itself which is radically unknowable reality not observable in its original form. Entity is viewed as a persistent state of the element. It is shared among all other elements because it is stored and passed only by-reference (using its identity).
Concept is a couple of two classes: one identity class and one entity class.
Concept is the main data modelling construct in COM which
generalizes conventional classes and is used where types are normally
used.
Wiki: Concept
Concept instance is an element which has the structure of its identity and entity specifed by this concept.
Inclusion principle postulates that any element has a super-element which is specified via inclusion relation.
Inclusion principle means that all elements exist within a hierarchy
where an element has one parent and many children. The parent is a
super-element and the children are sub-elements.
Incluison can be declared as part of a concept definition. For any
new concept we can specify its super-concept precisely as for a new
class we specify the base class in OOP.
Wiki: Super-concept
Inclusoin generalizes inheritance relation.
This means that under certain simplyfing conditions inclusion is
equivalent to inheritance. More specifically, if a child concept has
empty identity class then this means its instances cannot be
distinguished (they do not have their own identity). As a consequence,
only one child can be created which inherits (re-uses) the identity of
its parent super-element.
Complex identity is a sequence of simple identities, called identity
segments, where each previous segment has the type of the super-concept
in the concept inclusion hierarchy. Complex identity is analogous to
conventional postal addresses. Each next segment in a complex identity
belongs to (has a type of) a child concept.
Complex entity is a sequence of entities, called entity segments, represented by segments of a complex identity.
Any element has a number of greater elements which are specified via
order relation. All elements exist within a partially ordered set.
Order relation among elements is set by means of references using
the following assumption: a reference represents a greater element for
this element. In other words, a reference connects a lesser element
with a greater element.
Order relation for element types is specified by means of concepts
using the following assumption: a dimension (field) type of a concept
specified a greater concept. A concept has as many greater concepts as
it has dimensions (fields).
Wiki: Greater concept
Concept schema is a number of concepts participating in two structures simultaniously: hierarchical structure of inclusion relation and partially ordered structure of order relation.
Projection is applied to a set of elements and returns all elements
referenced by the specified dimension. Projection means moving up in
concept-oriented schema.
De-projection is applied to a set of elements and returns all
elements that reference them by the specified dimension. De-projection
means moving down in concept-oriented schema.
Wiki: Projection, De-projection
Logical navigation is use of projection and de-projection for
navigating through the model and retrieving related items. Logical
navigation path has a zig-zag form where projection leads upwards and
de-projection leads downwards.
Wiki: Logical access path
A nested partially ordered set is a partially ordered set with
elements that can be
themselves partially ordered sets. Thus any element of a nested
partially ordered set has a superset where it exists and simultaniously
it has many greater elements. Alternatively, a nested partially ordered
set can be viewed as a nested set with a partial order defined on them.
Additionally, a nested partially ordered set has to satisfy a condition
which is called syntactic constraint.
Arity (dimensionality) of an element is the number of its greanter elements. Cardinality is the number of its lesser elements.
Primitive dimension is a dimension which leads to a primitive element.
In primitive representation all elements are represented using only primitive dimensions.