Применение онтологических моделей

Эта страница представляет собой главу из нашего методического пособия
"Введение в онтологическое моделирование" (нажмите для перехода к полной версии в формате PDF).

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

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

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

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

Симуляционное моделирование обычно выполняется пошагово. Например, на первом шаге А1 совершает попытку бежать; на втором шаге А4 имеет возможность на это отреагировать – отдать команду А2. В зависимости от уровня детализации модели, существует возможность перейти от логического моделирования к физическому, то есть основанному на законах физики (например, решению вопроса о том, через какое время А2 догонит А1, если известно начальное расстояние между ними, и скорость каждого из них). В этом случае каждый объект приобретает свойства, отражающие его физические характеристики (координаты, текущая скорость, максимальная скорость, ускорение и др.). Значит, нам потребуется механизм выполнения этой модели, позволяющий на каждом шаге симуляции обновлять значения этих свойств в соответствии с физическими законами. На практике этот механизм всегда будет программным.

Вторым применением семантических моделей является поддержка принятия решений. В самом деле, мы можем записать в виде логических аксиом правила поведения объектов. Предположим, мы создаем модель, предназначенную для выбора медицинских исследований, которые следует назначить пациенту. В ней могут содержаться такие аксиомы: "Если пациент жалуется на сильную головную боль, ему необходимо назначить УЗИ сосудов шеи и головного мозга". Если такая модель будет реализована в компьютерной программе, с которой работает сотрудник регистратуры, он сможет выбрать симптомы, с которыми обратился пациент, и получить распечатку назначений на обследования. С этими результатами пациент пойдет на прием к врачу. Конечно, подобная система будет содержать множество вариантов ветвления, которые потребуют проведения небольшого интервью с пациентом в зависимости от того, какие симптомы он называет. Важно отметить, что создает модель человек с более высокой квалификацией (врач), чем тот, кто ее использует (регистратор) – таким образом, модель служит средством переноса знаний.

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

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

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

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

Качество решения таких задач напрямую зависит от детальности и адекватности составления модели. Простейшую модель для решения указанной задачи можно составить в Excel без всякой семантики: построить список трансформаторов с указанием года последнего ремонта каждого из них, отсортировать по этому столбцу, и взять 10 самых "заброшенных" трансформаторов. Очевидно, однако, что это решение не является оптимальным, поскольку не учитывает степень важности трансформаторов для технологических процессов предприятия, возможный ущерб от аварии на каждом из них, нагрузку и степень износа каждого трансформатора, данные контроля, выполненного электриками. Следующим соблазном чисто математического упрощения задачи является сведение всех перечисленных параметров в один числовой коэффициент, и ранжирование трансформаторов по нему. Например, мы можем оценить степень важности каждого трансформатора по шкале от 0 до 100, и придать этому параметру весовой коэффициент 0.2. Аналогичным образом "оцифровав" все остальные параметры, и раздав им весовые коэффициенты, общая сумма которых будет равна 1, получим синтетический "коэффициент потребности в ремонте" для каждого трансформатора, нормированный на единицу. Отсортировав трансформаторы по нему, мы получим более качественное решение, чем при сортировке по году последнего ремонта, однако оно все еще будет далеко не оптимальным. Например, возможны сочетания факторов, которые делают потребность в ремонте критически важной, при этом значение остальных параметров перестает играть роль. Так, если наш трансформатор обслуживает хранилище токсичных отходов, при обесточивании которого может произойти их выброс, что приведет к экологической катастрофе и полной остановке работы предприятия – очевидно, что этот трансформатор должен ремонтироваться "вне конкурса", при достижении им 50% выработки ресурса. Таких правил может быть множество; их нельзя описать в математической модели, но можно описать в семантической.

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

Наконец, еще одним применением семантических моделей является помощь человеку в организации знаний. Хорошо известна проблема, состоящая в том, что по мере роста сложности информационной инфраструктуры любого предприятия, она теряет управляемость. Резко повышается время, необходимое на поиск той или иной информации, что приводит к утрате гибкости в принятии решений. Иногда объем накопившейся информации таков, что проводить в нем поиск вручную принципиально невозможно. В таких случаях единственным вариантом решения проблемы является создание семантической модели той среды, в которой функционирует предприятие, с привязкой к каждому элементу этой модели ссылок на связанные с ним информационные ресурсы. Такая модель играет роль "оглавления", по которому сотруднику легко найти любую нужную ему информацию.

Представим себе, что компания обслуживает сложный технологический объект – например, трубопровод. В случае аварии на каком-либо узле этого трубопровода инженерам необходимо быстро найти сведения о типе установленного там оборудования, его возможных аналогах, наличии этих аналогов на складе или у поставщиков, информацию о датах и результатах последних плановых ремонтов этого узла, сведения о предыдущих инцидентах на нем. Даже при самой лучшей организации информационных систем на предприятии невозможно ожидать, что все эти сведения будут доступны в рамках одной программы (ТОиР ): сведения об аналогах и их наличии на складе/у поставщиков явно выходят за рамки ее сферы ответственности. Значит, в семантической системе к модели данного узла должен быть привязан:

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

Обладая таким "оглавлением", инженер сможет быстро найти все необходимые сведения, и запланировать ремонтные мероприятия.

Следующая глава: Технологии онтологического моделирования. RDF и OWL