Модели и методы разработки веб-приложений на основе онтологии предметной области, страница 4

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

1)  если , то  

2)  если , то  

Теорема. В правильно сформированной системе шаблонов если , то

1)  данный шаблон единственен;

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

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

Докажем от противного второе утверждение. Пусть . Т. к. , то ; но по условию теоремы  максимальна — противоречие.

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

3.2  Проверка непротиворечивости систем шаблонов

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

·  проверка существования шаблонов для визуализации всех ресурсов;

·  проверка существования шаблонов для обработки всех действий с БД для всех ресурсов;

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

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

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

4  Реализация информационной системы на основе шаблонного подхода

4.1  Структура системы

За основу для построения системы взят подход Модель-Вид-Контроллер (Model-View-Controller, MVC) [], используемый во многих веб-каркасах, таких как Apache Struts, Spring MVC, Ruby on Rails и т. п. Система взаимодействует с окружающим миром через отдельный объект, называемый диспетчером запросов. Диаграмма алгоритма обработки запроса диспетчером приведена на рис. 1, он включает в себя следующие действия:

·  анализ запроса;

·  выполнение операций с БД;

·  визуализация результата;

·  возвращение результата пользователю.

Рис. 1: Алгоритм обработки запроса диспетчером запросов