АВТОМАТИЧЕСКИЙ АНАЛИЗ СХЕМЫ И ДАННЫХ РЕЛЯЦИОННЫХ  БАЗ

Курбатов С.С., к.т.н., НИЦЭВТ,  726-59-59, kul@gol.ru

Аннотация

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

Введение

Анализ схемы и данных произвольной реляционной базы существенно опирается на эталонную базу [1,2], содержащую данные о естественно-языковых (ЕЯ) объектах и об объектах предметной области (ПО).  Объекты ПО могут быть описаны как на очень общем уровне (материальный или абстрактный объект), так и на детальном уровне (диктуемом спецификой ПО).  В настоящее время эталонная база содержит в основном данные о материальных объектах и данные  об абстрактных объектах, необходимые для анализа схемы заданной реляционной базы (таблицы и поля).    

Данные о таблицах и полях организованы аналогично метаописаниям СУБД (типа таблицы Catalog или системных таблиц в Progress [3,4]), содержащим сведения о схеме база, но дополнены важными для задачи анализа данными. Эти данные могут быть как технического характера (наппимер, имя базы после коннекции), так и нести определенную семантику: представлять гипотезы об объектах базы данных и их ЕЯ-описаниях. Отталкиваясь от классических подходов [7,8] в работе предпринята попытка построить априорную модель, элементы которой автоматически детализируются в результате сканирования системой произвольных ЕЯ-текстов.

 Гипотезы о схеме и данных реляционной базы

Анализ схемы и данных базы в целом соответствует логике, описанной в [1], и позволяет зафиксировать гипотезы о первичных и внешних ключах базы, о справочниках, о связях таблиц базы, о таблицах типа “событие”, о соответствии таблиц и полей ЕЯ-объектам эталонной базы и об иерархиях в базе. Основная задача, для которой анализируется схема и данные реляционной базы состоит в автоматической генерации ЕЯ-интерфейса.

Отметим, что подход, использующий схему базы как исходные данные характерен для CASE-средств (например ERWIN [5]), неоднократно он применялся и для построения ЕЯ-интерфейсов к базам данных. Декларировалось даже, что проблема понимания ЕЯ-запросов к базе данных решена [6].

Первичные и внешние ключи

В текущей версии пока реализована  очевидная логика предположения о первичном ключе: поле PK таблицы Tx может быть первичным ключом, если значения этого поля не повторяются. При анализе необходимо рассматривать случай когда либо указаний на первичный ключ нет, либо система не может их корректно интерпретировать.

Если есть гипотезы о первичном ключе, то на следующем шаге анализа ведется поиск претендентов на внешний ключ в соответствии с логикой: поле PV может быть внешним ключом в таблице Ty, если все его значения присутствуют среди значений некоторого первичного ключа PK таблицы Tx. Здесь могут появиться конкурирующие и взаимно-исключающие гипотезы.

Справочники и иерархии             

Поиск претендентов на справочники ведется среди таблиц с первичными ключами, имеющими поле типа символьный (char), содержащего неповторяющиеся значения с высоким коэффициентом ЕЯ-подобия. Этот коэффициент в первом приближении можно понимать как процент значений поля для которых найдены ЕЯ-объекты в эталонной базе. Если эти ЕЯ-объекты содержатся в системной иерархии эталонной базы, то наиболее общий ЕЯ-объект, содержащий все ЕЯ-описания полей, естественно выбрать кандидатом на ЕЯ-описание таблицы-справочника (гипотеза).                              

Связи между таблицами

Поиск связи между таблицами рассматривается в двух аспектах: формальный – связь через первичные и внешние ключи и содержательный – ЕЯ-описание связи между ЕЯ-описаниями таблиц.  В случае ненормализованных таблиц вопрос о ЕЯ-описании связи решается проще (стандартно это описание типа “содежится в”), для нормализованных таблиц ситуация усложняется.

Пока здесь не удалось получить достаточно общий результат, ad hoc используются описания типа “фирма, поставляющая товар”. Для событий в эталонной базе должны быть соответствующие глагольные формы даже когда событие имеет вид существительного: приход, расход, перевод, оплата, строительство и т.д. Глагольной формой здесь может быть “осуществляется”.

В общем случае выявляются все цепочки между таблицами-справочниками, имеющие вид  Ts1 <- Tx1 <- … <- Txn -> Ts2, где первичный ключ Ts1 является внешним ключом Tx1,   первичный ключ Ts2 является внешним ключом Txn, а  остальные таблицы связаны соотношением первичный ключ Txi  является внешним ключом Txi+1. Трудности ЕЯ-описания такого рода связей обусловлены тем, что целостный с точки зрения пользователя объект (например, документ о поставке товара) в базе данных может быть структурирован несколькими таблицами.

Поля таблиц

Поля таблиц, для которых найдены ЕЯ-описания (гипотезы), естественно трактовать как свойства соответствующих ЕЯ-объектов. Поиск естественно-языковых наименований этих свойств в целом стандартен: эвристический перебор, предположение и его подтверждение/опровержение. Эвристики здесь учитывают тип данных полей, диапазон значений, мнемонику наименований полей и т.п. Для иерархии, организованной в виде одной таблицы (рекурсивно) естественно искать наименования уровней иерархии и их соответствие в системной иерархии эталонной базы.

События 

Современные СУБД имеют поля типа “date”, содержимое которых ссылается на календарные даты. Таблицы с такими полями автоматически попадают под общее описание ЕЯ-объекта “событие” в эталонной базе.

В прикладном аспекте в реальных СУБД наиболее важны события, связанные с финансовыми расчетами и количественными характеристиками элементов учета (типа товаров, производимых изделий, сотрудников и т.п). Соответствующие ЕЯ-объекты предполагается внести в эталонную базу в процессе экспериментов с реальными СУБД. Такое внесение можно осуществить как непосредственно, так и задав в качестве исходных данных типовые запросы к базе на в виде ЕЯ-предложений.

Синтаксический анализ этих запросов существенно облегчает задачу поиска соответствий объектов базы и ЕЯ-объектов эталонной базы. Например, по запросу “Найти даты рождения и должности сотрудников с зарплатой более 800 $” естественно искать справочник, соответствующий “сотрудник”, а в нем соответствующие поля.

Коррекция гипотез

Взаимоисключающие гипотезы должны быть сведены к одной. Для этого организуется генерация, выполнение и анализ результатов SQL-запросов к анализируемой базе. Проверка гипотезы в общем случаае может потребовать сканирования ЕЯ-текстов для автоматической модификации эталонной базы как в части морфологии,  так и в части корректировки модели мира. Такая модификация может быть значительной, например, таблица имеет ЕЯ-описание “сотрудник” и этого слова нет в эталонной базе. Запуском сканирования ЕЯ-текстов данные об этом слове заносятся в эталонную базу (первоначально в виде гипотез). Далее запускается стандартный цикл поиска предложений с вхождением словоформ лексемы “сотрудник” и формированием его свойств. 

Представление знаний

Система представления знаний, используемая в данной реализации, является комбинацией реляционных таблиц и языка представления знаний (ЯПЗ) уровня структурированной семантической сети. Структуры ЯПЗ также представляются в виде реляционной таблицы специального вида, но она в целях эффективности описана в СУБД как временная. Именно в структурах  ЯПЗ размещается информация о текущей ситуации (диалог, анализ базы,  работа с гипотезами и т.д.). После окончания сеанса текущая информация из временной таблицы теряется, но результаты сеанса, разумеется, могут быть зафиксированы в эталонной базе.

ЛИТЕРАТУРА

1. С.С. Курбатов,  Автоматизированное построение естественно-

    языкового интерфейса для реляционных баз данных, Новости 

    искусственного интеллекта № 2,      М.,    Анахарсис, 2002, С. 17-21.

2. С.С. Курбатов,  Априорная модель данных в реляционных базах,

    Новости   искусственного интеллекта № 6, М.,    Анахарсис, 2003.

3.  Дейт К.,  Руководство по реляционной СУБД DB2. - М.: Финансы и

   статистика, 1988.,  320 с.

4. О. Твердова    СУБД Progress   Системы управления базами данных,

     #02/1997.

5. С.В. Горин, А.Ю. Тандоев  Применение CASE-средства ERwin 2.0 для

    информационного моделирования в системах обработки данных,  

    системы управления   базами данных, #03/1995.

6.  А.С.Нариньяни ПРОБЛЕМА ПОНИМАНИЯ ЕЯ-ЗАПРОСОВ К

     БАЗАМ ДАННЫХ  РЕШЕНА  (РосНИИ Искусственного Интеллекта,

     Москва), 1994.

7.  Мельчук И.А. Опыт теории лингвистических моделей "Смысл-

     Текст". М.: Наука,1974..

8. Э.В. Попов, Общение с ЭВМ на естественном языке, М., Наука, 1982.