Модель онтологии сценария диалога (ОСД) описывает аксиому диалога – начальное окно, которое появляется на экране монитора после запуска программного средства, структуру реакций на события, типы инструкций, доступных при описании реакций на события, а также стандартные функции диалога.
ОСД характеризуется парой <StartWindow, States>, где StartWindow - начальное окно, которое появляется на экране после запуска программного средства, StartWindow является элементом интерфейса типа «окно-контейнер», StartWindow Î Controls | Controltype = Окно-контейнер, States - множество возможных состояний, States={Statei} .
Каждое состояние Statei характеризуется тройкой <Eventi, Variablesi, Instructionsi>, где Eventi – событие в интерфейсном элементе, характеризующее i состояние, Variablesi – множество переменных, которые используются для хранения промежуточных данных в ходе выполнения последовательности инструкций Instructions, Variablesi={Variableij} , Instructions – последовательность инструкций, выполняющихся в данном состоянии, Instructionsi=<Instructionij> .
Событие Eventi принадлежит множеству событий некоторого элемента интерфейса Controli (см. пп. 2.3.2), Eventi Î .
Каждая переменная Variableij характеризуется парой, Variableij = <Variable_Nameij, Variable_Typeij, >, где Variable_Nameij – имя переменной, Variable_Typeij – тип переменной. Тип переменной Variable_typeij Î Param_Type, где Param_Type = String È Integer È Float È Boolean È Enumeration È Controls | Control_type=Окно-контейнер (см. пп. 2.3.2).
Каждая инструкция Instructionij из последовательности инструкций Instructionsi является простой либо составной инструкцией, т.е. InstructionijÎSimpleÈCompound, где Simple – множество простых инструкций, Compound – множество составных инструкций.
Множество простых инструкций Simple=AssignmentÈFunction_Call, где Assignment – инструкция присваивания, Function_Call – множество инструкций вызова функции. Инструкции вызова функций могут производиться для функций элементов интерфейса, функций программных интерфейсов, предоставляемых прикладной программой и стандартных функций диалога, т.е. Function_Call=Control_Function È DSO_Function È nterface_Function, где Control_Function – множество функций элементов интерфейса, Control_Function = ; DSO_Function – множество стандартных функций диалога (их описание совпадает с описанием функций элементов интерфейса (см. пп. 2.3.2), Interface_Function – множество функций программного интерфейса, предоставляемых прикладной программой, Interface_Function = .
Инструкция присваивания характеризуется парой, Assignment = <Acceptor, Source>, где Acceptor – переменная, которой присваивается новое значение, Source – источник этого нового значения. Переменной Acceptor может быть либо некоторый параметр элемента интерфейса, либо переменная из множества переменных, определенных текущем состоянии диалога, т.е. AcceptorÎ È Variablesij. Источником Source нового значения переменной Acceptor может быть либо некоторый параметр элемента интерфейса, либо переменная из множества переменных, либо инструкция вызова функции, либо константное значение, т.е. SourceÎ È Variablesij. È Function_Call È Constant.
Каждая константа Constant описывается своим типом и значением, т.е. Constant = < Constant_Value, Constant_Type >, где Constant_Value – значение константы, Constant_Type - тип константы, который описывается так же, как и тип параметра функции, Constant_Type = FuncParam_Type. Значение константы описывается так же как значение параметра функции, Constant_Value = FuncParam_Value.
Стандартные функции диалога DSOFunctions=Comparisons È Logical È Mathematical È Conversion}, где Comparisons – множество функций сравнения на равенство, Logical – множество логических фукций, Mathematical – множество математических функций, Conversion – множество функций преобразования типов. Множества Comparisons, Logical, Mathematical и Conversion описаны ниже.
Множество составных инструкций состоит из двух элементов, Compound={Condition, Cycle}, где Condition – условие, Cycle – цикл.
Условие характеризуется тройкой, Condition=<Comparison, ThenBlock, ElseBlock>, где Comparison – функция сравнения на равенство из множества стандартных функций диалога, в зависимости от истинности которой выполняется тот или иной блок вложенных инструкций, Comparison Î Comparisons. ThenBlock – последовательность инструкций, которая выполняется в случае истинности условия, ThenBlock = Instructions. ElseBlock – последовательность инструкций, которая выполняется, в случае если условие ложно, ElseBlock = Instructions.
Цикл характеризуется парой, Cycle=<Comparison, WhileBlock>, где Comparison – функция сравнения на равенство из множества стандартных функций диалога, в зависимости от истинности которой производится циклическое выполнение блока вложенных инструкций, Comparison Î Comparisons. WhileBlock – последовательность инструкций, которая выполняется в случае истинности условия.
Множество стандартных функций диалога DSOFunctions состоит из множества функций сравнения на равенство, логических, математических, а также функций преобразования типов. В Приложении 3 приведено описание функций каждого из указанных множеств.
Приведем описание множества стандартных функций диалога. Как было отмечено выше, множество DSOFunctions есть объединение следующих множеств, DSOFunctions = ComparisonsÈLogicalÈMathematicalÈConversion.