МУЛЬТИ-АГЕНТНАЯ СИСТЕМА ПОИСКА В РАЗНОРОДНЫХ БАЗАХ ДАННЫХ Шилкин А.В., Пшеничный А.Г., Миллер Э.В. (г. Красноярск, ИКИТ СФУ) В данной статье рассматриваются вопросы повышения эффективности поиска за счет введения мета онтологий и оптимизации архитектуры мульти-агентной системы поиска. Предложено расширить класс решаемых задач за счет применения специализированных агентов доступа к разнородным информационным ресурсам. Для обоснования выбора варианта реализации системы были созданы модели и проанализирована их работа. Модели созданы с использованием раскрашенных временных иерархических сетей Петри. В связи с ростом количества разнообразных по содержанию, структуре, объему информационных ресурсов (баз данных, баз знаний, программных компонентов и т.д.), созданных на разных программно-аппаратных платформах, информация, представленная этими ресурсами, многократно дублируется, ее совместное использование затруднено в силу различных спецификаций информационных ресурсов, принятых различными разработчиками. Такая ситуация послужила причиной развития исследований в области совместного и повторного использования компонентов информационных ресурсов. Одним из эффективных решений поставленной задачи является построение системпосредников (mediator system) осуществляющих интеграцию неоднородных баз данных, таким образом система представляется промежуточным программным слоем для доступа к ресурсам. Существует несколько проектов систем интеграции неоднородных баз данных построенные на основе агентного подхода [1]. К числу таких проектов относятся InfoSleuth. Проект InfoSleuth разрабатывается на основе открытой мульти-агентной архитектуры для сбора и поиска информации в динамическом окружении. Для описания источников и возможностей функциональных компонентов системы используется многоуровневая онтология (мета-онтологии). Для общения между собой агенты используют язык KQML (Knowledge Query Manipulation Language). Мульти-агентная система (МАС) поиска AgentSearch [2], разработанная на основе платформы JADE (Java Agent Development Framework). Эта система выполняет поиск в базах данных MySQL, обеспечивая интеграцию всех источников в одно хранилище. Предоставляется поиск по набору слов с возможностью указания области поиска. Для общения между собой агенты используют язык ACL (Agent Communication Language). Система строится на основе трехуровневой модели: презентационный уровень, бизнес-логика и уровень доступа к данным (рис. 1). Аинт 1 Аобр 1 Абд 1 ... ... ... Аинт N Аобр M Абд K БД 1 БД K Рисунок 1 – Трехуровневая модель системы AgentSearch С целью расширения класса решаемых задач предлагается: 1. применять специализированные методы работы с разнородными информационными ресурсами; 2. использовать онтологии, как инструмент для повышения эффективности поиска. МАС поиска разрабатывается на платформе JADE, поскольку она предоставляет широкие возможности для создания мульти-агентных систем такие, как работа на любых устройствах, включая мобильные устройства с ограниченными возможностями за счет расширения LEAP (Lightweight Extensible Agent Platform), встроенные инструменты для работы с онтологиями и прочее. Реализация агентов, работающих с информационными ресурсами. Существует различные подходы к поиску в разнородных информационных ресурсах, таких как реляционные (MySQL, Oracle), иерархические (HTML) и семантические (XML, OWL, RDF). В частности возможно объединение всех известных методов доступа к данным и использование одного универсального агента (рис. 2а). Преимущества этого подхода очевидны – используется только один агент для получения доступа ко всем ресурсам, которые расположены на машине. Однако этот подход характеризуется сложностью расширения функционала и большим размером агента. Апск а) MySQL АMySQL MySQL XML АXML XML HTML АHTML HTML б) Рисунок 2 –Варианты реализации агентов доступа а) универсальный агент; б) отдельные агенты Для доступа к каждому типу ресурса можно создать отдельного агента, которому известен метод извлечения информации только из определенного типа источника данных (рис. 2б). В таком случае обработка новых типов информационных ресурсов производится за счет добавления новых агентов. Использование онтологии для повышения эффективности поиска. Для анализа документов, хранимых в информационных ресурсах необходимо использовать базу данных окончаний слов русского языка и онтологию предметных областей. В онтологии содержатся взаимосвязи между предметными областями и наборами понятий. Она отражает вероятности принадлежности к данной области (табл. 1). Таблица 1 – Пример онтологии предметных областей Предметная область Ключевое понятие Порог Речевые технологии вейвлет 0,01 Математика вейвлет 0,003 Агентные технологии агент 0,01 Перед выполнением анализа выполняется предобработка текста, которая включает в себя удаление языковых конструкций, несущественных для последующего анализа, и выделение основ слов. На основе частотного анализа формируется статистический словарь. Затем выполняется сравнительный анализ полученного словаря и онтологий предметных областей, в ходе которого сравниваются частоты с пороговыми значениями в онтологиях. Каждое попадание слова в ключевые понятия онтологии фиксируется. Последним этапом производится выбор онтологии, к которой было отнесено больше всего слов. Сужение области поиска. Интерфейсный агент передает запрос пользователя на анализ агенту базы онтологий. Он находит соответствие между выделенным набором ключевых понятий и содержимым онтологии верхнего уровня. Тем самым определяются предметные области запроса. Благодаря тому, что каждый поисковый агент создает запись в каталоге желтых страниц, в котором указывает свое имя, адрес и онтологии, соответствующие хранимым документам, можно определить множество поисковых агентов {Апск} имея список предметных областей. Доступ к каталогу желтых страниц предоставляет системный агент JADE – DF Agent (Directory Facilitator Agent). Архитектура МАС поиска. Мульти-агентная система поиска предоставляет большие возможности, благодаря широкому набору специализированных агентов поиска и естественно-языковому интерфейсу системы. Полный перечень агентов, входящих в систему представлен в таблице 2. Таблица 2 – Агенты МАС поиска Тип агента Назначение Предоставляет интерфейс пользователя для мобильных и Аинт – интерфейсный агент стационарных устройств Множество поисковых агентов: АMySQL – агент поиска в реляционной базе MySQL; Ищет в источнике данных информацию по запросам; AHTML – агент поиска в Анализирует хранимую информацию иерархических документах; AXML – агент поиска в семантических документах Имеет доступ к централизованному хранилищу онтологий верхнего уровня; Або – агент базы онтологий Анализирует запросы пользователей на принадлежность ключевых слов к определенным онтологиям Предоставляет доступ к централизованному каталогу Аdf – агент каталога желтых агентов, в котором хранятся их адреса и предоставляемые страниц услуги Существует несколько вариантов реализации архитектуры системы для приведённого алгоритма. Рассмотрим варианты реализации архитектур поисковой системы. Запросы получают все типы имеющихся агентов, работающих с информационными ресурсами, а отвечают на него только те, которые могут работать с запрашиваемой областью (рис. 3а). После получения ответов формируется список с перечнем используемых агентов, которые и получают запрос. Другой вариант основан на обобщенной онтологии, которая хранится у отдельного агента желтых страниц (рис. 3б), и содержит информацию о предметных областях, известных отдельным агентам, работающим с ресурсами. Список агентов запрашивается у этого агента, затем начинается передача им поискового запроса. АMySQL MySQL ... АXML XML MySQL АXML XML Аинт 1 ... Аинт 1 АMySQL Аинт M Аинт M АHTML АHTML ... HTML База онтологий Або а) ... HTML Аdf Католог агентов Або База онтологий б) Рисунок 3 – Архитектура МАС поиска а) архитектура с широковещательным запросом б) архитектура с агентом Adf Для обоснования выбора варианта реализации были созданы модели и проанализирована их работа. Модели созданы с использованием раскрашенных временных иерархических сетей Петри [3]. Предложенная модель может так же использоваться в дальнейшем для определения критических характеристик системы. Построение модели. Сети Петри приведены на рисунке 4. Чтобы повысить удобство в этих сетях используются составные переходы, а сами сети являются иерархическими. Рисунок 4 – Сети Петри, моделирующие МАС поиска Переход Users моделирует пересылки поисковых запросов пользователей и запрос списков агентов. Позиция Network моделирует сеть, а фишки, помещённые в неё – сообщения для агентов. Переходы Agent1, Agent2, Agent3 моделируют поведение трёх агентов информационных ресурсов. Переход Yellow page agent моделирует агента жёлтых страниц. Сеть Петри описывающая работу составного перехода Users, моделирует поведение пользователей и представлена на рисунке 5. Срабатывание перехода Arrivals моделирует поступление запросов от пользователей, среднее время между поступлением запросов устанавливается аргументом функции expTime(). Переход GetMsg совершает выборку сообщения с необходимым адресом из сети. Переходы RecvMsg и SendMsg моделирует задержку, возникающую при приёме и передаче сообщения. Переходы Get ‘answer’ и Get ‘result’ выбирают из позиции RecvBuf фишку, обозначающую соответствующую команду. Срабатывание перехода PrepareQuery выполняет подготовку сообщения, содержащего поисковый запрос. Рисунок 5 – Сеть Петри, моделирующая поведение пользователей Модели поведения агентов обслуживающих базы данных, идентичны за исключением перехода выполняющего выбор сообщения. Сеть Петри, моделирующая поведение агента изображена на рисунке 6, она описывает работу составного перехода Agent1. Рисунок 6 – Сеть Петри, моделирующая поведение агентов информационных ресурсов Сеть, моделирующая поведение агента схожа с работой сети, моделирующей поведение пользователей. Но в сеть введена позиция Resources for parallelism с ресурсом, моделирующим возможность параллелизма. Цепочка, состоящая из переходов Start processing 'polling', Start processing 'polling' и позиции Procesing 'polling' формирует ответ агента на запрос о возможности его работы с определёнными областями знаний. Цепочка, состоящая из переходов Start processing 'query', Start processing 'query' и позиции Procesing 'query' фиксирует выполнение поискового запроса агентом. Модель агента жёлтых страниц изображена на рисунке 7, и отличается от модели агента информационных ресурсов тем, что в ней реализовано лишь одно поведение. Цепочка из переходов Start processing 'getAddress', EndProc 'getAddress' и позиции Procesing 'getAddress' моделирует ответ на запрос о предоставлении списка агентов обслуживающих интересующую область знаний. Рисунок 7 – Сеть Петри, моделирующая поведение агента желтых страниц Установив одинаковые временные характеристики выполнения запросов в обеих моделях, была проанализирована возникающая временная задержка (tЗ) и эффективность использования сетевых ресурсов. Время в моделях представлено в условных единицах. Эффективность использования сетевых ресурсов оценивалась исходя из того, сколько было совершено операций отправки и приёма сообщений за время обслуживания одного запроса (KОП). Сравнительные характеристики приведены в таблице 3. Таблица 3. Результаты моделирования Характеристика Архитектура tЗ KОП 1. Без агента желтых страниц 74,62 9 2. С агентом желтых страниц 55,49 7 Из представленных характеристик видно, что архитектура с агентом Adf по времени задержки tЗ эффективнее на 34%, а по эффективности использования сетевых ресурсов на 29%, поэтому была выбрана именно она. ЛИТЕРАТУРА 1. Булгаков С.В. Подход к построению мульти-агентной системы содержательного поиска / С.В. Булгаков // Труды 9-й национальной конференции по искусственному интеллекту с международным участием - КИИ'2004. –Москва: Физматлит, 2004г. -Т.2. -С.706-714 2. Шилкин, А.В. Агентный подход к проектированию сетевых приложений поиска информации / А. В. Шилкин, Е. В. Болдырев, Г. С. Кирякова // Журнал «Вычислительные технологии» – Новосибирск, 2005г. 3. Шахов В. Моделирование программно-аппаратных «реактивных» систем раскрашенными сетями Петри / Шахов В. // RSDN Mag. 2006г. 3. С. 3-7.