Моделирование системы управления активацией продукционных правил с использованием автоматного программирования

Автор: Дармахеева Татьяна Анатольевна, Хаптахаева Наталья Баясхалановна

Журнал: Вестник Бурятского государственного университета. Математика, информатика @vestnik-bsu-maths

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

Статья в выпуске: 3, 2018 года.

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

В статье приведены результаты моделирования системы управления активацией систем продукций. Управление активацией систем продукций осуществляется за счет использования знаний о системе продукций в виде онтологии с активной семантикой. Поведение системы, реализующей управление активацией систем продукций на основе онтологии с активной семантикой, является сложным. Для моделирования такой системы применяется теория автоматов и технологии автоматного программирования. В результате чего получена автоматная модель системы управления активацией систем продукций и выполнена её программная реализация. Посредством полученного программного обеспечения проведено тестирование методов естественно-языковой обработки текста и извлечения знаний о терминах и отношениях между ними из словарных статей терминологического словаря. Методы представлены в виде систем продукций.

Еще

Теория автоматов, онтология с активной семантикой, моделирование систем со сложным поведением, управление активацией систем продукций, система, основанная на знаниях, база знаний, система продукций

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

IDR: 148308911   |   DOI: 10.18101/2304-5728-2018-3-40-59

Текст научной статьи Моделирование системы управления активацией продукционных правил с использованием автоматного программирования

Продукционные системы, основанные на правилах, являются важной технологией при создании информационных систем, называемых интеллектуальными системами с базами правил (или с базами знаний). Представление решения задачи в виде множества правил является более естественным способом по сравнению с алгоритмом. Управление вычислительными процессами в таких системах реализует процессор (модуль активации систем продукций), который может быть основан на метаправилах, специальном управляющем языке, либо на онтологии с активной семантикой как это представлено в данной статье [1, 2].

В статье рассматривается база знаний, содержащая продукционные правила, сгруппированные в системы продукций. Каждая отдельная система продукций реализует либо метод естественно-языковой обработки текста, либо метод извлечения знаний о терминах и отношениях между ними. Для управления активацией этих систем продукций в [1] разработан способ управления, суть которого заключается в обходе сети знаков-фреймов, образующих онтологию системы продукций. В результате движения по сети знаков-фреймов происходит вызов внутренних и внешних присоединенных процедур знаков-фреймов, что обеспечивает автоматическое решение следующих задач: выбор системы продукций для активации, построение рабочей памяти, соответствующей активной системе продукций, запуск машины логического вывода на активной системе продукций [1]. Знак-фрейм – это концептуальный объект одной из категорий: «Понятие», «Свойство», «Действие», «Величина», «Событие» и «Состояние» [2]. Внутренние присоединенные процедуры предназначены для чтения XML-документов, содержащих описание терминов онтологии, и отвечают за обход сети знаков-фреймов. К ним относятся процедуры осуществляющие разбор концептуальных объектов категорий «Понятие», «Действие», «Свойство», «Величина», «Состояние» и «Событие»: ReadConcept(), ReadAction(), ReadProperty(), ReadQuantity(), ReadState() и ReadEvent() соответственно. В процессе выполнения внутренних процедур запускаются внешние присоединенные процедуры, реализующие основные действия механизма управления системами продукций. Например, процедура Build_relations(), которая строит таблицы рабочей памяти в соответствии со структурой предикатов, где имя таблицы соответствует имени предиката, а поля — аргументам. Заполнение таблиц фактами, необходимыми для решения задачи, осуществляется посредством выполнения процедур лексического анализа текста Lex_analysis(), загрузки словарей Load_BF(), извлечения множество пар <основа+окончание> из лексем Extract_morphemes() и другими. Запуск машины логического вывода на полученных фактах рабочей памяти и заданной системе продукций выполняет внешняя присоединённая процедура Play_InferenceEngine(). Библиотека присоединенных процедуры модифицируется и пополняется в зависимости от решаемой задачи. Вызов внутренних и внешних присоединенных процедур выполняется том порядке, в котором данные процедуры встречаются в знаке-фрейме. Содержимое слотов знаков-фреймов зависит от реализуемого системой продукций метода. Последовательность чтения знаков-фреймов определяется онтологией системы продукций, которая для каждой системы продукций является уникальной.

В рассматриваемой статье исследуется вопрос разработки автоматной модели системы управления активацией систем продукций, реализующей описанный выше способ управления на основе онтологии с активной семантикой.

1.    Моделирование систем со сложным поведением на основе автоматного программирования

Система управления активацией систем продукций (далее - СУ АСП) состоит из следующих компонент: интерфейс программы, подсистема чтения онтологии системы продукций, подсистема обработки знаков-фреймов, библиотека присоединенных процедур знаков-фреймов. Поведение данной системы описывается следующим образом:

  • 1.    Через интерфейс программы пользователем вводится словарная статья и выбирается метод естественно-языковой обработки текста или метод извлечения знаний.

  • 2.    На вход подсистемы обработки онтологии подается онтология системы продукций, соответствующая выбранному методу. В процессе чтения онтологии происходит обход сети знаков-фреймов. Обход всегда начинается со знака-фрейма категории «Понятия», являющимся центральным в сети. Если требуется активация другой системы продукций, то чтение текущей онтологии SP i приостанавливается и осуществляется переход на чтение онтологии системы продукций SP k . После окончания чтения онтологии SP k , происходит возврат к чтению онтологии SP j .

  • 3.    В каждом узле сети знаков-фреймов из подсистемы обработки знаков-фреймов вызываются соответствующие механизмы. Каждая категория знаков-фреймов имеет различную структуру и поэтому обрабатывает -ся соответствующим образом. Например, если знак-фрейм относится к категории «Понятие», то необходимо вызвать конкретный механизм для его обработки. И так для каждой из перечисленных выше категорий концептуальных объектов.

  • 4.    Если в слоте знака-фрейма прописан вызов присоединенной процедуры, то происходит ее вызов. После выполнения присоединенной процедуры обработка знака-фрейма продолжается дальше, но уже после точки вызова процедуры. Результатом вызова процедуры может быть:

  •    переход на обработку другого знака-фрейма;

  •    активация другой системы продукций, что означает выполнение п.2;

  •    построение структуры рабочей памяти;

  •    заполнение таблиц рабочей памяти в результате лексического анализа текста или извлечения морфем;

  •    заполнение таблиц рабочей памяти в результате работы машины логического вывода.

Исходя из приведенного описания поведения СУ АСП, следует, что данная система обладает сложным поведением. Это подтверждается зависимостью выходных данных не только от значений входных параметров, но и от результатов вычислительных процессов внутри системы.

Для моделирования систем со сложным поведением в [3] предлагается автоматное программирование, которое и будет использоваться в настоящей работе. Суть данного программирования [3] заключается в представлении сущностей со сложным поведением в виде автоматизированных объектов управления, которые состоят из управляемой и управляющей частей. Управляемая часть состоит из объекта управления, который отвечает за выполнение действий, выбранных для выполнения управляющей частью, и, возможно, за формирование некоторых компонентов входных воздействий для управляющей части - обратных связей. Управляющая часть отвечает за логику поведения - выбор выполняемых действий, зависящий от текущего состояния и входных воздействий, а также за переход в новое состояние. Управляющая часть представляет собой управляющий автомат или систему взаимодействующих автоматов. Формально автоматизированный объект управления - это пара вида [3]:

AOU =< A , O > ,                 (1)

где A — управляющий автомат, O — объект управления.

Управляющий автомат — это пятерка вида:

A =< X , Y , Z , у о , ф , 5 > ,                     (2)

где X = X E х X O — конечное множество входных воздействий, причем каждое входное воздействие x состоит из компоненты xE , порождаемой внешней средой, и компоненты xO , порождаемой объектом управления;

Y — конечное множество управляющих состояний;

Z — конечное множество выходных воздействий;

  • у о Е Y — начальное состояние;

Ф = ф ‘х ф ‘‘ — функция выходов (выходных воздействий), состоящая, в общем случае, из двух компонент: функции выходных воздействий в состояниях ф ‘: Y -^ Z и функции выходных воздействий на переходах ф ’’: X х Y -^ Z ;

  • 8 :    X х Y ^ Y — функция переходов.

Объект управления - это тройка вида:

O =< V , f , f C > ,                   (3)

где V — потенциально бесконечное множество вычислительных состояний (или значений);

  • fq: V-^XO — функция, сопоставляющая входное воздействие вычислительному состоянию;

  • fc: Zх V-^ V — функция, изменяющая вычислительное состояние в зависимости от выходного воздействия.

  • 2. Автоматная модель СУ АСП

Функции f q и f c являются математическими эквивалентами набора запросов и набора команд соответственно.

Таким образом, используя автоматную модель СУ АСП можно описать как множество взаимодействующих между собой автоматизированных объектов, которое имеет вид:

Control _ Activation _ SP = { AOU 1, AOU 2, AOU 3, AOU 4

AOU 5, AOU 6, AOU 7}.

Автоматизированный объект управления AOU 1 , отвечает за чтение онтологии системы продукций и работу системы в целом имеет вид:

AOU i =< ReadOntlogy , <  GUI , ControlOntology >> ,        (5)

где ReadOntology — автомат, реализующий алгоритм обхода сети знаков-фреймов, образующих онтологию заданной пользователем системы продукций и работу интерфейса программы;

GUI — объект управления, отвечающий за интерфейс программы;

ControlOntology — объект управления, содержащий механизмы, требуемые для чтения онтологии системы продукций .

Управляющий автомат ReadOntology — это пятерка вида:

ReadOntology =< ont _ X , ont _ Y , ont _ Z , ont _ y 0 , ont _ ф , ont _ 8 >  , (6) где ont _ X = X E x XO ={p 1. e 1 }x{ Gui . x 1 }={ p 1. e b Gui . x 1 } — множество входных воздействий: p 1. e 1 - компонент, порождаемый поставщиком событий p 1 и означающий событие «Система продукций выбрана пользователем»; Gui . x 1 — компонент, порождаемый объектом управления Gui и отвечающий на вопрос: «Найден ли центральный знак-фрейм онтологии системы продукций?».

ont _ Y = { ont _ y 0, ont _ y 1 , ont _ y 2, ont _ y 3} — конечное множество управляющих состояний:

ont _ y 0 - «Получение входных данных»;

ont _ y 1 - «Чтение онтологии СП»;

ont _ y 2 - «Вызов автомата ReadConcept »;

ont_y 3 - «Активация системы продукций завершена».

ont _ Z = { Gui . z 1 , Gui . z 2, Ontology . z 1 } — конечное множество выходных воздействий:

Gui . z 1 — «Загрузить интерфейс»;

Gui . z 2 — «Определить категорию знака-фрейма»;

Ontology . z 1 — «Прочитать онтологии системы продукций».

ont _ y 0 6 ont _ Y — начальное состояние.

ont_ ф = ont ^' ^ont ^ " — функция выходов (выходных воздействий): ont_ ф ': ont_Y^ ont_Z — функция выходных воздействий в состояниях:

ont_ ф ": ont_X^ont_Y^ont_Z — функция выходных воздействий на переходах, для данного автомата не существует.

ont _ ф ={( у о ^ Gui . z 1 ), (y 1 ^( Gui . z 2 , Ontology . z 1 )), (y2 ^ ReadConcept ))}, где Gui . z 1 , Gui . z 2 , Ontology . z 1 из ont _Z, ReadConcept – управляющий автомат, реализующий алгоритм разбора знаков-фреймов категории «Понятие».

ont _ 8 : ont _ X x ont _ Y ^ ont _ Y — функция переходов, которая представлена ниже в таблице 1.

Таблица 1.

___________ Функция переходов ont _ 8 автомата ReadO ntology

ont _ X

ont _ Y

ont _ X × ont _ Y ont _ Y

1

p 1.e 1 , Gui . x 1

ont _ y 0

ont _ y 1

2

p 1.e 1 ,! Gui . x 1

ont _ y 0

ont _ y 3

3

p 2. e 1

ont _ y 1

ont _ y 2

4

p 2. e 2

ont _ y 1

ont _ y 3

5

p 2. e 3

ont _ y 2

ont _ y 3

Поставщик событий p 2 описывает события, возникающие в процессе чтения онтологии системы продукций. Данные события передаются автоматам ReadOntology и ReadConcept . Ниже, в таблице 2 представлено описание событий из p 2.

Таблица 2.

События поставщика p 2

Событие

Описание

Комментарий

e 1

Онтология инициализирована

Событие генерируется в случае, если для указанной пользователем системы продукций найден центральный знак-фрейм

e 2

Онтология не инициализирована

Событие генерируется в случае, если для указанной пользователем системы продукций не найден центральный знак фрейм

e 3

Процесс активации завершен

Событие генерируется, когда обход сети знаков-фреймов завершен

e 4

Следующий такт автомата

Это событие генерируется при переходе автомата из одного состояния в другое

Объект управления GUI — это тройка вида:

GUI =< gui _ V , gui _ fq , gui _ fc > ,                     (7)

Для данного объекта gui _ V = { gui _ v 1, gui _ v 2}: gui _ v 1 — «Загружен интерфейс»; gui _ v 2 — «Получены входные данные».

gui _ f q : gui _ V X O — функция, сопоставляющая входное воздействие вычислительному состоянию:

gui _ f q 1 : gui _ v 1→ «Начало работы системы»;

gui_ f q2 : gui _ v 2^ «Данные введены».

guif : Y x gui_ V -^ gui_ V — функция, изменяющая вычислительное состояние в зависимости от выходного воздействия:

gui_ f c 1 : Gui . z 1x gui_v 1 ^ gui_v2.

Объект управления ControlOntology — это тройка вида:

ControlOntology =< ont _ V , ont _ fq , ont _ fc > ,             (8)

где ont_V={ont_v 1, ont_v2}: ont_v 1 — «Онтология заданной системы продукций прочитана»; ont_v2 — «Заданная система продукций активирова- на».

ontJ q i : ont _ v 1^ «Центральный знак-фрейм заданной системы продукций найден»;

ont_fc 1 : «Завершение работы системы»х o nt _ v 1 ^ o nt _ v2.

Автоматизированный объект управления, отвечающий за обработку знаков-фреймов категории «Понятие»:

AOU 2 =< ReadConcept , ControlConcept >,              (9)

ReadConcept — автомат, реализующий алгоритм разбора знаков-фреймов категории «Понятие»;

ControlConcept — объект управления, хранящий механизмы, стандартные — для обработки всех знаков-фреймов и специальные — для обработки знаков-фреймов категории «Понятие» .

Управляющий автомат ReadConcept — это пятерка вида:

ReadConcept =< Con _ X , Con _ Y , Con _ Z , Con _ y о, Con _ ф , Con _ 5 > ,

где Con _ X = {(p 2. e 4, ControlConcept . x 1 ), (p 2. e 4, ControlConcept . x 2), (p 2. e 4, ControlConcept . x 3), (p 2. e 4, ControlConcept . x 4), (p 2. e 4, ControlConcept . x 5), (p 2. e 4, ControlConcept . x 6), (p 2. e 4, ControlConcept . x 7)} — множество входных воздействий:

p 2 .e 4 — компонент, порождаемый поставщиком событий p 2 (см. выше в таблице 1);

ControlConcept.x 1 — истинно, если рассмотренный слот знака-фрейма имеет вложенный слот;

ControlConcept . x 2 — истинно, если на текущем уровне знака-фрейма есть не обработанный слот;

ControlConcept . x 3 — истинно, если рассмотренный слот знака-фрейма является вложенным слотом;

ControlConcept . x 4 — истинно, если текущий слот необходимо обработать;

ControlConcept . x 5 — истинно, если вызванный автомат завершил работу;

ControlConcept . x 6 — возвращает код категории знака-фрейма от 1 до 6 (1 — Понятие, 2 — Действие и т.д.);

ControlConcept . x 7 — истинно, если в текущем слоте знака-фрейма прописан вызов присоединенной процедуры.

Con _ Y = { Con _ y 0 , Con _ y 1 , Con _ y 2 , Con _ y 3 , Con _ y 4 , Con _ y 5 , Con _ y 6 , Con _ y 7 , Con _ y 8 , Con _ y 9 , Con _ y 10 , Con _ y 11 , Con _ y 12 } — конечное множество управляющих состояний:

Con _ y 0 — «Инициализация знака-фрейма категории «Понятие»»;

Con _ y 1 — «Переход к вложенному слоту»;

Con _ y 2 — «Переход к следующему слоту»;

Con _ y 3 — «Возврат к родительскому слоту»;

Con _ y 4 — «Обработка текущего слота»;

Con _ y 5 — «Завершение работы автомата»;

Con _ y 6 — «Вызов присоединенной процедуры»;

Con _ y 7 — «Вызов автомата ReadConcept »;

Con _ y 8 — «Вызов автомата ReadAction »;

Con _ y 9 — «Вызов автомата ReadProperty »;

Con _ y 10 — «Вызов автомата ReadState »;

Con _ y 11 — «Завершение работы присоединенной процедуры».

Con _ Z = { ControlConcept . z 1 , ControlConcept . z 2 , ControlConcept . z 3 , Con-trolConcept . z 4 , ControlConcept . z 5 , ControlConcept . z 6 , ControlConcept . z 7 } — конечное множество выходных воздействий:

ControlConcept . z 1 — «Обработать вложенный слот»;

ControlConcept . z 2 — «Обработать следующий слот»;

ControlConcept . z 3 — «Вернуться к родительскому слоту»;

ControlConcept . z 4 — «Выполнить присоединенную процедуру»;

ControlConcept . z 5 — «Передать управление вызвавшему автомату»;

ControlConcept . z 6 — «Завершить работу присоединенной процедуры»;

ControlConcept . z 7 — «Обработка знака-фрейма «Понятие»»;

ControlConcept . z 8 — «Предобработка знака-фрейма «Понятие»».

Con _ y 0 Con _ Y — начальное состояние.

Con _ ϕ = Con _ ϕ ′× Con _ ϕ ′′ — функция выходов (выходных воздействий):

Con _ ϕ ′: Con _ Y Con _ Z — функция выходных воздействий в состояниях:

Con _ ϕ 1 : Con _ y 0 ControlConcept . z 8 ,

Con _ ϕ 2 : Con _ y 1 ControlConcept . z 1 ,

Con _ ϕ 3 : Con _ y 2 ControlConcept . z 2 ,

Con _ ϕ 4 : Con _ y 3 ControlConcept . z 3 ,

Con _ ϕ 5 : Con _ y 4 ControlConcept . z 7 ,

Con _ ϕ 6 : Con _ y 5 ControlConcept . z 5 ,

Con _ ϕ 7 : Con _ y 6 ControlConcept . z 4 ,

Con _ ϕ 8 : Con _ y 7 ReadConcept ,

Con _ ф '9: Con_y 8^ ReadAction , Con _ ф 10: Con _ y 9 ^ ReadProperty , Con _ ф 'ц: Con _ y 10^ ReadState , Con _ ф '12: Con _ y n^ ControlConcept . z 6.

Con _ ф '': Con_X x Con_Y -^ Con_Z — функция выходных воздействий на переходах:

Con _ ф ''ь ( p 2. e 4, ControlConcept . z 8)^ Con _ y 1 .

Con _ ф ={( Con _ y 0^ ControlConcept . z 8,

(p 2. e 4, ControlConcept . z 8)^ Con _ y 1 ),

( Con _ y i ^ ControlConcept . z 1,( p 2. e 4, ControlConcept . z 8)^ Con _ y 1 ),

( Con _ y 2^ ControlConcept . z 2,(p 2. e 4, ControlConcept . z 8)^ Con _ y 1 ),

( Con _ y 3^ ControlConcept . z 3, (p 2. e 4, ControlConcept . z 8)^ Con _ y 1 ), ( Con _ y 4^ ControlConcept . z 7, (p 2. e 4, ControlConcept . z 8)^ Con _ y 1 ), ( Con _ y 5^ ControlConcept . z 5, (p 2. e 4, ControlConcept . z 8)^ Con _ y 1 ), ( Con _ y 6 ^ ControlConcept . z 4, (p 2. e 4, ControlConcept . z 8)^ Con _ y 1 ), ( Con _ y 7^ ReadConcept ,(p 2. e 4, ControlConcept. z 8)^ Con _ y 1 ), ( Con _ y 8^ ReadAction , (p 2. e 4, ControlConcept . z 8)^ Con _ y 1 ), ( Con _ y 9^ ReadProperty , (p 2. e 4, ControlConcept . z 8)^ Con _ y 1 ), ( Con _ y 10^ ReadState , (p 2. e 4, ControlConcept.z 8)^ Con _ y 1 ), ( Con _ y ц^ ControlConcept . z 6, (p 2. e 4, ControlConcept . z 8)^ y 1 ), где ReadAction , ReadProperty , ReadState — вызываемые автоматы, отвечающие за обработку знаков-фреймов категорий «Действие», «Свойство» и «Состояние» соответственно.

Con _ 8 : Con _ X x Con _ Y ^ Con _ Y — функция переходов для автомата

ReadConcept , представлена ниже в таблице 3.

Таблица 3. Функция переходов Con _ 8 автомата ReadConcept

Con _ X

Con _ Y

Con _ X x Con _ Y ^ Con Y

1

p 2 .e 4

Con _ y о

Con _ y 1

2

p 2 .e 4[! ControlConcept.x 4&&! ControlConcept.x 1 &&ControlConcept.x 2]

Con _ y 1

Con _y2

3

p 2 .e 4[! ControlConcept.x 4&& ControlConcept.x 1 ]

Con _ y 2

Con _ y 1

4

p 2 .e 4[! ControlConcept.x 4&&! ControlConcept.x 1 &&ControlConcept.x 2 ]

Con _ y 2

Con _ y 2

5

p 2 .e 4[! ControlConcept.x 4&& ControlConcept.x 1 ]

Con _ y 1

Con _ y 1

6

p 2 .e 4[! ControlConcept.x 4&&! ControlConcept.x 1 && ! ControlConcept.x 2 ]

Con _ y 1

Con _ y 3

7

p 2 .e 4[! ControlConcept.x 4&&! ControlConcept.x 1 &&

! ControlConcept.x 2 ]

Con _ y 2

Con _ y 3

8

p 2 .e 4[ ControlConcept.x 2&& ControlConcept.x 3]

Con _ y 3

Con _ y 2

9

p 2 .e 4[! ControlConcept.x 2&& ControlConcept.x 3]

Con _ y 3

Con _ y 3

1 0

p 2 .e 4[! ControlConcept.x 3]

Con _ y 3

Con _ y 5

1

1

p 2 .e 4

Con _ y 5

Con _ y 1

1 2

p 2 .e 4[ ControlConcept.x 4]

Con_y 1

Con _ y 4

1

3

p 2 .e 4[ ControlConcept.x i &&! ControlConcept.x 7]

Con _ y 4

Con _ y 1

1

4

p 2 .e 4[ ControlConcept.x 4]

Con _ y 2

Con _ y 4

1

5

p 2 .e 4[! ControlConcept.x 1 && ControlConcept.x 2 && ! ControlConcept.x 7]

Con _ y 4

Con _ y 2

1 6

p 2 .e 4[! ControlConcept.x i &&! ControlConcept.x 2 && ! ControlConcept.x 7]

Con _ y 4

Con _ y з

1 7

p 2 .e 4[ ControlConcept.x 7]

Con _ y 4

Con _ y 6

1 8

p 2 .e 4[ ControlConcept.x 6=1]

Con _ y 6

Con _ y 7

1 9

p 2 .e 4[ ControlConcept.x 6=2]

Con _ y 6

Con _ y 8

2

0

p 2 .e 4[ ControlConcept.x 6=3]

Con _ y 6

Con _ y 9

2

1

p 2 .e 4[ ControlConcept.x 6=4]

Con _ y 6

Con _ y 10

2

2

p 2 .e 4[ ControlConcept.x 6<1 || ControlConcept.x 6>4]

Con _ y 6

Con _ y 11

2

3

p 2 .e 4[! ControlConcept.x 1 && ControlConcept.x 2]

Con _ y 1

1

Con _ y 2

2

4

p 2 .e 4[! ControlConcept.x 1 &&! ControlConcept.x 2 ]

Con _ y 1

1

Con _ y з

2

5

p 2 .e 4[ ControlConcept.x 1 ]

Con _ y 1

1

Con _ y 1

Объект управления ControlConcept — это тройка вида:

ControlConcept =< Con _ V , Con _ fq , Con _ fc > , (11) где Con _ V — это множество всех возможных конфигураций слотов знака -фрейма категории «Понятие». Для обработки слотов знаков-фреймов используются множество команд Con_fq и множество запросов Con_fc :

Conf = { ControlConcept.z 1 , ControlConcept.z 2 , ControlConcept.z3, ControlConcept .z 4, ControlConcept.z 5, ControlConcept.z 6, ControlConcept.z 7, ControlConcept .z 8}, подробное описание данных команд приведено выше в множестве Con _ Y из (10).

ConJ"c = { ControlConcept.x 1 , ControlConcept.x 2 , ControlConcept.x3, ControlConcept .x 4, ControlConcept . x 5, ControlConcept . x 6}, подробное описание данных запросов приведено выше в множестве Con _ X из (10).

Автоматизированные объекты управления AOU 3, AOU 4, AOU 5, AOU 6 и AOU 7, отвечающие за обработку знаков-фреймов категорий «Свойство», «Величина», «Действие», «Событие» и «Состояние» соответственно, организованы в соответствии с их назначением.

4.    Реализация автоматной модели

Для программной реализации описанной выше автоматной модели СУ АСП используется технология автоматного программирования UniMod [3]. Согласно концепции автоматного программирования схема связей автоматов — это тройка вида:

D =< P, A, O >,(12)

P = {Pi\i = 1,.., к},(13)

где P — множество источников событий, к — количество источников событий. Множество источников событий рассматриваемой системы имеет вид:

P = {Р? Р 2}’

Р1 = {e1},(15)

Р 2 = {e 2-e 3-e 4-e 5} p 1 — поставщик событий, который генерирует событие e 1; p2 — поставщик событий, возникающих в процессе чтения онтологии системы продукций. Описание этих событий приведено выше в таблице 2. A — множество диаграмм состояний автоматов:

A = { A i \ i = 1,.., g },                             (17)

A i —диаграмма состояний конкретного автомата;

  • g — количество диаграмм.

Ниже на рисунке 1 представлена построенная в среде UniMod схема связей автоматов.

Рис. 1. Схема связей автоматов

Как видно из рисунка 1, схема связей автоматов содержит два поставщика событий p 1 и p 2, расположенных слева. В центре рисунка расположены семь автоматов. Между собой автоматы соединены стрелками, которые указывают на вызываемые автоматы. Справа на рисунке расположены объекты управления. Связь между автоматом и объектом управления показана стрелками.

В работе множество диаграмм состояний автоматов имеет вид: A = { ReadOntology,ReadConcept,ReadAction,ReadProperty, ReadQuantity,ReadState , ReadEvent},

ReadOntology, ReadConcept, ReadAction, ReadProperty, ReadQuantity, ReadState и ReadEvent автоматы математическое описание которых пред ставлено выше.

O — множество объектов управления:

O = {oi\i = 1,.., r},(19)

где r — количество объектов управления. Каждый элемент o i содержит множество соответствующих ему входных и выходных воздействий, обозначаемых через множества X и Z соответственно:

oi = {X, Z},(20)

X = {xi \i = 1,..,l},(21)

Z = {zi \i = 1,..,m}.(22)

В данной системе множество объектов управления имеет вид:

O = {Gui,ControlOntology,ControlConcept, ControlProperty,ControlAction, ControlQuantity,(23)

ControlState,ControlEvent,AttachProc },

Gui , ControlOntology , ControlConcept , ControlProperty, ControlAction, ControlQuantity, ControlState, AttachProc — объекты управления элементов из (4).

Автомат ReadОntology

Автомат ReadOntology — инициализирующий автомат, запускает приложение и задает начальные данные посредством взаимодействия пользователя с графическим интерфейсом. Автоматы ReadConcept, ReadAction , ReadProperty , ReadQuantity , ReadStates , ReadEvents реализуют логику работы с соответствующими объектами онтологии системы продукций.

Согласно рисунку 1 автомат ReadOntology взаимодействует с двумя объектами управления: Gui и Con . Также автомат ReadOntology осуществляет вызов автомата ReadConcept , задачей которого является разбор центрального знака-фрейма «Понятие». Граф переходов автомата ReadOntology представлен ниже на рисунке 2.

Чтение онтологии СП

Вызов автомата ReadConcept

include /ReadConcept

e2

Рис. 2. Граф переходов автомата ReadOntology

Граф переходов автомата ReadOntology описывается четверкой вида:

ReadOntology =< Ont _ S, Ont _ E, Ont _ X, Ont _ Z > ,     (24)

где Ont _ S — множество возможных состояний автомата ReadCO из (6).

Ont E =< e , e , e >,                      (25)

элементы из множества Ont _ E описаны выше в таблице 2.

Ont_X — множество входных воздействий из (6), Ont_Z — множество выходных воздействий из (6).

Автомат ReadConcept

Активация системы продукций начинается с чтения центрального знака-фрейма, который имеет структуру концептуального объекта «Понятие». Из рисунка 1 видно, что автомат ReadConcept взаимодействует с одним объектом управления ControlConcept , производит вызов автоматов ReadProperty , ReadAction , ReadState , а также вызывает рекурсивно самого себя. Ниже на рисунке 3 представлен граф переходов данного автомата.

Рис. 3. Граф переходов автомата ReadConcept

Граф переходов автомата ReadConcept — это четверка вида:

ReadConcept =< Con _ S , Con _ E , Con _ X , Con _ Z > ,      (26)

где Con _ S — множество возможных состояний автомата ReadConcept из (10).

Con _ E =< e >,                   (27)

элементы из множества Con_E описаны выше в таблице 2.

где Con _ X — множество входных воздействий из (10), Con_Z — множество выходных воздействий из (10).

Остальные автоматы ReadProperty, ReadAction, ReadStates, ReadQuantity и ReadEvents реализованы аналогично автомату ReadConcept с учетом особенностей структуры соответствующих концептуальных объектов.

5.    Апробация

Полученное программное обеспечение (далее модуль активации систем продукций), реализующее СУ АСП, позволило провести серии вычислительных экспериментов на системах продукций из заданной базы знаний и словарных статьях из терминологического словаря1.

В статье приведено краткое описание вычислительного эксперимента, проводимого на словарной статье: «ДЕНЬГИ — одно из важнейших понятий любого рыночного хозяйства: любые общепринятые средства платежа, которые могут обмениваться на товары и услуги и использоваться для оплаты долгов. Деньги — всеобщий эквивалент, особый товар, форма выражения стоимости всех других товаров. Деньги выполняют функции средства обмена, платежей, измерения стоимости, накопления богатства, мировых денег. Несмотря на то, что деньги возникли много тысяч лет назад, до сих пор в мире идут дискуссии о том, что такое деньги и почему они используются в хозяйстве» [5].

Выполнение морфологического анализа означает активацию системы продукций «Извлечение динамической морфологической информации». На рисунке 4 продемонстрирована структура базы данных aps, то есть рабочей памяти, сформированной для заданной системы продукций в автоматическом режиме.

Рис. 4. Структура рабочей памяти «Извлечение динамической морфологической информации»

Согласно рисунку 4 рабочая память содержит всего 17 таблиц, из которых 13 словарей — dict_basis_adjective, dict_basis_noun и т.д., и 4 таблицы paggrwhole, phiercatеgory, phierindex, ppropcharacter. После запуска машины логического вывода в таблицу PPropCharacter записывается морфологическая информация. Ниже представлен фрагмент содержимого данной таблицы.

id

Textunit

Character

1

МНОГО

Наречие

4

и

Союз

8

деньги

Сущ.

57

деньги

148

107

деньги

Мя.ч.

44

деньги

Им.п.

351

любого

Муж.

364

такое

Ср.

Рис. 5. Фрагмент таблицы, содержащей динамическую морфологическую информацию о лексемах

Извлечение дефиниций из словарной статьи выполняется путем активации системы продукций «Извлечение дефиниции термина». На рисунке 6 представлена структура рабочей памяти aps, сформированной для заданной системы продукций в автоматическом режиме.

Рис. 6. Структура рабочей памяти для системы продукций «Извлечение дефиниции термина»

Рабочая память содержит всего 3 таблицы — paggrwhole, phiercatеgory и phierindex. После запуска машины логического вывода в таблицу phier-category добавлена запись о дефиниции термина «Деньги» (рисунок 7).

Таблица phiercategory

id

Text unit

Category

83

Деньги — одно из важнейших понятий любого рыночного хозяйства: любые общепринятые средства платежа, которые могут обмениваться на товары и услуги и использоваться для оплаты долгов.

дефиниция

84

Деньги

термин

Рис. 7. Фрагмент таблицы, содержащей текстовые единицы и их категории

В ходе проведенных вычислительных экспериментов были получены данные, которые соответствуют ожидаемым результатам тестирования, что подтверждает корректность предложенной автоматной модели СУ АСП.

Заключение

Описанная в статье автоматная модель системы управления активацией систем продукций была разработана в инструментальной среде UniMod, поддерживающей технологию автоматного программирования. Использование UniMod значительно снизило трудоемкость разработки системы как на этапе проектирования, валидации и отладки модели, так и на этапе ее программной реализации [3]. В дальнейшем в случае необходимости в модель и программу без особых сложностей могут быть внесены изменения.

Полученный в результате модуль управления активацией систем продукций является одним компонентов системы, основанной на правилах и предназначенной для извлечения знаний из текстов. Модуль позволяет выполнять в автоматическом режиме: выбор системы продукций для активации; построение рабочей памяти, соответствующей активной системе продукций; запуск машины логического вывода на активной системе продукций. Это стало возможным за счет применения онтологии с активной семантикой, представляющей знания о системе продукций [1].

Разработанный модуль позволит продолжить исследования по разработке методов автоматического извлечения знаний из текстов2. Однако проведенные вычислительные эксперименты показали, что полученное программное обеспечение может быть использовано для решения других задач. Для этого необходимо дополнить базу правил системами продукций, реализующими методы решения задачи, а также создать спецификации систем продукций в виде онтологий.

Список литературы Моделирование системы управления активацией продукционных правил с использованием автоматного программирования

  • Дармахеева Т. А., Хаптахаева Н. Б. Онтологическая модель представления знаний о системе продукций. «ЗНАНИЯ - ОНТОЛОГИИ - ТЕОРИИ» (ЗОНТ-2017): матер, всеросс. конф. с междунар. участием. Новосибирск: Изд-во СО РАН Институт математики им. C. JI. Соболева, 2017. С. 119-129.
  • Найханова JI. В. Технология создания методов автоматического построения онтологий с применением генетического и автоматного программирования: монография. 2-е изд., 2013. Улан-Удэ: Изд-во ВСГУТУ, 268 с.
  • Поликарпова Н. И., Шалыто А. А. Автоматное программирование. СПб.: Питер, 2009. 176 с.
  • Шатуева (Дармахеева) Т. А., Хаптахаева Н. Б. Формирование рабочей памяти продукционной системы, предназначенной для автоматического извлечения знаний из текстов // Вестник Восточно-Сибирского государственного университета технологий и управления. 2013. № 4 (43). С. 69-74.
  • Борисов А. Б. Большой экономический словарь. М.: Книжный мир, 2003. 895 с.
Статья научная