В настоящий момент существует множество языков спецификации онтологий (Ontolingua, CycL, LOOM, OKBC, OCML), в том числе и языки, разработанные на базе XML (RDF, OWL, BOM). Одни основаны на дескриптивных логиках (LOOM, OWL), другие на фреймах (OKBC, OCML), третьи позволяют описывать функции интерпретации на Java или JavaScript (BOM). Выбор же конкретного языка зависит от решаемой задачи, например, BOM предназначен для описания имитационных моделей, а RDF для описания метаданных.
В случаях, когда специфика задачи не позволяет использовать существующие языки спецификации онтологии, разработчикам необходимо не только разработать язык, но и инструментальные средства для просмотра, редактирования и интерпретации онтологии, поэтому использование в качестве основы для нового языка XML, дает ряд преимуществ:
1. Существуют стандартные средства для задания структуры (XML Schema) и интерпретации (XSLT) документа;
2. Существует множество инструментальных средств для редактирования XML документов, в том числе и бесплатных.
Рассмотрим использование XML для описания онтологии на примере задачи генерации текстов аналитических отчетов. Данная задача подразумевает, что система на основе данных полученных из различных источников (БД, веб-сервисы и др.) с определенной периодичностью (раз в месяц и/или раз в квартал) генерирует документ на естественном языке с заранее заданной структурой.
Под онтологией будем понимать тройку следующего вида O = < C, R, F >, где C - множество концептов, R - множество связей между ними, а F - функции интерпретации связей и концептов. Онтология может быть многоуровневой, но, как правило, в ней выделяют следующие два уровня:
1. Онтологию задачи - часть онтологии, не зависящая от конкретной предметной области, которая описывает термины характерные для решаемой задачи (задачи генерации аналитических отчетов);
2. Предметную онтологию - часть онтологии, описывающая термины характерные для конкретной предметной области (описание конкретного аналитического отчета).
Онтология задачи может быть представлена с помощью схемы документа (XML Schema), в которой будут описаны классы понятий (документ, раздел, показатель, продукционное правило) и связи между ними (документ состоит из разделов, каждый раздел описывает некоторый показатель), и с помощью таблицы преобразований документа (XSLT), в которой будут заданы функции интерпретации (текстовые шаблоны в формате HTML и вспомогательные функции на JavaScript, необходимые для получения данных и заполнения документа).
В свою очередь предметная онтология будет описана в XML документе в соответствии с разработанной схемой. Каждый термин в этом документе будет являться экземпляром понятия описанного в схеме, конкретизируя его (например, понятие «документ» будет конкретизировано до «Обзор экономического развития Российской Федерации», а понятие «показатель» до «Валовой внутренний продукт» и т. д.).
В процессе интерпретации предметной онтологии XML документ будет преобразован с помощью таблицы преобразований в HTML документ, содержащий JavaScript код, после выполнения которого будет получен конечный аналитический отчет.
Описанный выше механизм широко распространен в веб-разработке, но за используемыми понятиями (шапка страницы, блок навигации и т. д.), зачастую, кроется лишь синтаксическая составляющая, а говорить об онтологии уместно лишь тогда, когда понятия также несут и некоторый семантический смысл.