Z39.50 is one of the foundational protocols of library information technology, enabling standardized search and retrieval of records across heterogeneous remote databases. For decades it has been the primary means by which library systems communicate with each other to support union catalog searching, interlibrary loan, and cooperative cataloging. While newer web-based protocols like SRU have emerged, Z39.50 remains deeply embedded in library infrastructure worldwide.
Background
The origins of Z39.50 trace back to the 1970s when the Library of Congress and other institutions began exploring ways to standardize information retrieval across different computer systems. The first version of the standard was published by NISO (National Information Standards Organization) in 1988 as ANSI/NISO Z39.50-1988. This initial version was relatively simple, but subsequent revisions in 1992 (version 2) and 1995 (version 3) greatly expanded the protocol's capabilities. In 1997, the protocol was adopted internationally as ISO 23950. The Library of Congress serves as the Z39.50 Maintenance Agency, coordinating ongoing development and registration of profiles and attribute sets.
Purpose & Scope
Z39.50 defines a client-server protocol at the application layer that allows a client (called an "origin") to search and retrieve records from a server (called a "target"). The protocol is session-based and supports a range of services:
| Service | Description |
|---|---|
| Init | Establish a session between origin and target |
| Search | Submit a query using a standardized query language |
| Present | Retrieve records from a result set |
| Scan | Browse an ordered list of terms (e.g., an index) |
| Sort | Reorder a result set |
| Extended Services | Administrative operations such as saving result sets or creating database records |
Queries use attribute sets to specify the meaning of search terms. The most widely used is the Bib-1 attribute set, which defines attributes for bibliographic searching including use attributes (title, author, subject), structure attributes, and relation attributes.
Key Elements / Properties
Z39.50 is a protocol rather than a metadata schema, so it does not define elements in the traditional sense. Instead, it defines:
- Attribute sets that specify how search terms are interpreted (Bib-1, GILS, STAS, etc.)
- Record syntaxes that define the format of retrieved records (MARC, SUTRS, GRS-1, XML, OPAC)
- Diagnostic sets that standardize error reporting
- Object identifiers (OIDs) that uniquely identify each protocol component
Serializations & Technical Formats
Z39.50 uses ASN.1 (Abstract Syntax Notation One) for its protocol data units and BER (Basic Encoding Rules) for encoding messages on the wire. Records retrieved through Z39.50 can be in any registered record syntax, though MARC (both USMARC/MARC 21 and UNIMARC) and XML are the most common. The protocol operates over TCP/IP, typically on port 210.
Governance & Maintenance
The Library of Congress serves as the Z39.50 Maintenance Agency, responsible for maintaining the standard, registering attribute sets and record syntaxes, and coordinating the Z39.50 Implementors Group (ZIG). NISO is the official standards body for the US national standard, while ISO maintains the international version as ISO 23950. The ZIG meets regularly to discuss implementation issues and propose extensions.
Notable Implementations
Z39.50 has been implemented in virtually every major integrated library system (ILS), including Ex Libris Aleph and Alma, SirsiDynix Symphony, Innovative Interfaces Sierra, and the open-source Koha and Evergreen systems. OCLC's WorldCat and many national library catalogs are accessible via Z39.50. The protocol is also used beyond libraries in government information systems (through the GILS profile) and geospatial metadata systems. IndexData's YAZ toolkit is a widely used open-source implementation of the protocol.
Related Standards
- SRU (Search/Retrieve via URL) -- A web-based search protocol developed as a companion and successor to Z39.50, using HTTP and XML rather than ASN.1/BER.
- CQL (Contextual Query Language) -- A human-readable query language used with SRU and also applicable to Z39.50 contexts.
- MARC 21 -- The most common record syntax used for bibliographic data retrieved via Z39.50.