📜 ⬆️ ⬇️

Information systems with conceptual models. Part one

Introducing modern information systems, large companies expect to make decisions faster, discover hidden reserves and opportunities for business, analyze accumulated experience and build predictions based on the identified patterns. However, the real return on information systems is often much lower, and the implementation timeframe and costs are higher than expected. There can be a great many reasons, including those associated with ineffective management, human factors, and outdated infrastructure.

Significant shortcomings have the information systems themselves. In this article, I propose to talk not about traditional - three-layer - AIS, but about systems with four-layer architecture, where the new fourth layer - the presentation layer - implements the conceptual model of the subject area. To update the model with changes in the subject area is not required to program. Moreover, both the actualization of the model and the applied tasks are solved by means of semantically invariant for all subject areas of operations on the essence of concepts.

As a result, it is possible to improve the computational, technological and operational characteristics of information systems with conceptual models of the domain. But more on that later.
')

As a rule, information systems are built on a three-layer architecture, which includes a client layer, a logic layer and a database layer. The main feature of such systems is the physical separation of programs that are responsible for storing data (database layer) from programs that process data (logic layer) and display data (client layer).

Our company INSISTEMS uses the LANCAD information system, in which there are four layers: the client layer, the presentation layer, the logic layer and the database layer, where the new layer — the presentation layer — implements the conceptual model of the subject area. The conceptual model serves for a high-level description of the subject area, close to the understanding of users and developers of information systems.

In contrast to other well-known approaches to information modeling, an association is considered as a common concept, and not as a named type of relationship, which defines a certain role or relation in the model. The latter allows to increase the level of abstraction of the model and to develop an information system for the functioning of which requires a small number of general algorithms with a small computational complexity. Moreover, the algorithms themselves do not depend on the subject area, since they are formulated in extremely general operations on concepts.

About the concept of the concept


Usually, a concept is defined as a form (type) of thought, which is the result of combining entities of objective or subjective reality according to a certain set of common and, in the aggregate, distinctive features for them.

For direct work with thoughts, adequate and effective technical means have not yet been invented, so let us examine how the "thoughts" of users are processed in modern information systems.

It is believed that concepts are formed (defined) during abstraction.

Abstract thinking is one of the basic processes of human mental activity, when we are mentally isolating under the influence of some perspectives and we consider individual properties, sides or states of entities in the monitored subject area as independent objects. In this case, four types of concepts are formed: single, simple, concrete and abstract.

Single concepts. In the formation of single concepts, abstraction manifests itself in the ability of the mental selection in the subject domain of unique entities and the assignment of names to them. In other words, the formation of a single concept is the replacement of an entity by a sign identical to an entity in a certain sense. Here we recall the Frege triangle, which is known to everyone, which graphically shows the connection between a sign, a value (essence) and a meaning.

Examples of single concepts are such concepts as “Green”, “Sour”, “Loud”, “Solid”, “Bright”, “Heavy”, “Long”, “One”, “Many”, etc.

As a rule, single concepts are formed to fix a particular state of the sense organs or elementary abstract representations.

Single concepts are also called value concepts, designed to denote some elementary entity. In information systems, single concepts are encoded as single values ​​of simple data types. For example, "-1", "3.5", "C", "16:31", "2018-04-10", "ABC".

Simple concepts. In the formation of simple concepts, abstraction appears as some conscious ignorance, allowing one to focus on one common feature of a multitude of entities and to ignore their other sides.

Simple concepts are formed by combining entities similar in a certain sense. Simple concepts are assigned a unique name, conceivable as a single concept, and an area of ​​permissible manifestations (values ​​belonging to entities) is defined, conceived as a set of individual concepts.

An example of a simple concept is such a concept as “Color”, which combines the essences of the single concepts “Red”, “Green”, etc., or “Integer”, consisting of representable integers.

In information systems, simple concepts correspond to simple data types or data types derived from them by restricting a set of values. For example, “Signed integer”, “Symbol”, “Number from floating point”, “Time”, “Date”, “String”, etc.

Specific concepts. Specific concepts are formed on the basis of the union of entities with the same sets of features, allowing to distinguish entities belonging to a particular concept from entities that do not belong to the concept. The signs distinguished in this case are thought of as simple concepts, and the names of specific concepts as individual concepts.

In information systems, specific concepts are represented by tables, the columns of which correspond to the concepts-attributes, and the lines contain the meanings of these signs for entities belonging to the concept.

For example, a specific concept “Ball” may contain such concepts-attributes as “Color”, “Diameter”, “Material”, and the rows of the table will define the essence of the concept “Ball”: (“Red”, “10”, “Rubber”) , ("Green", "15", "Fabric"), etc. If some essence of the domain has the values ​​of attributes belonging to any row of such a table, then this entity is recognized as “Ball”.

In programming languages, specific concepts are expressed by an array of structures with fields of simple data types, and in databases, a table whose columns are the same simple types of melon.

Abstract concepts. In the formation of abstract concepts, more complex forms of abstraction are used, based on the establishment between the concepts of relations of independence, differentiation and integration of features, where any concepts, including abstract ones, can already act as features (Fig. 1).

Fig. 1. Relationships of signs of concepts: a) independence; b) differentiation; c) integration

For the formation of abstract concepts, two abstractions are used: generalization and association. Generalization expresses the similarity of concepts, manifested in the differentiation of signs, and the association reveals the composition of the concept, manifested in the integration of signs.

It is believed that the formation of generalizations is the responsibility of the left hemisphere of the brain, and the formation of associations is the right.

Association. In association, the generation of a new concept occurs by combining the attributes of the associated concepts. In other words, the concept-association includes several other concepts as its constituent parts.

For example, the term “Application” may consist of such concepts as “User” (the author of the application), “Date” (the date of creation of the application), “Subject” (description of the application essence), etc.

But not all combinations of entities of associated concepts can constitute the real essence of the concept-association. For this reason, the association is given in tabular form, where the columns correspond to the associated concepts, and each row is a description of one essence of the association concept.

For example, there may be no bids submitted by a specific user on a particular day. For this reason, as for concrete concepts, an association is defined in a tabular form, where the columns are associated concepts, and each row is the corresponding entities of associated concepts that make up each essence of the association concept.

A particular case of an association is the well-known abstraction of aggregation. During aggregation, it is assumed that the concepts-signs of an aggregated concept can take any valid values. In this case, to set up an aggregate, it is not required to form a table with a list of entities and their signs, since any combination of concepts-attributes is a valid aggregate. An example of a concept-aggregate is the concept of “Complex number”, which is an aggregation of two concepts of “Real number”. In practice, abstract concepts-aggregates are very rare.

It is seen that the association is an abstraction underlying the formation of specific concepts through the association of concepts-signs.

Generalization In generalization, a new concept is generated by combining the entities of several similar concepts, when a new concept retains all or part of the common features of the original concepts and ignores their other features.

An example of a concept-generalization is the concept of "Fruit", which is the result of combining the essence of such concepts as "Apple", "Pear", "Peach", "Apricot", etc. At the same time, those signs that are common to all generalized concepts, for example, “Edibility”, “Presence of seeds”, as well as other signs (perhaps not all), isolated from fruits in accordance with the formulation of the problem to be solved are fixed.

A special case of generalization is the abstraction of typification. When typing it is assumed that all typable concepts have the same characteristics. Examples of concept-types are all simple data types in programming languages. Therefore, they are called types.

It should be noted that generalization is an abstraction underlying the formation of simple concepts by typing concepts-values.

The concept of "Concept". It should be noted that any concept is itself a concept with a set of features common to all concepts.

In the LANCAD information system, any concept including the concept “Concept” contains the following features (Fig. 2): “_Entity” (unique numerical identifier of the entity), “_Title” (name of the entity), “_Icon” (entity icon), “ _Model "(additional attributes of the entity for the presentation layer)," _Flags "(additional attributes of the entity for the logic and data layer).

For each “Concept” entity, in addition to general, specific features are set: “Abstract” (abstraction of the concept-entity, one of the following values: concept-value, concept-sign, concept-association, concept-generalization) and “Aspect” (aspect of the concept- entities will be discussed further).

Fig. 2. Signs of the concept "Concept"

Variations of meaning


If you choose any word from the explanatory dictionary and offer two people to clarify and expand its definition, then almost always the interlocutors will come to irreconcilable contradictions. The same problem occurs in information systems. The same concept for different groups of users has a different meaning and, as a result of this, should have a different description.

For this reason, a multidimensional description of concepts is provided for in the LANCAD information system when the “Aspect” attribute is assigned to each concept. This allows the definition of concepts with the same name, but in different aspects.

In fig. 3 shows a fragment of the table of the concept-feature “Aspect”.

Fig. 3. The essence of the concept-feature "Aspect"

For example, the concept of “Project” in its general (empty) aspect characterizes a project in the organizational sense: a start date, an end date, a budget, attracted resources, and so on are specified. And the “Pro” aspect of the concept “Project” characterizes a project in a construction sense: a construction object, a type of construction, design stages, a list of sections and marks of sets of drawings, etc. are defined. It is obvious that between two projects, defined in different aspects, there is something in common, but there are also significant differences, sometimes incompatible. For example, in a general aspect the project always has a specific completion date, and in the construction aspect the project is relevant as long as the construction object exists.

Structure of reality


In contrast to the well-known formalisms used to describe the interrelation of concepts (conceptual schemes, conceptual graphs, ontologies, discourse logic, semantic networks, class diagrams, etc.), where the concepts specify a variety of relationships of different nature and meaning, in the LANCAD information system another formalism was used - the conceptual structure, which is defined as a set of concepts with two types of mappings, the only purpose of which is to show ways of forming concepts, ways of abstracting them.

The conceptual structure is designed to reflect the results of the conceptual analysis of the subject area and expresses the mapping of some concepts into others. The abstractions used in this process are considered as mental operations that are necessary and sufficient for mental isolation and transformation into separate notions of those representations that are accumulated relative to the described subject domain.

An example of the display of the conceptual structure is shown in Fig. 4: the list of concepts and their entities are shown in the left pane of the form as a tree, and the names of the concepts, the method of abstraction and aspects are shown on the left in the form of a list.

Fig. 4. Conceptual structure

For example, the concept of “Principal” is a generalization of the concepts of “User” and “Group”, and the concept of “User” is an association of the concepts of “Password”, “Name”, “Patronymic”, “Last Name”, “Telephone”, etc. (Fig. 5).

Fig. 5. Attributes of the concept "User"

In turn, such concepts as “Name”, “Patronymic”, “Last Name”, “Telephone”, “Mail” are defined as string notions-values ​​of the corresponding length with the restriction of the range of values ​​in the form of regular expressions.

As signs of abstract concepts can be including other abstract concepts, then for such concepts instead of the word “attribute” the word “attribute” is used.

Is Isaac Asimov right?


The four-layer information system should work with the domain model and adequately describe the state and behavior of the latter.

In his novel “The End of Eternity”, Isaac Asimov suggested that the Reality is such that the Calculator used to simulate the assumed Changes of Reality is comparable in complexity with Reality itself (Fig. 6). Are real models so complex? Or do we just “do not know how to cook them”? Let's try to answer these questions.

Fig. 6. Calculator to simulate reality. A source

In the conceptual structure of the subject area considered earlier, the names of concepts, the ways of their abstraction, and the list of attribute concepts on which concepts are defined are set. However, how simple concepts are defined or what sets of values ​​of concepts-attributes determine one or another essence of concrete and abstract concepts remains unclear.

Obviously, for a complete description of the subject area, it is necessary to expand the conceptual structure with the description of the entities belonging to each concept. As a result of such an extension, we will obtain a conceptual model of the subject area, on which we will solve the applied problems.

In the database layer, single concepts (concepts-values) are represented by built-in data types. In the information system LANCAD, 38 concepts-values ​​are used (Fig. 7).

Fig. 7. Meaning concepts

In turn, simple concepts (concepts-attributes) are realized in the form of tables containing an enumeration of entities-values ​​belonging to such concepts. An example of the representation of the concept-feature "Aspect" is given earlier in fig. 3, and its mapping in the conceptual structure in fig. four.

Concrete concepts are represented by tables whose columns correspond to concept values. In fig. 8 shows a fragment of a table to represent a specific concept of “Color”, where the specific attribute of the concept is represented by the column “Color”.

Fig. 8. The specific concept of "Color"

An association concept is represented as a table linking the essence of the associated concepts to the essence of the association concept, where, unlike specific concepts, columns can correspond to abstract concepts and contain unique identifiers of their entities (values ​​from the _Entity field).

An example of the concept table of association “Concept” is shown in fig. 9.

Fig. 9. Concept-association "Concept"

The representation of an abstract concept-generalization is carried out using a database query that collects records from tables of generalized concepts with a given list of common fields.

An example of a virtual table of the concept-generalization “Principal” is shown in fig. 10, where entities with initial digits of a unique identifier equal to 68 are entities of the “Group” concept, and entities with digits 67 are entities of the “User” concept. The common attributes for such entities are the concepts of “Name” and “Password”.

Fig. 10. Concept-generalization “Principal”

Thus, in the database layer, the conceptual model of the domain is represented by listing the essence of the concepts in physical and virtual tables. The physical table is directly stored in memory, and the virtual table is formed dynamically as a result of executing some database query.

This immediately implies the conclusion that the complexity of the domain model is commensurate with the complexity of the subject domain itself. If we "conceal" some concepts or their essence, then they will not exist for the information system. And to identify them in any way is not possible.

Can a man by a drop of water guess the existence of the ocean? Some say yes, maybe. But then a person must use his intellect, which we do not reduce to the rational thinking that we are trying to automate. In such cases, nothing remains but to supplement the conceptual model with new concepts and entities that are the result of the intellectual activity of the users of the information system.

Tempora mutantur et nos mutamur in illis


In the title is a famous Latin aphorism, which states that "times change, and we change with them." Whatever conceptual model we have created, at the time of its creation, it is already outdated. How to ensure the updating of the model following changes in the subject area?

Obviously, the actualization of any conceptual model is reducible to three operations on concepts, namely, the creation of the essence of the concept, the change of the essence of the concept, and the removal of the essence of the concept. Since each concept is the essence of the concept "Concept", then within the framework of these operations it is possible to create, modify and delete concepts as such.

Creating an entity.The operation of creating the essence of a concept is carried out by inserting into the table a concept of a new row with fields equal to the values ​​of the attributes of the created entity. To do this, the database uses the INSERT SQL query.

In turn, the operation of creating a concept-entity arises when the conceptual model of the domain is complicated and consists in defining the name of a new concept, specifying the method of its abstraction and enumeration of concepts-attributes. Depending on the type of concept in the database, a table is created either for concepts-signs and concepts-associations, or presentation (eng. View) for concepts-generalizations. To create a concept in a database layer, it is necessary to create an appropriate stored procedure that ensures the integrity of the database after such an operation and, indirectly, the integrity of the conceptual model.

Deleting an entity.The operation of deleting a concept entity is performed by executing a SQL query deleting a row from the concept table of the DELETE type. Since there can be links from a friend of a table to a deleted entity of concepts, not every delete operation is possible without deleting entities associated with it. To ensure such a relationship when creating tables of concepts, foreign keys are defined (for foreign keys) for all abstract fields of this table (Fig. 11). As a result, a highly related database is obtained, and the foreign key mechanism ensures the integrity of the conceptual model.

The operation of deleting a concept-entity arises in the event of a significant change in the domain model and consists in changing the description of all concepts, the definitions of which include the concept being deleted. To ensure the integrity of the conceptual model, the removal of concepts is carried out by an appropriate stored procedure.

Fig. 11. Foreign keys of the tables of concepts

Change of the entity. The operation of changing an entity is equivalent to a SQL query of the UPDATE type, changing the fields of one or several rows of the table of the corresponding concept. Table-specific foreign keys ensure the integrity of the conceptual model when performing change operations.

The change of concepts-entities arises, if necessary, to fill the concept with new objective content. Concept change operations are performed by the corresponding stored procedure, which modifies the concept table and sets foreign keys for the inserted abstract columns.

User interface The operations of adding and deleting entities of the concept are displayed in the context menu of the application (Fig. 12).

Fig. 12. Operations for creating and deleting entities The

operation for changing an entity is performed by directly changing the value of a simple concept or by selecting from the drop-down list one of the allowed values ​​of abstract concepts (Fig. 13). In this case, the essence of abstract concepts are displayed in the user interface in the form of the name and the corresponding icon (attributes _Title and _Icon).

Fig. 13. Operations for changing entities

So, in the first part of the article, we considered the definition of conceptual high-level models. And in the second part I will tell you how in our company “INSISTEMS” a fully functional information system is implemented, based on conceptual modeling of subject areas. To be continued .

In the meantime, I suggest to get acquainted with our vacancies

Source: https://habr.com/ru/post/358852/


All Articles