ISSN 0236-235X (P)
ISSN 2311-2735 (E)
1

16 Марта 2024

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


Георгиев В.О. (VOGeorgiev@kpfu.ru) - Российская академия наук, Казанский (Приволжский) федеральный университет (эксперт РАН, старший преподаватель), Казань, Россия, кандидат технических наук, Еникеев А.И. () -
Ключевое слово:
Ключевое слово:


     

Существующие а настоящее время диалоговые системы (ДС) [2, 5] можно разделить на два типа:

-    ДС с запрограммированным диалогом;

-    ДС, настраиваемые на различные классы за дач на основе соответствующих описаний пред метной области.

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

В литературе пока отсутствует достаточно приемлемое формальное определение сценария, а расхожее его толкование в каждом случае несет в себе черты процесса решения задач в конкретной предметной области [6].

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

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

Сценарная организация диалога определяется следующими факторами:

-  способом описания (и формальным аппара том, лежащим в основе такого описания) сцена рия;

-     поддерживающей формой и структурой диа лога;

-     возможностью вложенного описания сцена рия;

-     наличием средств сохранения и восстановле ния состояния диалога;

-     наличием протокола состояний диалога и средств возврата к предыдущим состояниям;

-     алгоритмом интерпретации сценария (органи зацией диалоговой программы при интерпрета ции сценария).

Сценарий диалога может непосредственно встраиваться (генерироваться) в ДС или интерпретироваться ею. При интерпретации сценарий хранится на внешнем носителе (обычно в виде символьного файла), допуская многократность использования.

Дадим формализованное определение сценария диалогового взаимодействия и диалоговой системы сценарного типа.

Общая схема функционирования большинства ДС сводится к следующим основным действиям:

•       вывод сообщений (вопросов) системы;

•       ввод сообщений пользователя;

•       запуск модулей (функций), выбираемых в соответствии с сообщениями пользователя и условиями выбора;

•       выбор последующих путей продолжения (или завершения) диалога, определяемый сооб щением пользователя и задаваемым условием.

Отсюда состояние ДС для каждого шага диалогового взаимодействия определяется значением переменной, которая присваивается сообщению пользователя (пусть это будет переменная X), и списком S = (M, Р, N), где М -текст сообщения системы, Р~(р , р , .... р ) -альтернативный список функции (процедур) р (1 — 1, к), из которого в зависимости от сообщения пользователя выбирается одна для выполнения, N=(n , п , .... пт) - список целых положительных чисел п. (i — l, m), определяющий нумерацию последующих альтернативных шагов диалога, выбираемых в зависимости от сообщения пользователя х (выбор пути, соответствующего п=0, будет означать завершение диалога, все остальные п>0, i = I, т).

Указанный список будем называть элементом сценария диалога, а список S — (s , s , ..., $я), где s (i—1, n) - элементы сценария, сценарием диалога.

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

Диалоговая система сценарного типа представляется в виде пары DS — (Cl, S), где £1 - набор программных модулей (программная часть), a S - сценарий диалога, являющийся входным параметром для программной части Л. Функционирование диалоговой системы в этом случае сводится к интерпретации задаваемого сценария.

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

Дадим описание алгоритмов функционирования ДС сценарного типа.

При описании диалоговых систем важной является формализация понятия взаимодействия (взаимодействие между пользователем и системой). Для этих целей может быть использован формализм Хоара [7, 8]. Основная направленность этого формализма — описание параллельных взаимодействующих процессов. Диалоговые процессы можно рассматривать как частный случай параллельно функционирующих процессов (процесс функционирования системы и действия пользователя).

Взаимодействие процессов осуществляется через каналы передачи сообщений, и никаких других общих областей (переменных) процессы не имеют. Передача сообщений через каналы реализуется двумя командами: с!т - вывод сообщения т в канал с, d?x - прием сообщения из канала d в переменную х. Взаимодействие носит синхронный характер: выполнение команды вывода сообщения в канал в одном процессе одновременно должно сопровождаться приемом этого сообщения из того же канала в Другом процессе.

Каждому каналу с ставится в соответствие специальная переменная с, принимающая значение "true", если соответствующий процесс готов к взаимодействию через канал с, к значение "false" - в противном. Под состоянием канала с по отношению к рассматриваемому процессу будем иметь в виду последовательность сообщений <т т , ..., т >, переданных через этот канал, начиная с момента начала функционирования данного процесса до некоторого фиксированного момента времени его работы. Последнее будем обозначать с = <т ,т .... т >. Если с= < >, то это будет означать, что через канал с не передано ни одного сообщения.

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

Пустой процесс. E=df(c= < >)&(d= < >)

Конструкция Е определяет начальное состояние взаимодействующего процесса, предусматривающего использование каналов с и d. В определенном смысле конструкция Е аналогична тождественному оператору.

Вывод (вывод сообщения е в канал с). cle; P=(^De)VE&cVc> &(c: = tail(c);P), где De - область определения выражения е, tail(c) — последовательность, получающаяся из с удалением первого элемента.

Пример: de; E=(c=d= < >)&cV(c> & tait(c) = d= < >)

Ввод (ввод сообщения из канала d в переменную х), d?x; P = dfE&d V

(x: = head(d); d: = tail(d); P),

где head(d) - первый (головной) элемент последовательности d, a tait(d) - результат удаления головного элемента из последовательности d.

Альтернативная композиция.

Пусть Р и Q - спецификации конструкций, начинающихся с команд ввода или вывода. Тогда: (Р Q) = dfE&P&QV^(E)&(PVQ).

Результат операции Р Q описывает процесс, в начальный момент функционирования которого процессы со спецификациями Р и Q готовы к взаимодействию через соответствующие каналы. Однако после выполнения одной команды ввода/вывода выполняется процесс, начинающийся с этой команды (Р или Q),

Алгоритмы, описывающие ДС сценарного типа, с учетом введенных формализмов будут выглядеть следующим образом. Пусть inter(S,k,x) - функция, описывающая алгоритм функционирования ДС (здесь S - сценарий диалога, к - номер элемента сценария, определяющего стартовый шаг ДС, х - переменная, используемая для приема сообщений пользователя). Тогда:

inter (S,k,x) ■= dfifк*0 then (c!message(S,k); inter! (S,k,x))

inter!(S,k,x! = dfd?x; inter2(S,k,x) inter2(S,k,x) = dfrun (S,k,x); inter(S,nexl(S,k,x),x)

Здесь: message(S, к) — функция выделения текста сообщения ДС (М), определяемая к-м элементом сценария S; с!message(S,к) описывает вывод сообщения ДС; d?x описывает прием сообщения пользователя в переменную х; run(S,k,x) описывает процесс запуска функции (процедуры) из Р (предполагается однозначное определение соответствующей функции или процедуры по fc-ому элементу сценария S в зависимости от значения переменной х); mxt(S,k,x) - номер следующего элемента сценария S, выбираемого на к-ом шаге диалога в зависимости от значения переменной х. Конструкции "run", "next" и функция "message" здесь не уточняются, поскольку могут по-разному определяться для разных ДС.

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

back — для восстановления состояния, соответствующего предыдущему шагу выполнения ДС;

функции - переключатели off и on для прямого к обратного переключения ДС с одного сценария на другой.

Рассмотрим алгоритмы функционирования ДС с учетом перечисленных функций.

Функция "STOP" inlers(S,k,x) = dfifk^0 then (c!(message(S,k) + "stop"); intersl(S,k,x)) inters!(S,k,xj = df(d?x; inters2(S,k,x)) (stop?any;SKIP) inters2(S,k,x) = dfrun (S,k,x); inters(S,next(S,k,x),x)

В отличие от конструкции "inter" здесь к сообщению системы на каждом шаге диалога добавляется имя функции "stop", выполнение которой завершает функционирование системы. Для вызова функции используется канал stop, причем в конструкции stop?any не играет роли, какое значение получит переменная "any" -важным является сам факт выполнения команды "stop?any", реализующей функцию "stop". Выполнение этой команды возможно лишь в том случае, если предикат stop принимает истинное значение.

Функция "BACK"

interb(S,k,x) = dfifk^O then (c!(mvssage(S,k) + "back"); interb!(S,k,x);interb(S,k..x))

MerbJ(SXx) = df(d?x; interb2(S,k.x))

(back?any;SKFP)

interb2(S,k,x) = df run (S,k,x); interb(S,nex!(S,k,x),x)

Аналогично "STOP", но в отличие от функции "stop" выполнение функции "back" восстанавливает состояние предыдущего шага диалога.

Функция "OFF" interoff(S!,kI,S2,k2,x) = df if къО then

(c!message(S!,kl)+ "off); interofflfS!, к I,S2,k2, x) ) interoffI(Sl,kl,S2,k2,x) = df(d?x; mteroff2(S!,kI,S2,k2,x)) (off?any;interon(S2,k2,Sl,kI,x)) interoff2(Sl,kl,S2,k2,x) = df run (Si,kl,x); interoff(Sl,next(Sl, k, x),S2, k2,x)

Аналогично предыдущим функциям, но в отличие от них функция off обеспечивает переключение диалогового процесса со сценария S1 на S2.

Функция "ON"

Определение функции "ON" получается путем замены всех вхождений слова "off" на слово "on" (interon).

В отличие от функции "off", функция "on" обеспечивает обратное переключение на прерванный ранее диалог.

Введем определения сценария для диалоговых систем с различными формами диалога.

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

-     меню-диалог;                                         * -

-     диалог типа "вопрос-ответ";

-     диалог на основе шаблонных форм;

-     профессиональный диалог;

-     графический диалог;

-     диалог на естественном языке.

Такая классификация носит условный характер, поскольку в реальных ситуациях сочетаются одновременно различные формы диалога. В частности, профессиональный диалог может использовать "меню-выборку", графический диалог и т.п. С другой стороны, эта классификация полезна для систематизации и выбора адекватных методов реализации диалоговых систем.

Рассмотрим меню-диалог, диалог на основе шаблонных форм и профессиональный диалог.

Меню-диалог - это один из наиболее распространенных видов диалогового взаимодействия. Под меню подразумевается список альтерна-

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

К наиболее важным преимуществам, обеспечиваемым меню-диалоговой системой, относятся следующие.

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

2.       Сокращается время ввода и количество вво димой с терминала информации. Вместо полно го набора данных с терминала при наличии ме ню во многих случаях достаточно нажатия со ответствующей функциональной клавиши или подвода курсора.

Практически все системы, работающие в реальном масштабе времени, снабжаются (в той или иной степени) аппаратом меню-диалогового взаимодействия. В зависимости от ситуации этот аппарат реализуется либо в виде жестко запрограммированного диалога, либо параметрической подсистемы, генерирующей требуемый вариант меню-выборки по задаваемому сценарию. Здесь мы будем касаться только сценарного варианта реализации. Сценарий меню-диалога представляется в виде списка S — (s ,s , ..., s ), где каждое s (i = J, п) (элемент сценария) представляется в свою очередь списком (M.P.N), где М определяет меню (альтернативный список элементов), Р -список имен (номеров) программных модулей (например "ехе" файлов), запускаемых в зависимости от меню-выборки, N - список номеров элементов сценария, выбираемых в качестве следующего шага диалога в зависимости от меню-выборки. Каждый элемент меню т (теМ) является функцией или просто сообщением, несущим информационную нагрузку. Каждому функциональному элементу меню т ставится в однозначное соответствие программный модуль р (р^Р), запускаемый после выбора элемента т. Если элемент т не является функциональным, то ему соответствует "пустой" программный модуль, то есть его выборка не сопровождается выполнением программы. Кроме того, каждому элементу т (теМ) ставится в однозначное соответствие целое число п (n+N), определяющее номер элемента сценария, инициируемого в качестве последующего шага диалога. Номер п = 0 (n+N) определяет конец диалога.

Функционирование меню-диалога описывается функциями, определенными выше, со следующей конкретизацией:-

output(message(S,k)) - вывод меню из fc-oro элемента сценария S;

proc(S,k) - список имен (номеров) программных модулей из fe-oro элемента сценария S;

х - номер выбираемого из меню элемента; selec!p(proc(S,k),x) - функция, инициирующая запуск программного модуля из fe-oro элемента сценария S в зависимости от номера х; sel'ectn(number(S,к),х) - функция перехода на следующий шаг меню-диалога (на следующий элемент сценария) в зависимости от номера х, где number(S,k) - список номеров элементов сценария, определяющих последующие шаги диалога.

В конкретных реализациях сценарий меню-диалога представляется обычно в виде файла с прямым доступом, каждая запись которого соответствует элементу сценария, а М, Р и N -поля записи, содержащие соответственно меню, список имен (номеров) программных модулей и список номеров последующих шагов диалога. Программная часть включает в себя генератор, обеспечивающий формирование сценария (заполнение соответствующего файла), и интерпретатор, обеспечивающий функционирование меню-диалога.

Диалог на основе шаблонных форм. Суть данной формы диалога заключается в задании в рамках соответствующего сценария набора экранных форм (шаблонов), определяющих порядок расположения выдаваемой на экран дисплея информации и "окон" для приема пользовательских сообщений. Для формирования таких сообщений обычно используется специальный инструментарий, позволяющий "рисовать" соответствующий шаблон на экране дисплея (например, в СУБД FoxBase для этой цели используются операторы "create screen" и "modify screen" или известный программный инструментарий "UI-User Interface").

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

В частности, упомянутые средства СУБД FoxBASE и UI не позволяет напрямую (без создания специальных программ) формировать шаблоны, не умещающиеся в пределах одного экрана и предусматривающие циклический вывод информации в соответствующие места шаблонной таблицы. Поэтому при появлении каждого нового класса задач возникает необходимость в создании нового инструментария с адекватными возможностями.

Ниже приводится один из способов формирования шаблонных сценариев применительно к задачам обработки информации, представляемых в виде разнообразных таблиц.

Применительно к описанию таблиц компоненты элемента сценария можно конкретизировать следующим образом: M = (name_r, lenj, numj, iswrite), где name_r = (r , т , ...,г ) -

список названий реквизитов г (iml,n), перечисляемых в порядке их следования в таблице; lenj=(lt , I , ...J) - спиеок целых чисел /( (i = l,n), каждое из которых определяет ширину соответствующей колонки таблицы; пит_/—(к, кг .,., к ) - список номеров (или названий) полей к Ci = l,n) из соответствующей базы данных; iswrite>=(b , &у ..., Ь ) - список логических констант "true" или "false", определяющих разрешение или запрет записи информации в соответствующие поля записи. Например, iswrite = (true, false) определяет разрешение на запись для первого поля и запрет для второго.

Значения переменной X, определяющие сообщения пользователя, в данном случае имеют более сложные структуры по сравнению с меню-диалоговой формой взаимодействия, поскольку здесь сообщения пользователя могут содержать разнообразную информацию - значения заполняемых полей базы данных, коды функциональных клавиш для управления процессами обработки информации (перелистывание, переключения на другие шаблонные формы и т.п.) и другие виды информации.

Компонента Р определяет множество функций {программных модулей) для выполнения действий по обработке информации и информационному управлению в зависимости от значения переменной X.

Константа N включает в себя номера различных элементов сценария, соответствующих используемым на различных шагах диалога шаблонным (экранным) формам.

Данная форма диалога используется преимущественно для задач обработки баз данных. Как и в случае меню-диалога, сценарии шаблонной формы диалога реализуются в виде специальных файлов (баз данных), являющихся исходными параметрами для соответствующих диалоговых систем.

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

Профессиональный диалог может использовать другие формы диалога (меню-выборку, шаблонную форму, графический диалог и т.п.), поэтому внешний вид профессионального диалога определяется макетами экрана.

Таким-образом, сценарий для ДС, использующих профессиональный диалог, можно конкретизировать так.

Сценарий представляется списком S = (s, ty -> s ), где s (i = l,n) - элементы сценария.

Элемент сценария в свою очередь представля- ч ется как s=(M,P,N), где M=(MK,V,SH,D) -текст сообщения (это может быть вопрос дна-лога и/или справочная информация, результаты программной обработки к т.п.)( в котором МК = (тк , ntkf ..., тк ) - макеты (кадры) экрана, определяющие внешний вид сообщения (хода диалога); V=(v ,v^ ..., v ) - вопросы диалога; SM = (sh sA ..., sh ) - синтактикосеманти-ческие шаблоны ответов пользователя; D = (d, rfji ■■■. й ) - справочная информация, позволяющая пользователю в соответствующем пункте диалога получить справку о состоянии диалога, о характеристиках текущего пункта, возможные варианты ответов, значения по умолчанию и т.п.; Р = (р , р^ .... р ) - альтернативный список функций (процедур)"р (i=l,k), из которого в зависимости от сообщения пользователя выбирается одна для выполнения; Лг=('п;, и ..., и ) - список целых положительных чисел я (i=l,m), каждое из которых определяет один из возможных путей (шагов) последующего диалога. Ответ пользователя в диалоговых системах с профессиональным диалогом определяет уже не переменная, а вектор возможных сообщений X. Ответ контролируется использованием синтактико-семантических шаблонов.

Описанная концепция использована в процессе разработки ряда коммерческих и экспериментальных диалоговых систем в области САПР, обработки больших информационных материалов на основе СУБД FoxBASE, автоматизации обучения с применением средств визуального моделирования [1, 4]. Системы функционируют в операционной системе MS DOS на персональных компьютерах, совместимых с IBM PC. Имеются варианты реализации для больших ЭВМ на основе операционной системы ОС СВМ.

Список литературы

1.      Георгиев 8.О. Расширяемая диалоговая система, осно ванная на спецификациях сценарного типа // Разработка и использование персональных ЭВМ: Мсждунар. снмпоэ. Минск: НИИТИ. 1989. Т.2, 4.1. С. 86-89.

2.      Диалоговые системы // АТУЛ. Пущине: АН СССР. 1987. Вып. 1. 53 с.

3.      Довгялпо A.M. Диалог пользователя ЭВМ. Основы проектирования и реализации. Киев: Наук, думка, 1981. 232 с.

4.      Еинкеев А.И., Хабибрахманов А.Ф. Программное сред ство подготовки и интерпретации меню-диайога в вычис лительном процессе ДИАМОН-88 // Искусственный ин теллект в автоматизированном управлении технологичес кими процессами: Всссоюз. науч.-техн. конф. М.: ВИНИТИ. 1989. С.13-17.

5.      Материалы по математическому обеспечению ЭВМ // Каталог диалоговых систем. - Киев: ИК АН УССР, 1986. 275 с.

6.      Перевозчиков* О.Л. Модели общения при решении за дач на ЭВМ // УСиМ. 1987. N5. С. 61-68.

7.      C.A.R. Hoare. A calculus of total correctness for communi eating processes // Oxford University Computing Laboratory, PRG, 1981, 120 p.

8.      CA.R. Hoare. Specifications, Programs and Implementa tions // Oxford university Computing Laboratory, PRG, 19S2.



http://swsys.ru/index.php?id=1332&lang=.&page=article


Perhaps, you might be interested in the following articles of similar topics: