Понятие онтология сейчас активно применяется в информатике и искусственном интеллекте. Этот термин пришел из философии, где обозначал часть метафизики — учение о всем сущем, о его наиболее общих философских категориях, таких как бытие, субстанция, причина, действие, явление. При этом онтология как наука претендовала на полное объяснение причин всех явлений.
В инженерии знаний под онтологией понимается детальное описание некоторой проблемной области, которое используется для формального и декларативного определения ее концептуализации. Часто онтологией называют базу знаний специального вида, которую можно разделять, отчуждать и самостоятельно использовать в рамках рассматриваемой предметной области (ПрО).
Можно сказать, что онтология — это точная спецификация некоторой области, которая включает в себя словарь терминов этой области и множество логических связей (типа "элемент-класс", "часть-целое"), которые описывают, как эти термины соотносятся между собой2. Заметим, что при таком подходе понятие онтологии сильно пересекается с уже давно принятым в информатике и лингвистике понятием тезауруса.
Онтологии позволяют представить понятия в таком виде, что они становятся пригодными для машинной обработки. Нередко онтологии используются в качестве посредника между пользователем и информационной системой, они позволяют формализовать договоренности о терминологии между членами сообщества, например между пользователями некоторого корпоративного хранилища данных.
В центре большинства онтологий находятся классы, которые описывают понятия ПрО. Например, все информационные ресурсы Интернет, с одной стороны можно классифицировать как текстовые, графические, аудио, мультимедийные и т. д., а с другой — как платные либо бесплатные. Слоты (параметры) описывают свойства классов и экземпляров. Например, на уровне экземпляров классов информационные ресурсы можно описывать через такие слоты, как размер, имя, тематика, местоположение, протокол доступа и т. д.
На формальном уровне онтология — система, состоящая из наборов понятий и утверждений об этих понятиях, на основе которых можно строить классы, объекты, отношения, функции и теории. Практически все модели онтологии содержат определенные концепты (понятия, классы), свойства концептов (атрибуты, роли), отношения между концептами (зависимости, функции) и дополнительные ограничения, которые определяются аксиомами. Концептом может быть описание задачи, функции, действия, стратегии, процесса соображения и т. п.
Онтологические системы строятся на основе следующих принципов:
формализация, т. е. описания объективных элементов действительности в единых, строго определенных образцах (терминах, моделях и др.);
использование ограниченного количества базовых терминов (сущностей), на основе которых конструируются все остальные понятия;
внутренняя полнота и логическоя непротиворечивость.
В отличие от обычного словаря для онтологической системы характерно внутреннее единство, логическая взаимосвязь и непротиворечивость используемых понятий.
Классифицировать онтологии можно по различным параметрам (в зависимости от того, с какой целью их классифицируют), например:
- по степени зависимости от конкретной задачи или прикладной области;
- по языку представления онтологических знаний и его выразительным возможностям;
- по уровню детализации аксиоматизации.
Дополнительно к этим характеристикам можно ввести и классификации онтологии, связанные с разработкой, реализацией и сопровождением онтологии, но такая типизация более уместна при обсуждении вопросов реализации онтологических систем.
По степени зависимости от конкретной задачи или предметной области обычно различают следующие онтологии:
Онтологии верхнего уровня (метаонтологии). Такие онтологии описывают наиболее общие концепты (пространство, время, материя, объект, событие, действие и т. д.), которые независимы от конкретной проблемы или области. Поэтому представляется разумным (по крайней мере, в теории) унифицировать их для больших сообществ пользователей. Примером такой общей онтологии является коммерческий проект онтологии CYC. Это база знаний, содержащая все общие понятия окружающего мира, которую могут использовать самые разные программные средства. По некоторым данным, в CYC уже представлены 10 концептов и 105 аксиом. Для представления знаний в рамках этого проекта разработан специальный язык CYCL.
Ориентированные на предметную область (предметные онтологии). Во многих дисциплинах сейчас разрабатываются стандартные онтологии, которые могут использоваться экспертами по предметным областям (доменам) для совместного использования и аннотирования информации в своей области. Например, в области медицины созданы большие стандартные, структурированные словари, такие как SNOMED и семантическая сеть Системы Унифицированного Медицинского Языка (the Unified Medical Language System). Также появляются обширные общецелевые онтологии. Так, программа ООН по развитию (United Nations Development Program) и компания Dun&Bradstreet объединили усилия для разработки онтологии UNSPSC, которая предоставляет терминологию товаров и услуг (www.unspsc.org).
Ориентированные на задачу. Это онтологии, используемые конкретными прикладными программами и содержащие термины, которые используются при разработке ПО, выполняющего конкретную задачу. Они отражают специфику приложений, но могут также содержать некоторые общие термины (например, в графическом редакторе будут и специфические термины — палитра, тип заливки, наложение слоев и т. д., и общие — сохранить и загрузить файл).
Онтологии ПрО и онтологии задач описывают, соответственно, словари, которые относятся к определенной ПрО (например медицина, дистанционное обучение, Интернет-технологии) или типичной задаче (например диагностика, продажа). При этом они используют специализацию терминов, представленных в онтологиях верхнего уровня.
Прикладные онтологии описывают концепты, которые зависят как от онтологии задач, так и от онтологии домена. Примером может служить онтология для автомобилей, строительных материалов, вычислительной техники. Онтология ПрО обобщает понятия, использующиеся в некоторых задачах домена, абстрагируясь от самих задач (так, онтология автомобилей независима от любых особенностей конкретных марок машин).
ОНТОЛОГИЧЕСКИЙ АНАЛИЗ
В основе онтологического анализа лежит описание системы (например корпорации) в терминах сущностей, отношений между ними и преобразование сущностей, которое выполняется в процессе решения определенной задачи.
Основной характерной чертой этого подхода является, в частности, разделение реального мира на составляющие и классы объектов и определение их онтологий, или же совокупности фундаментальных свойств, которые определяют их изменения и поведение. Эти подходы и методологии базируются на следующих принципах проектирования и реализации онтологии.
Ясность — онтология должна эффективно передавать смысл введенных терминов, ее определения должны быть объективны, а для их объективизации должен использоваться четко фиксированный формализм.
Согласованность — все определения должны быть логически непротиворечивы, а те утверждения, которые выводимы в онтологии, не должны противоречить ее аксиомам.
Расширяемость — необходимо проектировать онтологию так, чтобы ее словари терминов можно было расширять без ревизии уже существующих понятий.
Минимум влияния кодирования — концептуализация онтологии должна быть специфицирована на уровне представления, а не символьного кодирования.
Минимум онтологических обязательств — онтология должна содержать только наиболее существенные предположения о моделируемой ПрО, чтобы оставлять свободу расширения и специализации.
Онтологический инжиниринг подразумевает глубокий структурный анализ предметной области. Приведем простейший алгоритм онтологического инжиниринга:
выделение концептов — базовых понятий данной предметной области;
определение "высоты дерева онтологий" — количество уровней абстракции;
распределение концептов по уровням;
построение связей между концептами — определение отношений и взаимодействий базовых понятий;
консультации с различными специалистами для исключения противоречий и неточностей.
Методология построения онтологии предполагает рассмотрение следующих важных вопросов:
- обозначение целей и области применения создаваемой онтологии;
- построение онтологии, которое включает:
1) фиксирование знаний о ПрО, т. е. определение основных понятий и их взаимоотношений в выбранной предметной области; создание точных непротиворечивых определений для каждого основного понятия и отношения; определение терминов, которые связаны с этими терминами и отношениями; 2) кодирование, т. е. разделение совокупности основных терминов, используемых в онтологии, на отдельные классы понятий; 3) выбор или разработку специального языка для представления онтологии; 4) непосредственно задание фиксированной концептуализации на выбранном языке представления знаний;
- совместное использование людьми или программными агентами общего понимания структуры информации;
- обеспечение возможности использования знаний ПрО;
- создание явных допущений в ПрО, лежащих в основе реализации;
- отделение знаний ПрО от оперативных знаний — это еще один вариант общего применения онтологий;
- анализ знаний в ПрО.
Список литературы
1. Гладун А.Я., Рогушина Ю.В. Онтологии в корпоративных системах // Корпоративные системы, 2006, №1