Active knowledge base prototype on the basis of computational models

Автор: Artiukhov Alexey Andreevich

Журнал: Проблемы информатики @problem-info

Рубрика: Прикладные информационные технологии

Статья в выпуске: 4 (53), 2021 года.

Бесплатный доступ

The ever-growing volume of knowledge, for example, in the programming field, requires a person to increase the speed of knowledge processing, to speed up knowledge mastering, and to use it more efficiently. One possible solution is to automate the process of knowledge application. But in many spheres of activity today humanity is accumulating knowledge in an informal way by using linguistic systems. Mastering the reading, understanding and correct use of the knowledge presented in this form, requires a long learning curve. Thus, knowledge accumulated in this form cannot be applied directly and automatically. Moreover, if the person who has mastered it docs not use it very often, over time it will begin to be forgotten and subsequently can be completely lost. In this work, the application of knowledge is considered as creation of a computer program that utilizes it, and the automation of the knowledge application is understood as the automatic synthesis of such programs. To solve mentioned problems efficiently the system must not only store the knowledge itself, but also save the functional connections between individual concepts. In addition, it is necessary that the system, according to the task specification, is able to automatically construct a software application that solves it. The system that allows one to automatically apply knowledge is called the Active Knowledge Base. This system is based on the theory of structural synthesis of programs. Knowledge in such a system is represented in the form of computational models, i.e. bipartite graphs in which the vertices in one set correspond to operations, and in the other - to variables. The edges of the graph determine whether a variable is the result of an operation or its input. Variables in such models correspond to some values of the described subject area, and operations arc associated with certain program modules at the execution stage. The input and output parameters of program modules arc associated with the variables of the computational model. One of the key steps in constructing a software application is building a computation plan based on the specification of the problem. A computation plan is a partially ordered set of operations, where the order relation is consistent with information dependencies and is defined as „to сотриte F2, vou need to compute FR. Within this prototype, knowledge in the form of computational models is stored in a special Sqlitc database, and the system itself is divided into 3 parts. The first part is a subsystem for storing computational models. It adds new computational models to the database and reads them from it. The second part is a subsystem for constructing computation plans, which is engaged in building computation plans according to the specification of the problem. The third part is an execution subsystem. The computation plan is not a complete program that could be executed by the user’s OS. To execute it, one needs a system that interprets the plan. In this work it’s done by the execution subsystem. Computational models are described in special files, where each file is a description of one entity, for example, a variable of a computational model or an operation. To construct a computation plan, a problem specification should be described first. It consists of the name of the computational model, a set of input variables, and a set of output variables. When the specification is completed, the file describing it is fed to the subsystem for constructing computation plans via command line arguments. Having received it, the system launches the construction algorithm, its result is a file with a computation plan. The general operating principle of the execution subsystem is similar to that of the interpreter. Operations are executed sequentially, as the variables on which they depend are ready. The execution subsystem supports the initialization of the input variables of the computation plan with the initial values passed to it; for this, it needs to create a special file with initialization parameters and send it to the execution subsystem via command line. The process of operations execution continues until one of the conditions is met: all operations from the computation plan have already been calculated, or all output variables of the computation plan have been calculated. If in the course of calculations all operations from the calculation plan have been executed, and not all of the output variables have been calculated, then the calculations are completed with a corresponding warning message sent to the user. Otherwise, when the variables have already been calculated, and there are still operations in the computation plan, then the plan execution ends normally, the output variables are saved in accordance with their types, and the user is informed about the result of the computations through the standard output stream.

Еще

Active knowledge, program synthesis, active knowledge base, structural synthesis of programs, automatic programs construction, knowledge base, knowledge storage, computational models

Короткий адрес: https://sciup.org/143178552

IDR: 143178552

Статья научная