Концевой Сергей Андреевич
Киевский политехнический институт им. Игоря Сикорского
кафедра технологии неорганических веществ и общей химической технологии

Представлена методика быстрого обучения разработке экспертных систем на языке Дракон. Автоматическая генерация кода для диаграмм на Драконе иллюстрируется на примере языков Python и JavaScript. Предложенная методика рассматривается как способ углубленного обучения студентов через создание ими экспертных систем в изучаемой области.


Kontsevoy Sergey
Igor Sikorsky Kyiv Polytechnic Institute
Faculty of Chemical Technology, Associate Professor

The method of quick learning the designing of expert systems in the Drakon language is presented. Automatic generation of code from diagrams on the Drakon is illustrated by the example of the Python and JavaScript languages. The proposed methodology is considered a way of in-depth learning for students through the creation of expert systems on the topic under study.

Keywords: designing, Drakon, expert systems, in-depth learning, Python, quick learning

Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Концевой С.А. Quick start in the development of expert systems // Современные научные исследования и инновации. 2018. № 6 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2018/06/87078 (дата обращения: 20.06.2024).

The experience of teaching for more than 10 years has convinced me that the skill to ask questions on the learning topic is practically absent of most students. An absence of questions from students indicates that there is not a deep study of any subject (chemistry, technology, foreign language …). The founder of the Khan Academy [1] very accurately expresses the negative consequences of not deep studying the topic, referring to the need for in-depth study as the only way to actually learn something.

In this regard, the approach in the study of almost any subject looks promising through the creation of expert systems and models in the field under study. It is quite obvious that when developing an expert system, the developer must understand this subject, and in the development process the level of understanding of this area inevitably increases due to interaction with the already operating part of the system. The previous article [2] is devoted to mathematical modeling, a simple technique for developing expert systems in the visual programming language Drakon [3] is considered in this work.

Quick start with the Drakon – 1 step

It is known that the first steps in any new business are the most difficult. The designing of expert systems is quite complex, although in fact, the development of such systems is based on the ability of any person to ask questions and answer them (although not always correctly). Teaching this subject for more than 5 years in the KPI, I used other approaches to the creation of expert systems (CLIPS, decision tables), but the solution based on the Drakon seems to be the best for beginners because of the rapid entry into the topic based on just two steps.

The first step is based on using the Drakon Editor [4] to solve a simple task (displaying a string on the monitor on condition its length is permissible), an example of which is shown on the program’s website, and the code is generated for the Python language (fig. 1). After that, the code is run offline (in IDLE for example) or online (repl.it). At this stage, the whole cycle of work with the Drakon is mastered: drawing a block of the circuit, automatically checking it, and generating the code in the chosen programming language, executing the code in the appropriate environment.

Figure 1. The example from the Drakon Editor website

Figure 2. The generated code on Python 3.6

Figure 3. Running the code on the site repl.it

To understand the features of working with Drakon, my students are given the task of generating code for the same task for JavaScript language, and to launch the code in the browser. At the same time, the block diagram is not altered, but only 2 functions in the diagram blocks are changed: the output of data to the monitor (from print to alert) and the function of the string’s length (from len(string) to string.length).

Figure 4. Running the JavaScript code in the browser

The automatic generation of program code without changing the visual scheme for almost any procedural languages makes the use of Drakon so universal. Of course, within of solving such a simple task, one can not evaluate all the possibilities of the Drakon, but it allows one to quickly learn the procedure for using the Drakon with different programming languages.

The expert system of a Trip by bus – 2 step

In the book of the Drakon language author’s [5], there is a trip algorithm already on 21 page that is not associated with a specific programming language (fig. 5). It is interesting that this example already gives all the necessary information about the creation of any small expert system. Adaptation of this algorithm for Python (fig. 6, 7) requires only two input and output operators and allows estimating the difference between the generated code (see the figure) and the source diagram (see the figure) in sens of plainness for a reader of an algorithm.

Figure 5. The algorithm of a trip by bus

Figure 6.  The adaptation of the algorithm, part 1

Figure 7. The adaptation of the algorithm, part 2

The difference between the second and the first diagrams is the appearance of a structure for the organization of the cycle, which in combination with the conditional operator (presents in both diagrams) is a necessary condition for the development of an expert system.

Figure 8. The generated code on Python 2.7

Figure 9. Running the code in IDLE

Running the generated program in Python allows one to evaluate the correctness of the algorithm from the perspective of an expert, which is any user of public transport.

It is important that for the large expert systems the approach remains the same, but the final project will consist of several diagrams and the functions generated from them that interact with each other.


In this article is presented an approach to rapid learning in the development of expert systems based on the visual Drakon language in the programming environment of the Drakon Editor, as well as the launch of automatically generated code in the Python language for interactive evaluation of the developed algorithm. This approach consists of only two steps (developed diagrams on the Drakon) and allows students to design their own expert systems for the studied subjects. The ability to adapt the diagrams on the Drakon to a variety of programming languages without changing the visual part (actually the algorithm) makes it possible to widely use this approach for various real-world problems, for example in web programming using JavaScript, Java, and PHP languages.

Essentially, computer’s training by creating an expert system is very different from human learning, since an incomplete description of the problem or its inadequate solution almost immediately (quite often) becomes apparent in the testing of the program even for a not very competent developer. Of course, for the final evaluation of the developed system, an expert will be needed: a teacher at the training stage or the customer after study.

  1. Sal Khan. Let’s teach for mastery.  https://youtu.be/-MTRxRO5SRA
  2. Kontsevoy S., Kontsevoy A. Functional calculation of process flows’ parameters in spreadsheets // Modern scientific researches and innovations. 2018. № 5 [Electronic journal]. URL: http://web.snauka.ru/en/issues/2018/05/86532
  3. DRAKON. URL: https://en.wikipedia.org/wiki/DRAKON
  4. DRAKON editor. URL: http://drakon-editor.sourceforge.net/
  5. Паронджанов В. Д. Язык ДРАКОН. Краткое описание. — М., 2009. — 124 с.

Все статьи автора «Концевой Сергей Андреевич»

© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться:
  • Регистрация