УПРАВЛЕНИЕ БАЗАМИ ДАННЫХ В СИСТЕМАХ ОНТОЛОГИЙ И.А. Казаков Иркутский государственный университет

реклама
УПРАВЛЕНИЕ БАЗАМИ ДАННЫХ В СИСТЕМАХ ОНТОЛОГИЙ
И.А. Казаков
Иркутский государственный университет
Тел.: (3952) 33-21-78, e-mail: kazakov@baikal.ru
Несмотря на развитие альтернативных средств хранения данных, реляционные базы данных попрежнему остаются самым популярным средством хранения информации. В реляционных БД накоплен
огромный объем данных. Более выразительные средства хранения, например, онтологические системы, не
получают широкого распространения в силу ряда причин.
С другой стороны, поскольку структуры хранения и обработки информации в базах данных, в других
программных системах и системах обработки знаний являются мало совместимыми, то возникает проблема
взаимодействия этих различных структур. Например, известной является проблема работы с реляционными
данными в рамках объектно-ориентированных языков программирования, когда бестиповое и плоское
представление в виде таблиц не позволяет в полной мере реализовывать возможности иерархического
объектно-ориентированного подхода. Работая над проектом системы обработки знаний на базе онтологий,
мы также сталкиваемся с аналогичной проблемой – как вовлечь реляционные структуры в логический
контекст, основанный на дескриптивных логиках.
Для решения этой проблемы нами разрабатывается подход, связанный с моделированием
(«погружением») баз данных в онтологии. Этот подход базируется на теоретическом исследовании [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).
Скачать