Описание структуры диалога с помощью сети переходов

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

Выделяют три типа вершин.

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

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

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

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

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

Условие Следующая вершина
C(1) N(1)
C(2) N(2)
….. ……
C(k) N(k)
  N(k+1)

Каждому условию C(i) соответствует вершина N(i), в которую должен быть осуществлен переход. Если никакое из условий не выполнено, то переход произойдет в вершину N(k+1) (например, в случае ошибки). Такое же обозначение используется и для безусловного перехода. Рассмотрим примеры.

Условие Следующая вершина
  N2
     
Условие Следующая вершина
a N2
b N2
c N3
  N4
 
 

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: