Онтология. Что это такое? Научно-популярный журнал для юношества «Страна знаний» №6, 2018

Многие вещи нам непонятны не потому, что наши понятия слабы;
но потому, что сии вещи не входят в круг наших понятий,

Козьма Прутков, «Мысли и афоризмы»

Хотя термин «онтология» сейчас довольно популярен в программистском сообществе, чёткого его понимания ещё не сложилось. Знание о том, что такое онтологии и как их использовать при создании информационных систем, до сих пор является чем-то эзотерическим, доступным только избранным специалистам по обработке знаний. Другое мнение заключается в том, что онтологии – это нечто абстрактное, «игрушечные знания», которые не применяются на практике и которыми занимаются в своих «абстрактных сферах» так называемые «crazy scientists», в просторечии именуемые «ботанами». Между тем, термин «онтология» вовсе не сложен для понимания и был введён для достижения вполне практических целей. Попробуем разобраться, для чего же были придуманы онтологии [1].

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

1. Онтология в философии

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

Джорджо де Кирико
Метафизика
итальянского художника Джорджо де Кирико
(1988-1978)

«Бытие» – это философская категория, обозначающая единство объективной и субъективной реальности, существование не только независимого от сознания человека объективного мира, но и самого сознания.

Основной вопрос онтологии: что именно действительно существует, является настоящей реальностью, а что лишь иллюзией, видимостью, кажущимся существованием. Поэтому есть определённые оттенки в понятиях «существование» и «бытие». Категория «существование» показывает, что что-то есть в наличии, но сам факт существования ещё не раскрывает скрытой сущности, глубинной причины существующего. Философия не ограничивается констатацией того, что существуют физический мир, люди, растения, животные, общество, духовная культура и тому подобное. Философия призвана найти основу всего разнообразия, множественности явлений мира, открыть связи, взаимозависимости между ними.

Издавна философами было замечено, что не всё, доступное нашему чувственному опыту, является настоящей реальностью. В мире наблюдается вечная текучесть бытия, все вещи возникают и со временем исчезают. Мир раздроблен на элементы, отдельные явления и вещи. То, что непосредственно наблюдается в мире, является временным, поэтому оно не имеет статуса истинной реальности. Что является бесспорно и безусловно существующим? Философы пришли к выводу, что чувственное восприятие мира ещё не раскрывает глубинной сущности вещей. Действительно существующей есть особая, сверхчувственная реальность, которая недоступна чувственному опыту, но которую можно постичь умом. Так возникает метафизика – учение о сверхчувственной реальности, о скрытой от непосредственного наблюдения сущности вещей, о причине их единства и внутренней взаимосвязи. Метафизика стала основой философской онтологии.

Основными вопросами онтологии и метафизики ещё с античных времен были следующие вопросы:

Существуют ли первоэлементы всего существующего?
Существует ли субстанция как истинная реальность, как предельная основа бытия? Если да, то есть ли она неизменной субстанцией, или же её нужно мыслить как вечно изменчивую?
Существует ли мир как целостное единство, или он только множество несвязанных друг с другом явлений, вещей, событий?
Имеет ли мир начало и конец, или он вечен и бесконечен?
Все ли в этом мире определяется причинно-следственными связями, или есть нечто свободное, не подчинённое детерминации?
Каково место человека в мире? Является ли человек очередным звеном мирового развития, или он есть его вершиной?

Эти и другие вопросы составляют основу учения о бытии, то есть онтологии.

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

Но научно-технический прогресс и, в частности, бурное развитие информационных технологий, привели к иному пониманию этого философского понятия.

2. Онтология в информационных технологиях

Если касаться информационных технологий, то термин «онтология» впервые появился в работе Томаса Грубера [2], в которой рассматривались различные аспекты взаимодействия интеллектуальных систем между собой и с человеком.

Интеллектуальными системами называются программы, которые моделируют некоторые аспекты интеллектуальной деятельности человека. Конечно, любая программа занимается таким моделированием в той или иной степени, ведь именно в этом и заключается ценность компьютера для человека – компьютерная система позволяет освободить человека от выполнения какой-то однотипной деятельности.

Томас Грубер
Томас Грубер (1959 г.р.)

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

Интеллектуальная система в этом смысле более универсальна – в ней знания о том, что надо делать в процессе выполнения программы, не вшиты в программу раз и навсегда, но могут меняться. Если так, то эти знания необходимо передавать программе как данные, а, следовательно, возникает необходимость их описания.

Знания, которые заложены в компьютерных программах, можно разделить на два сорта:

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

Таким образом, при создании интеллектуальной системы приходится учитывать такое разделение знаний и придумывать какие-то программные инструменты для оперирования этими знаниями.

Томас Грубер рассматривал вопросы взаимодействия интеллектуальных систем между собой, а также с человеком. Идея Грубера заключалась в том, чтобы позволить интеллектуальным системам обмениваться между собой заложенными в них знаниями о мире задач.

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

Это описание должно быть в достаточной мере формальным, чтобы быть понятным другой системе, а также должен быть известен язык этого описания. Кроме того, описание должно быть понятным также и человеку. Для этого Грубер предложил описывать знания двумя способами:

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

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

Составление описания декларативного знания обычно требует большой работы и определённых навыков и знаний. Для обозначения этой работы, а также её результата, Грубер ввёл в обиход специальный термин «концептуализация». Описание он называл «спецификацией». Таким образом, онтология по Груберу определяется как спецификация концептуализации.

Но введённое Грубером разделение спецификаций знаний на две составляющие (каноническую форму и онтологию) не очень удобно, так как приходится описывать одни и те же знания два раза, хотя и по-разному. Современные языки описания онтологий позволяют совместить эти формы спецификаций в единое целое.

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

Каноническая форма не обязательно использует конкретный язык, могут использоваться и другие формализмы. Например, можно использовать т.н. алгебраический подход к описанию знаний [3]. Но любое такое описание должно включать в себя представление декларативных знаний в виде иерархии объектов (классов), только в этом случае это описание может считаться онтологией.

До сих пор рассмотрение было посвящено довольно абстрактным вещам, а сейчас рассмотрим пример, как онтологии применяются для описания содержимого Web-страниц.

Зачем нужно описывать содержимое Web-страницы? Онтологии содержимого Web-страниц необходимы поисковым программам для улучшения качества поиска по Web.

Идея построения спецификаций концептуализации содержания Web-страниц является основой концепции так называемого разумного Web или Semantic Web. Semantic Web представляет собой следующее поколение World Wide Web (W3), в котором кроме гипертекстовых документов содержатся описания семантики этих документов, а также описания семантики различных сервисов, предоставляющих эти документы конечным пользователям.

Обычно о Semantic Web рассказывают как о компоненте будущей версии Web – так называемом Web 3.0. Каким на самом деле будет Web 3.0, можно только предполагать, но очевидно, что одним из главных его компонентов будет Semantic Web, в котором каждая Web-страница предоставляет также онтологию своего содержания.

Формальная спецификация содержания Web-документа даёт возможность поисковой программе делать выводы о соответствии поискового запроса данному Web-документу не только на основе синтаксической информации, получаемой из текста этого документа, но и основываясь на семантике содержания данного документа.

Это может кардинально улучшить качество Web-поиска, так как описание мира Web-страницы, понятное поисковой программе, даёт последней гораздо больше информации, чем она может извлечь из неструктурированного текста (на основе лишь синтаксиса).

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

  • Язык Resource Description Framework (RDF) – система описания ресурсов Web.
  • Web Ontology Language (OWL) – язык онтологии Web. OWL можно рассматривать как расширение языка RDF.

Таким образом, общий итог таков: если в философии онтология – это знания о бытии, то в компьютерных науках – это знание о мире задач и знания о взаимодействии интеллектуальных систем между собой, а также с человеком.

СПИСОК ЛИТЕРАТУРЫ

  • [1] Лапшин В.А. Онтологии в компьютерных системах. – М.: Научный мир, 2010.
  • [2] Gruber T.R. The role of common ontology in achieving sharable, reusable knowledge bases // Principles of Knowledge Representation and Reasoning. Proceedings of the Second International Conference. J.A. Allen, R. Fikes, E. Sandewell – eds. Morgan Kaufmann, 1991, 601-602.
  • [3] Когаловский М., Калиниченко Л. Концептуальное моделирование и онтологические модели // Онтологическое моделирование. Труды симпозиума в г. Звенигороде, 19-20 мая, 2008.

А.А. Антонюк, кандидат физико-математических наук