Frequently Asked Questions
on the Concept-Oriented Paradigm

Alexandr Savinov
http://conceptoriented.org/

First started: 09.11.2004
Last updated: 24.01.2005

1 Objects in Space

1.1 Why separation of objects from space is so important?
1.2 Do we always need to separate space from objects in it?
1.3 Are spaces and objects fundamentally different?
1.4 What are other equivalent terms for the concept?
1.5 What are other equivalent terms for the object?
1.6 What is a concept?
1.7 Are concepts objects?
1.8 What structure space is supposed to have?
1.9 What structure are objects supposed to have?

2 Existence

2.1 Where objects exist?
2.2 How objects exist?
2.3 How objects die?
2.4 How objects exhibit themselves?

3 Representation and Access

3.1 Why concept (space) is so important in CO paradigm?
3.2 What are main functions of space?
3.3 What are main functions of objects?
3.4 What the CO paradigm is aimed at?
3.5 What makes representation and access (RA) so specific?
3.6 What is a space border?
3.7 How representation and access (RA) functions are activated?
3.8 What does for an object mean to exist?
3.9 What is an object reference?
3.10 How space hierarchy is interpreted?

4 Related Work

4.1 Do we really need a new name for this approach?
4.2 What is the main different from the object-oriented paradigm?
4.3 Why the concept-oriented paradigm is actual?

1 Objects in Space

1.1 Why separation of objects from space is so important?

Because these are two significantly different types of entities with very different functions. Mathematically they are dual like point and line. Concepts are normally not used as objects, i.e., we do not call their functions (business methods). Instead, they implement an environment, which acts implicitly. In particular, concepts are responsible for representation, access and interaction functionality.

1.2 Do we always need to separate space from objects in it?

In the ideal case all entities should have the same type and have equal rights so having two types of entities (space and objects) is a compromise. We simply do not have an acceptable theory where these two types of entities would be united (there exists some attempts but they are very limited). And this is why in almost all cases space and objects are represented and described separately. However, sometimes we fill that the role of being space or object is relative. For example, in programming containers and environments are implemented by normal objects.

1.3 Are spaces and objects fundamentally different?

We do not know. It depends on the theory we use. In relativity theory it is assumed that space is precisely objects that live in it. It is very deep assumption, which means that a set of objects makes space where they live while space geometry describes a set of objects in it. In computer science spaces and objects are also not completely separable because all spaces are implemented by normal objects. Since currently there is no theory which could explain the phenomenon of spaces and objects we simply assume that such a separation is very important. In other words, it is important to select the role of space and the role object.

1.4 What are other equivalent terms for the concept?

They all are equivalent and the difference is only in the application domain. Normally we denote concepts by curly brackets {} with the definition of its elements inside. Thus curly brackets have a semantics of logical OR.

1.5 What are other equivalent terms for the object?

These terms are all equivalent and the difference is only in the application domain. Normally we denote objects by angle brackets <> with the definition of its components inside. Thus angle brackets have a semantics of logical AND.

1.6 What is a concept?

Concept is a special term used in the CO paradigm to denote space. In the concept-oriented programming it generalizes classes while in the concept-oriented data model it generalizes tables. In the concept-oriented design it is intended to describe general purpose containers and environments.

Formally concepts are interpreted as disjunctions of elements as opposed to objects, which are interpreted as conjunctions.

1.7 Are concepts objects?

Yes and no. Yes because we want concepts to be objects. No because their purpose is too different to make them equivalent. The concept-oriented paradigm builds its analysis on the assumption that concepts are special objects that play a crucial role in any system. Therefore in most concrete disciplines we treat concepts as special elements with special mechanisms and methods.

1.8 What structure space is supposed to have?

Multidimensional and hierarchical. Each internal subspace is included simultaneously into several other spaces and includes itself several spaces.

1.9 What structure are objects supposed to have?

Object's existence is distributed over the space, i.e., any object has its parts in different subspaces. Thus each object spans the whole space and has different form on each level in each subspace. In real life this means that a physical object can be considered at different levels of abstraction or space organization, e.g., it may have one form at the molecular level and another form at the atomic level, but it is one and the same object.

2 Existence

2.1 Where objects exist?

Objects exist in space. They cannot exist in isolation or in vacuum. Nothing exists in vacuum and can be considered in isolation.

2.1 How objects exist?

There are the following interpretations and explanations of existence:

In fact these two definitions are equivalent if we suppose that creation of an object reference means that it is stored somewhere, for example, by the space where it exists. That is, it is the space that always knows where its objects are or if the space forgets about its object then it does not exist anymore.

Thus the object existence is equivalent to its reference existence somewhere in the space. In other words, if somebody remembers an object then it exists. Since objects take different forms and are normally distributed in space (and time as a part of space) it is always difficult to precisely specify what an object is and if it really exists. For example, storing photographs of died people makes them actually alive.

2.2 How objects die?

They are forgotten. No reference - no object.

2.3 How objects exhibit themselves?

Objects are never known by themselves. They have different forms in different parts of the space. For example, what is a database record? Is it its primary key value or a position on disk? Both. In addition the record has many more identifies and forms within the database.

3 Representation and Access

3.1 Why concept (space) is so important in CO paradigm?

Because it is precisely the space that play a primary role in functioning any complex system according to the concept-oriented paradigm. In other words, objects may be quite simple while the whole system will exhibit rather complex behavior because of its complex space structure.

Another argument is that space exists before objects and in order to describe a system we have to describe its space structure first and only then place their objects. Notice that the form objects have and their functionality depends on the space they are currently in.

Notice the difference with the OO paradigm where objects are the central part while CO approach postulates that space is at least as important as objects themselves and for large systems space is even more important.

3.2 What are main functions of space?

The main functions of space are representation and access (RA). The consequence is that the complexity of any system in great extent is explained by its representation and access functionality. In other words, these are not business methods that make a system complex. Rather it is representation and access functions, which are normally executed implicitly.

3.3 What are main functions of objects?

The main functions of objects are business methods (BM). The difference from RA (representation and access) functions is that business methods are specified explicitly indicated as the target of a call. RA functions in contrast are activated implicitly as a result of access request to an object.

3.4 What the CO paradigm is aimed at?

The concept-oriented paradigm aims at studying representation and access issues.

3.5 What makes representation and access (RA) so specific?

These are functions specific to spaces. Each environment and container have relatively little (public) business methods (BM) while their primary concern is representation and access. Thus RA functionality concepts in the CO paradigm is opposed to BM functionality of objects in the OO approach.

3.6 What is a space border?

It is a view on the space itself, i.e., frequently we associate the space with its border. The main property of border is its ability to be associated with some coordinate or point and this is why we can treat space border as an object. For the whole space it is difficult to say where it is living. Space border is also a point where space functions are concentrated and executed. We say that space border divides external and internal parts of the space so that in order for an agent to change its position in space it has to intersect the border where its functions are automatically activated. 

3.7 How representation and access (RA) functions are activated?

RA functionality is concentrated on space border. All elements of the system are interacting by accessing each other given some representation. The interactions pass through a number of space borders before they reach a destination. This is moment when RA functions are activated and executed. The space checks its borders and it is its one of the main tasks. Normally each space is interested in representation and access issues while it processing passing requests. Thus functioning of any system is reduced to processing requests passing through space borders. This border functionality is opposed to business methods (BM) in the object-oriented paradigm. 

3.8 What does for an object mean to exist?

In order to exist for an object there are two ways:

  1. to have a representative by means of which it is known outside its space
  2. to have a position in the whole space

Normally both methods are used simultaneously but there are special cases where only one of them is used. Formally only the reference is required for an object to exist while positioning in the space provides non-trivial semantics, which can be used to distinguish it from other objects by their contents. For example, frequently if an object changes its position in space we think of it as a different object even if the reference is the same.

3.9 What is an object reference?

Reference is a part of an object, which represents it outside of the space where the original object exist. There may be more than one reference intended to represent it in different spaces (scopes or contexts). Actually reference is a normal object, which exists however in the space from where the original target object is going to be accessed. References as a means of representation and access play central role in the concept-oriented paradigm and especially in the concept-oriented programming.

3.10 How space hierarchy is interpreted?

Lower (physical) levels are responsible for implementation of RA functionality used in higher (logical) levels where this functions are used to call BM functionality. Thus each level's role is relative: it uses lower levels to represent and access BM of its own objects and implements RA functions for higher levels. Actually this hierarchy spreads down till the lowest levels of elementary physical interactions.

The hierarchy can be similarly interpreted if each level implements relations for higher levels and on the other hand itself relies on relations implemented by lower levels. Here we use the principle 'relations as objects at lower level'.

4 Related Work

4.1 Do we really need a new name for this approach?

Describing a system from the perspective of its space structure and RA functionality requires developing new methods. The existing approaches use different basic assumption on what a system is and how does it is functioning and hence use completely different methods of system development. For concept-oriented system we need concept-oriented methods. Since one and the same set of fundamental assumptions is used in very different directions of computer science such as CO programming, CO data model and CO design it does make sense to introduce new name for this approach.

4.2 What is the main difference from the object-oriented paradigm?

The object-oriented paradigm is aimed at studying objects while the concept-oriented paradigm generalizes this approach by considering also spaces, which are claimed to be at least as impotent as objects. More concretely, the concept-oriented paradigm is aimed at studying representation and access functionality implemented by spaces rather than object functionality (business methods) implemented by objects. The space functions are at least as important as object functions and for complex systems they even account for most of the system complexity. In other words, in system development it is more important what happens on space borders rather than in objects themselves.

4.3 Why the concept-oriented paradigm is actual?

Currently in the period of globalization no one system can be considered in isolation. This results in the situation where any element can interact with any other. The arising problems can hardly be solved by traditional methods, in particular, based on considering isolated object functions. The primary role in such a global system is played by its space structure responsible for numerous functions, e.g., representation and access as well as accounting for most of the system complexity.

 

Back to the Concept-Oriented Portal