УПРАВЛЕНИЕ БАЗАМИ ДАННЫХ В СИСТЕМАХ ОНТОЛОГИЙ И.А. Казаков Иркутский государственный университет Тел.: (3952) 33-21-78, e-mail: [email protected] Несмотря на развитие альтернативных средств хранения данных, реляционные базы данных попрежнему остаются самым популярным средством хранения информации. В реляционных БД накоплен огромный объем данных. Более выразительные средства хранения, например, онтологические системы, не получают широкого распространения в силу ряда причин. С другой стороны, поскольку структуры хранения и обработки информации в базах данных, в других программных системах и системах обработки знаний являются мало совместимыми, то возникает проблема взаимодействия этих различных структур. Например, известной является проблема работы с реляционными данными в рамках объектно-ориентированных языков программирования, когда бестиповое и плоское представление в виде таблиц не позволяет в полной мере реализовывать возможности иерархического объектно-ориентированного подхода. Работая над проектом системы обработки знаний на базе онтологий, мы также сталкиваемся с аналогичной проблемой – как вовлечь реляционные структуры в логический контекст, основанный на дескриптивных логиках. Для решения этой проблемы нами разрабатывается подход, связанный с моделированием («погружением») баз данных в онтологии. Этот подход базируется на теоретическом исследовании [2] и строится в рамках объектных теорий дескриптивных логик [1]. В этом подходе базы данных интерпретируются как простые онтологии, с которыми можно взаимодействовать, используя стандартные логические формализмы системы обработки знаний (системы Libretto). Идея базируется на том, что хотя сам формализм реляционных баз данных не имеет какой-либо семантики, кроме тривиальной, связанной с реляционными алгебрами, тем не менее, каждый разработчик реальной базы данных, так или иначе, закладывает в нее объектную модель той предметной области, в рамках которой решается поставленная задача. Остается только явно описать эту объектную модель с помощью онтологий. В отличие от хорошо известных ERмоделей, в нашем подходе в результате работы получается исполняемый код. Общая идея подхода заключается в том, что мы рассматриваем таблицы базы данных как онтологические классы, простые атрибуты (столбцы) как т-свойства, внешние ключи как о-свойства, а сами записи таблиц (строки) как объекты. Каждой таблице базы данных сопоставляется класс в онтологии. А каждому столбцу – свойство (простому атрибуту – т-свойство, внешнему ключу – о-свойство). Логическая корректность такого преобразования показана в [2]. Поскольку онтология представляет единое пространство имен, то все имена в ней глобальны (у нас не может быть двух одноименных свойства в разных классах). В базах данных такой проблемы нет, мы можем заводить в разных таблицах одноименные столбцы. Чтобы обойти эту проблему, мы заводим надкласс, в котором определяем свойство, а затем от него наследуем все те классы, в которых нам необходимо иметь запрашиваемое свойство. В общем случае мы можем получить для каждого столбца базы данных отдельный класс с одним свойством, и затем из таких классов собирать необходимые нам классы, соответствующие таблицам базы данных. Имея такую онтологию, описывающую структуру базы данных, нам осталось только привязать классы к таблицам, а свойства к столбцам. Нами разработан программный модуль для системы Libretto, позволяющий на основе логического описания объектной модели базы данных работать с ней как с онтологией. Работа ведется непосредственно с этой онтологией, потому все запросы, касающиеся структурной части онтологии, решаются непосредственно внутри нее. Если же происходит запрос объектов онтологии, то он автоматически преобразуется в запрос к базе данных. Как уже было сказано, при проектировании базы данных разработчик закладывает в нее какую-то объектную модель, используя различные отношения между сущностями (один ко многим, многие к одному и многие ко многим). После описания данной модели в онтологии, дальнейшая работа может очень серьезно упроститься, поскольку пользователю больше не приходится оперировать с различными промежуточными таблицами базы данных, внешними ключами и условиями склеивания таблиц. Пользователь работает с онтологией, а программа сама определит, как выполнить запрос. Этот подход близок к системе Hibernate [4], но с тем отличием, что Hibernate транслирует базу данных в структуры объектно-ориентированных языков, у нас же трансляция происходит в логическую структуру онтологий в рамках системы Libretto. Литература 1. И.А. Казаков, А.В. Манцивода. Базы данных как онтологии // Известия Иркутского государственного университета. Серия Математика – Иркутск. – Т. 4. – №.1. – 2011. – С. 20-30. 2. 3. 4. А.А. Малых, А.В. Манцивода. Объектно-ориентированная дескриптивная логика // Известия ИГУ. Серия математика. – №.1. – 2011. – С. 57–72. Малых А.А. Логические архитектуры и объектно-ориентированный подход / А.А. Малых, А.В. Манцивода, В.С. Ульянов // Вестник НГУ. Серия: Математика, механика, информатика. – 2009. – Т.9. – №3. – С. 64-85. Hibernate: Mapping an Object-Oriented Domain Model to a Relational Database [Электронный ресурс]. – URL: https://www.hibernate.org/ (дата обращения: 10.01.11).