Сигла работает с удаленными библиотечными каталогами по протоколу
Z39.50. Для обеспечения
максимальной совместимости поисковых запросов и получения наиболее
качественных результатов необходимо, чтобы серверы Z39.50 максимально
полно удовлетворяли
профилям протокола Z39.50.
Сигла корректно работает с каталогами, поддерживающими
профиль BATH,
профиль Texas или
NISO Z39.89.
Обеспечение совместимости
Существующие в мире сервера Z39.50 в своем большинстве сильно расходятся
по подходам к обработке поисковых запросов. Существует несколько проектов,
направленных на достижение совместимости через правильную ручную настройку
каждого из серверов
(см. Z-Interop,
cc-interop).
Однако, из-за большого количества серверов в Сигле ручная настройка
каждого из них невозможна, и поэтому в Сигле был реализован
механизм динамической модификации запросов. Он
позволяет одновременно работать с каталогами, поддерживающими различные
профили и их уровни, различные точки доступа, и различные типы поисков.
В результате в поисковую систему Сигла может быть включен почти
любой каталог Z39.50 без дополнительной ручной настройки.
Однако, для корректной работы поиска все же существуют определенные
требования. Ниже перечислены пожелания к серверам Z39.50, которые
необходимы Сигле для оптимального функционирования:
-
Возвращение корректной и точной диагностической информации.
В случае,
если сервер не может обработать поисковый запрос, необходимо вернуть
как можно более точную диагностику возникшего осложнения. Это
относится к диагностическим сообщениям 113 и 114: в дополнении
к номеру ошибки необходимо предоставить номер атрибута и поля соответственно.
По возможности, вместо ошибки 113 и 123 необходимо возвращать код
117, 118, 119, 120 или 122. В этом случае Сигла может корректно
переформулировать запрос и, в случае удачи,
дать положительный ответ пользователю.
-
Функция SCAN должна работать с полными значениями индекса.
К сожалению, многие российские реализации серверов Z39.50 поддерживают функцию
SCAN (просмотр индекса или словаря) только для слов из поля. В реальной
жизни пользователю гораздо полезнее пользоваться просмотром
полного значения поля, получая таким образом аналог просмотра
карточного каталога. Кроме того, вышеупомянутые профили BATH, Texas и NISO
предполагают именно полный просмотр индекса как первоначальный
уровень совместимости реализаций серверов Z39.50.
-
Сортировка результатов по атрибутам bib-1:
1003 (автор), 4 (заглавие) и 31 (дата публикации).
Протоколом Z39.50 при реализации функции сортировки результатов
предусмотрено две схемы задания метода сортировки. Первый из них
абсолютно общий, предполагающий передачу текстовой строки сортировки, смысл
которой должен быть заранее определен за пределами протокола Z39.50.
Данный подход,
очевидно, является абсолютно неприменимым для большого количества
разнородных каталогов в Сигле, так как единой договоренности о
возможных значениях строки сортировки не существует.
Второй подход основан на
формулировании запроса на сортировку через множество значений атрибутов
в схеме bib-1. Данный подход зарекоммендовал себя как однозначный
и надежный метод указания сортировки библиографических данных. Именно
этот подход рекомендуется к реализации в серверах Z39.50.
Наиболее распространенные виды сортировки: по автору (1003),
по заглавию (4) и по дате публикации (31).
-
Время поддержания соединений Z39.50
Протокол Z39.50 является сессионным, т.е. Сигла открывает соединение
с удаленным сервером и производит последовательные действия в пределах
одной сессии по запросам пользователя.
Однако, деятельность пользователя предсказать невозможно,
поэтому для повышения производительности в Сигле реализован
механизм кеширования последних результатов работы пользователя.
Если пользователь повторно запрашивает страницу с результатами,
информация возвращается без повторных запросов по Z39.50.
В дополнениии к кэшированию,
сессии Z39.50 в Сигле работают в режиме 'пула': соединение открывается
при появлении необходимости операций с удаленным каталогом и поддерживается
в открытом состоянии в течении 10 минут после последнего обращения к ней.
Оно также может использоваться
для обслуживания нескольких пользователей одновременно, если их запросы
различаются по времени обращения как минимум на 1 минуту.
Поэтому для стабильной работы Сиглы необходимо, чтобы сервера Z39.50
поддерживали соединения как минимум 10 минут с момента последнего обращения.
Операции, которые выполняются больше 3 минут, считаются 'повисшими' и
соединение незамедлительно закрывается.
Дальнейшее развитие совместимости и производительности в системе Сигла
Если ваш каталог по каким либо причинам некорректно работает через
систему Сигла, сообщите об этом, пожалуйста, Хохлову Александру
(alex@lib.msu.ru).
Мы постараемся разобраться в проблеме и предложить варианты
корректного взаимодействия системы Сигла с вашим каталогом. Мы также
будем признательны вам за идеи в развитии механизма переформулирования
запросов и повышения производительности системы распределенного поиска.