Онтология в информатике
Онтоло́гия в информатике, описание предметной области, сформулированное на формальном языке, семантика которого позволяет осуществлять логический вывод.
В общем понимании, онтология – формальное описание категорий, свойств и отношений между понятиями, данными и сущностями некоторой предметной области. В 1980-х гг. в области искусственного интеллекта начали использовать термин «онтология» для обозначения как модели мира, так и компоненты систем, основанных на знаниях. В 1995 г. распространение получила статья Тома Грубера «К принципам проектирования онтологий, используемых для обмена знаниями». Грубер определил онтологию как «спецификацию концептуализации» (Gruber. 1995. P. 908). Как уточнение определения Грубера, Файльмайр и Вёс (2016) дали такое определение: «Онтология – это формальная, явная спецификация общей концептуализации, которая характеризуется высокой семантической выразительностью» (Feilmayr. 2016. P. 3).
Элементы онтологии
Современные онтологии имеют много структурных сходств, независимо от языка, на котором они выражены. Большинство онтологий описывают индивиды (экземпляры), классы (понятия), атрибуты и отношения. В общем случае онтологии могут включать:
Экземпляры, или объекты (базовые, или объекты «базового уровня»). Экземпляр может не принадлежать ни к одному, принадлежать к одному или нескольким классам. Класс может иметь любое количество экземпляров.
Класс – набор объектов. Класс может быть подклассом другого, наследующим характеристики от своего родительского суперкласса.
Атрибуты – аспекты, свойства, характеристики или параметры, которые могут иметь объекты (и классы).
Отношения – способы, с помощью которых классы и отдельные лица могут быть связаны друг с другом.
Функциональные термы – сложные структуры, образованные из определённых отношений, которые могут использоваться вместо отдельного термина в утверждении.
Ограничения – формально сформулированные описания того, что должно выполняться, чтобы какое-то утверждение было принято в качестве входных данных.
Правила – утверждения в форме предложения «если – то» (предшествующее – последующее), описывающие логические выводы, которые могут быть сделаны из утверждений.
Аксиомы – утверждения (включая правила) в логической форме, которые вместе составляют общую теорию, которую онтология описывает в своей области применения.
События – изменения атрибутов или отношений.
Языки онтологий
Онтологии обычно кодируются с использованием специальных формальных языков – языков онтологий. Существует целый ряд таких языков (список неполон):
KIF (англ. Knowledge Interchange Format – формат обмена знаниями) – основанный на S-выражениях синтаксис для логики.
Common Logic (CL) – преемник KIF (стандартизован – ISO/IEC 24707:2007).
CycL – онтологический язык, использующийся в проекте Cyc. Основан на исчислении предикатов с некоторыми расширениями более высокого порядка.
DAML+OIL является результатом слияния DAML-ONT [ранний результат программы разработки языка разметки агентов DARPA (DAML)] и OIL (the Ontology Inference Layer) (Fensel et al. 2001), разработанной группой (в основном европейских) исследователей при участии консорциума On-To-Knowledge.
Наиболее распространённым языком является Web Ontology Language (OWL).
Связь языка OWL с дескрипционной (дескриптивной) логикой
В качестве логической основы для языка OWL выбрана дескрипционная логика. Одно из требований к онтологиям заключается в том, чтобы содержащиеся в них знания были «доступны» для машинной обработки, в частности для автоматизированного логического вывода новых знаний из уже имеющихся. Для этого требуется, чтобы язык, на котором формулируются онтологии, имел точную семантику, а соответствующие логические проблемы были разрешимы (и имели практически допустимую вычислительную сложность). Кроме того, желательно, чтобы такой язык имел довольно большую выразительную силу, пригодную для формулировки на нём практически значимых фактов. Дескрипционные логики обладают такими свойствами.
Разработка онтологий
Часто выделяют онтологию верхнего уровня и онтологию предметной области. Онтология верхнего уровня это модель общих отношений и объектов, которые обычно применимы в широком диапазоне онтологий предметной области. Обычно используется основной глоссарий, в котором перечисляются термины и связанные с ними описания объектов, поскольку они используются в различных соответствующих онтологиях предметной области.
Онтология предметной области моделирует определения терминов, специфичных для этой предметной области. Поскольку онтологии предметной области написаны разными людьми, они представляют концепции очень специфическими и уникальными способами и часто несовместимы в рамках одного и того же проекта. По мере расширения систем, которые полагаются на онтологии предметной области, часто приходится объединять онтологии ручной доработкой. Это создаёт проблему для разработчика онтологий. Различные онтологии в одной и той же области возникают из-за разных языков, различного предполагаемого использования онтологий и разного восприятия предметной области.
Проблемы, связанные с разработкой онтологий, включают также:
необходимость обеспечения соответствия онтологии знаниям предметной области и использованию терминов;
необходимость обеспечения достаточной специфичности и концептуального охвата интересующей области, тем самым сводится к минимуму проблема полноты содержания.
Редакторы онтологий – это приложения, предназначенные для оказания помощи в создании или управлении онтологиями. Редакторы онтологий обычно используют один или несколько языков онтологий.