Правила перезаписи поисковых запросов протокола Z39.50 Хохлов Александр

реклама
Правила перезаписи
поисковых запросов
протокола Z39.50
Хохлов Александр
Задача поиска по разнородным
коллекциям
 Пусть существует несколько отдельных
коллекций документов
 Структура и типы данных в пределах одной
коллекции совпадают
 Между собой коллекции могут иметь различия
 Необходимо сделать одновременный
поиск по этим коллекциям
 Заполняемая форма поиска – одна для поиска
по всем коллекциям
 Форма поиска должна позволять задавать
сложные запросы и специфические поисковые
поля
Примеры
 Мета-поиск в интернет-коллекциях
 У каждого сервиса поиска свои возможности и
поля поиска
 Поиск по библиографическим базам
данных
 Схожие поля, но есть различия между собой
по степени детализации предоставляемых
поисковых возможностей
 Одновременный поиск по различным
типам коллекций
 Поиск книг, статей, журналов, музейных
экспонатов, картин, нот, писем ведется по
различным критериям
Следствие «одной формы»
 При посылке поискового запроса в конкретную
коллекцию требуется ее «адаптация» к
возможностям поиска
 Необходимо делать автоматически, с
минимальными предварительными настройками
 Необходимо минимизировать искажения,
возникающие от изменения запроса
 Необходимо «сгладить» те моменты, которые не
отрабатываются конкретным поисковым аппаратом
  правила перезаписи булевых поисковых
запросов + фильтрация результатов поиска
 Вопрос ранжирования не рассматривается
 Предполагается, что поисковый запрос возвращает
просто множество результатов
Основные моменты перезаписи
булевых запросов и фильтрации




Chen-Chuan K. Chang, Hector Garcıa-Molina, Andreas
Paepcke. Predicate Rewriting for Translating Boolean
Queries in a Heterogeneous Information System. ACM
Transactions on Information Systems, 17(1):1-39, January
1999
Запрос представляется в виде дерева из термов,
преобразуется в ДНФ
Каждый элемент ДНФ (поисковый терм) преобразуется к
поддерживаемому виду, максимально близкому к оригиналу
 Это может быть сформулировано как «минимизировать
шум» (минимальное расширение терма)
 Или как «оставить только релевантные результаты»
(минимальное сужение терма)
 Отрицание к терму меняет задачу на противоположную
Попутно при преобразованиях запоминается информация
для пост-фильтрации результата поиска
Приложение к протоколу Z39.50
 Используется булева модель поисковых запросов
 Термы представляют собой некоторое значение
плюс набор атрибутов, характеризующих его
 Например, значение «Пушкин» может быть
обозначено как «полное значение поля имени»
 Или как «значение встречается в поле имени»
 Базы данных при ошибках возвращают
диагностическую информацию о невозможности
исполнения представленного запроса и ее
причинах
 Можно строить базу знаний о возможностях поиска
на этапе исполнения поискового запроса
 Не требуется предварительной настройки
преобразований к конкретному поисковому
аппарату
Как преобразовывать термы в
Z39.50
 Изменение точки доступа (поискового
поля)
 Строится дерево зависимостей точек
доступа по признаку «включает»
 Замена происходит либо на верхнюю
точку доступа в дереве (минимальное
расширение), либо на объединение по
«ИЛИ» низлежащих точек доступа
(минимальное сужение)
Иерархия некоторых значений
1016 (любое)
1035 (везде)
1003
(автор)
2, 1005
(организация)
3, 1006
(колл. автор)
4
(заглавие)
1, 1004
(персональное имя)
5
(серия)
21
(тема)
35
(паралл. заглавие)
Изменение атрибутов
 Изменение значений атрибутов
 Индивидуальные правила для каждого
атрибута
 Например, если для значения не
поддерживается «правое усечение», то
минимальное расширение – «левое и
правое усечение», а минимальное
сужение – «без усечения»
Проблемы реализации
 Часто неподдерживаемые термы преобразуются в
«True» или «False» из-за отсутствия другого
осмысленного минимального расширения или
сужения
 Однако это происходит в случаях, когда
действительно невозможно заменить терм на
поддерживаемый
 Например, если не поддерживается поиск по
«больше», то его приходится заменить на
константу, и добавить пост-фильтр
 Практическое применение пост-фильтрации
результатов осложнено в связи с:
 Низкой скоростью передачи результатов поиска
 Высоким влиянием фильтров на результат (фильтр
по году может в 1000 раз уменьшить результат)
Нет оценки точности и полноты
модифицированного запроса
 Так как в каждом преобразовании термы
меняются минимальным (в заранее
определенной постановке задачи)
образом, то эта минимальность
распространяется на весь запрос
 Однако точность и полноту оценить
сложно, т.к. точное влияние изменений
на результат (кроме расширения /
сужения) неизвестно
 Плохо: термин может замениться на «True»
или «False»
 Хорошо: это происходит только в
«фатальных» случаях
С точки зрения пользователя
 При преобразовании запроса и отсутствии постфильтрации пользователь получает результат,
который не соответствует исходному запросу
 Необходимо сообщать о тех изменениях, которые
произошли для получения представленного
результата
 Для устранения использования полей,
используемых только в небольшой части баз
данных, имеет смысл разбить базы данных на
группы по предметной области
 Сделать для каждой области свой набор полей
 Разбиение по предметным областям упростит
понимание поиска
Выводы
 Применение общей техники перезаписи
булевых запросов для протокола Z39.50
возможно
 Аналогично для протокола SRW/SRU с CQLзапросами
 Это позволяет сократить расходы на
настройку поиска по сильно разнородным
базам данных
 Позволяет устранить «мелкие» ошибки
или различия между базами данных в
одной предметной области
Спасибо за внимание!
Вопросы?
Хохлов Александр
alex-khokhlov@yandex.ru
Скачать