Модель онтологии пользователя состоит из двух моделей онтологий: модели онтологии системы понятий диалога и модели задач пользователя.
Модель онтологии системы понятий диалога. Модель онтологии системы понятий диалога (ОСПД) описывает структуру терминов системы понятий диалога и виды связей между ними, ОСПД=<ИмяСистемыПонятий, ГруппыТерминов>, где ИмяСистемыПонятий – имя системы понятий диалога, ГруппыТерминов - множество групп терминов, ГруппыТерминов={ГруппаТерминовi} .
Каждая группа терминов ГруппаТерминовi характеризуется тройкой, ГруппаТерминовi=<ИмяГруппыi, ГруппыТерминовi, Терминыi>, где ИмяГруппыi – имя группы терминов (все имена групп терминов в модели онтологии должны быть различны), ГруппыТерминовi – множество групп терминов внутри данной группы, ГруппыТерминовi = ГруппыТерминов, Терминыi – множество терминов внутри данной группы, Терминыi={Терминij} . Группы терминов предназначены для объединения терминов в концептуально связанные группы.
Каждый термин Терминij характеризуется парой, Терминij=<ИмяТерминаij, ТипЗначенияij>, где ИмяТерминаij – имя термина (все имена терминов в модели онтологии должны быть различны), ТипЗначенияij – тип значения, который может быть составным (т.е. состоящим из множества вложенных терминов), количественным, качественным или строковым, ТипЗначенияij Î ТипыЗначений, ТипыЗначений = {Составное, Количественное, Качественное, Строковое}, где Составное – составное значение, Количественное – количественное значение, Качественное – качественное значение, Строковое – строковое значение.
Составное значение описывает множество атрибутов, Составное = {Атрибутi} . Каждый атрибут Атрибутi описывается парой, Атрибутi = <ИмяАтрибутаi, ТипЗначенияi>, где ИмяАтрибутаi – имя атрибута (в модели онтологии имена всех атрибутов принадлежащих одному и тому же термину/атрибуту должны быть различны, при этом имена атрибутов принадлежащих различным терминам/атрибутам могут совпадать), ТипЗначенияi – тип значения атрибута, ТипЗначенияi Î ТипыЗначений. Атрибуты предназначены для описания существенных, неотъемлемых свойств терминов.
Количественное значение может быть целым или вещественным, Количественное={ЦелоеЗначение, ВещественноеЗначение}. При описании целого значения ЦелоеЗначение указывается диапазон его возможных значений, а также единица измерения, т.е. ЦелоеЗначение = <ЦелоеМин, ЦелоеМакс, ЦелоеМера>, ЦелоеМин – целое число, описывающее минимум для данного значения, ЦелоеМакс – целое число, описывающее максимум для данного значения, ЦелоеМера – строка, описывающая единицу измерения. Аналогично описывается вещественное значение.
Качественное значение Качественное=<СпособВыбора, КачественныеЗначения>, где СпособВыбора - способ выбора качественного значения из множества вариантов и КачественныеЗначения – множество вариантов качественного значения, КачественныеЗначения={КачественноеЗначениеi} . Способ выбора качественного значения СпособВыбора Î {Совместный, Несовместный}, где Совместный – способ выбора, при котором из множества вариантов КачественныеЗначения может быть выбрано любое подмножество значений, Несовместный – способ выбора, при котором из множества вариантов КачественныеЗначения может быть выбрано только одно значение. Каждый вариант качественного значения КачественноеЗначениеi является строкой.
Для строкового значения указывается его максимально допустимая длина, Строковое = <СтроковоеЗначение, МаксимальнаяДлина>, где СтроковоеЗначение – это строка, длина которой не больше параметра МаксимальнаяДлина, МаксимальнаяДлина – целое число, описывающее максимально допустимую длину значения параметра СтроковоеЗначение.
Модель онтологии задач пользователя. Модель онтологии задач пользователя (ОЗП) описывает задачи, которые он может решить с помощью программного средства: ОЗП=<ИмяОбщейЗадачи, Задачи>, где ИмяОбщейЗадачи – имя общей задачи, Задачи – задачи пользователя, т.ч. Задачи =<ТипМножества,{Задачаi} >, где ТипМножества – тип множества, Задачаi – задача пользователя.
Тип множества ТипМножества указывает на отношения между задачами, ТипМножества={«выбор», «объединение», «разрешение», «деактивация»}. Множество «выбор» означает, что может выполняться любая задача из множества {Задачаi} , независимо от выполняемых на текущем шаге задач и исхода их выполнения. Множество «объединение» означает, что может быть выполнена любая задача из множества {Задачаi} , но при этом выполнение некоторой задачи Задачаi может начаться только после окончания выполнения предыдущих задач из данного множества. Множество «разрешение» означает, что множество {Задачаi} является упорядоченным и только успешное выполнение задачи с именем Задачаi приводит к возможности выполнения задачи Задачаi+1 этого подмножества. Множество «деактивация» означает, что множество {Задачаi} является упорядоченным и начало выполнения задачи Задачаi приводит к прерыванию любой задачи из множества {Задачаi+1,…, Задачаi+taskcount}.
Каждая задача Задачаi характеризуется парой, Задачаi =<ИмяЗадачиi, Задачиi >, где ИмяЗадачиi – имя задачи (все имена задач должны быть различны), Задачиi – множество подзадач задачи с именем ИмяЗадачиi, Задачиi = Задачи.