Z39.50 — это международный стандарт клиент-серверного протокола связи прикладного уровня для поиска и извлечения информации из базы данных через компьютерную сеть TCP/IP , разработанный и поддерживаемый Библиотекой Конгресса . Он соответствует стандарту ANSI / NISO Z39.50 и стандарту ISO 23950.
Z39.50 широко используется [ по состоянию на? ] в библиотечной среде для поиска и выдачи в межбиблиотечных каталогах , часто включается в интегрированные библиотечные системы и программное обеспечение для персональных библиографических справок , а также в социальные сети, такие как LibraryThing .
Работа над протоколом Z39.50 началась в 1970-х годах и привела к появлению последующих версий в 1988, 1992, 1995 и 2003 годах. Язык контекстных запросов (ранее называвшийся Common Query Language) [1] основан на семантике Z39.50.
Протокол поддерживает поиск, извлечение, сортировку и просмотр. Поисковые запросы содержат атрибуты, обычно из набора атрибутов bib-1, который определяет шесть атрибутов для определения поиска информации на компьютере-сервере: использование, связь, положение, структура, усечение, полнота. Синтаксис Z39.50 позволяет выполнять очень сложные запросы.
На практике функциональная сложность ограничивается неравномерностью реализации разработчиками и коммерческими поставщиками. Синтаксис Z39.50 абстрагируется от базовой структуры базы данных. Например, если клиент указывает поиск автора с использованием атрибута 1003, сервер должен определить, как сопоставить этот поиск с содержащимися в нем индексами. Это позволяет формулировать запросы Z39.50, ничего не зная о целевой базе данных, но это также означает, что результаты одного и того же запроса могут сильно различаться на разных серверах. Один сервер может иметь индекс авторов, а другой может использовать свой индекс личных имен, независимо от того, являются ли они авторами или нет. Третий может не иметь индекса имени и использовать индекс ключевого слова, а третий может не иметь подходящего индекса и возвращать ошибку.
Попыткой исправить это несоответствие является « Профиль Бата » (названный в честь Бата , Англия, где рабочая группа впервые встретилась в 1999 году). В этом документе жестко определен синтаксис поиска, который следует использовать для обычного библиографического поиска, а также ожидаемый ответ серверов, совместимых с Bath. Внедрение профиля Bath идет медленно, но ситуация с Z39.50 постепенно улучшается [ по состоянию на? ] . Профиль Бата поддерживается Библиотекой и Архивами Канады .
Z39.50 — это технология, еще не существовавшая до Интернета , и различные рабочие группы пытаются обновить ее, чтобы она лучше вписывалась в современную среду. Эти попытки подпадают под обозначение ZING (Z39.50 International: Next Generation) и реализуют различные стратегии.
Преемниками Z39.50 являются двойные протоколы SRU / SRW ( Поиск/Извлечение через URL / Поиск/Извлечение веб-службы ), которые отказываются от протокола связи Z39.50 (заменяя его HTTP ), при этом пытаясь сохранить преимущества протокола Z39.50. синтаксис запроса. SRU основан на REST и позволяет выражать запросы в строках запросов URL ; SRW использует SOAP . Оба ожидают, что результаты поиска будут возвращены в формате XML .
Эти проекты имеют гораздо более низкий входной барьер для разработчиков, чем исходный протокол Z39.50, [2] позволяя относительно небольшому рынку библиотечного программного обеспечения извлечь выгоду из инструментов веб-сервисов , разработанных для гораздо более крупных рынков.
Альтернативы включают следующее. [3]
Зарегистрированный номер сетевого порта для Z39.50 — 210. Хотя большинство серверов используют этот порт, во всем мире Z39.50 используются десятки других номеров портов (например, 2100, 2200, 2210, 2213, 3520 или, в одном случае, , порты 2101 и выше для разных баз). [4] [5]