# Presentation: 800206

## Z39.50 and the ZING Initiatives: MAVIS Users Conference, 2003November 6, 2003

- Z39.50 and the ZING Initiatives: MAVIS Users Conference, 2003November 6, 2003

- Larry E. Dixson    ldix@loc.gov
-  Library of Congress

## Presentation Overview

- Z39.50 Description and History
- Z39.50 Maintenance
- Z39.50 Interoperability
- Z39.50 Profiles
- ZING Initiatives

## Z39.50 Description

- National and international standard
- Client / server environment
- Client developer controls display
- Examples:
- Language preference
- System display preference
- Retrieve records into an application

## Z39.50 Historical Development

**• ****1982: LSP/ Information Retrieval**
**• ****1983: LSP/IR submitted as ANSI standard**
**• ****1984: ISO SR introduced**
**• ****1988: NISO Z39.50-1988**
**• ****1990: LC Maintenance Agency**
**• ****1990: Z39.50 Implementors’ Group**
**• ****1991: ISO SR approved (10162-10163)**
**• ****1992: NISO Z39.50-1992**
**• ****1995: NISO Z39.50-1995**
**• ****1998: ISO IR 23950**
**• ****2000: ZING (Z39.50 International: Next Generation)**

## Z39.50 Maintenance

- Z39.50 Maintenance Agency at LC
**http://lcweb.loc.gov/z3950/agency/**
**Editor: Ray Denenberg (rden@loc.gov)**
**Z39.50-1995 Document**
- Z39.50 Implementors’ Group
**http://lcweb.loc.gov/z3950/agency/zig/zig-meetings.html**
**http://lists.w3.org/Archives/Public/www-zig/**

## Z39.50 Interoperability

- Why aren’t all Z39.50 implementations the same?
**Z39.50 implemented by existing, mature search systems with different search behavior**
**Indexing not standardized across systems**
**Bibliographic community did not profile prior to implementing protocol in 1992 –  search functionality was decided by each system vendor**
**Implementors sometimes differed on interpretation of the standard**

## Z39.50 Profiles 

- Profiles developed by committee
- Customer base
- Vendors
- Protocol experts
- Reasons for profiles
- Specification for vendors (interoperability)
- Specification for customers (procurement)

## Z39.50 Profile Examples

- Bath Profile (International)
- _[http://www.nlc-bnc.ca/bath/tp-bath2-e.](http://www.nlc-bnc.ca/bath/tp-bath2-e.htm)__[htm](http://www.nlc-bnc.ca/bath/tp-bath2-e.htm)_
- US National Profile (Z39.89)
- _[http://www.unt.edu/zprofile/Profile/specifications.](http://www.unt.edu/zprofile/Profile/specifications.htm)__[htm](http://www.unt.edu/zprofile/Profile/specifications.htm)_
- Other Profiles
- _[http://lcweb.loc.gov/z3950/agency/profiles/profiles.html](http://lcweb.loc.gov/z3950/agency/profiles/profiles.html)_

## Z39.50 Characteristics

**Large, complex standard, rich in functionality**
**Implementations are subsets of the standard**
**Pre-dates the Web – connection oriented and transfer syntax not human readable**
**Z39.50 session data units:**
**TCP/IP (request and response)**
**Initialization (request and response)**
**Search (request and response)**
**Present (request and response)**
**Close (request and response)**

## Z39.50 Search Request

**attributeType****	****	****	****1**
**numeric****	****	****	****1003**
**attributeType****	****	****	****2**
**numeric****	****	****	****3**
**attributeType****	****	****	****3**
**numeric****	****	****	****1**
**attributeType****	****	****	****4**
**numeric****	****	****	****1**
**attributeType****	****	****	****5**
**numeric****	****	****	****1**
**attributeType****	****	****	****6**
**numeric****	****	****	****1**
**Term****	****61 76 72 61 6D 2C 20 68 65 6E 72 69 65 74 74 65**

## ZING Initiatives

- ZING (Z39.50 International: Next Generation)
**http://www.loc.gov/z3950/agency/zing/zing-home.html**
**SRW (Search / Retrieval Web Service)**
**SRU (Search / Retrieval URL)**
**CQL (Common Query Language)**
**ZOOM (Z39.50 Object-Orientation Model)**
**ez3950**
** ****ZeeRex (Z39.50 Explain, Explained and ReEngineered in XML)**

## SRW Search/Retrieve

**POST / srw.loc.gov/LCDB HTTP/1.1**
**       ****[. . . ]**
**<?xml version=“1.0”>**
**<SOAP:Envelope>**
** ****<SOAP:Body>**
**    ****<SRW:searchRetrieveRequest xmlns:SRW=http://www.loc.gov/zing/...>**
**        ****<SRW:query>bath.author=“^avram,henriette”</SRW:query>**
**        ****<SRW:startRecord>1</SRW:startRecord>**
**        ****<SRW:maximumRecords>10</SRW:maximumRecords>**
**        ****<SRW:recordSchema>http://www.loc.gov/mods/</SRW:recordsSchema>**
**   ****</SRW:searchRetrieveRequest>**
** ****</SOAP:Body>**
**</SOAP:Envelope>**
**   **

## SRU Search/Retrieve

- _[http://sru.loc.gov/LCDB/searchRetrieve?query=bath.author=^avram,henriette”&maximumRecords=10&recordSchema=http%3a//www.loc.gov/mods/&startRecord=1](http://sru.loc.gov/LCDB/searchRetrieve?query=bath.author=%5Eavram,henriette”&maximumRecords=10&recordSchema=http%3A//www.loc.gov/mods/&startRecord=1)_

## CQL Examples

- Author Search – First words in field
**     ****bath.author=“^avram, henriette”**
- Title Search – Exact match
**     ****bath.title exact “xml & sgml cookbook”**
- Other examples
**     ****cat and fish**
**     ****(((cat or dog) or horse) and frog) **
**     ****cat prox/word/=/3/ordered hat**

## ez3950

- Uses XER (XML encoding rules) over SOAP to encode Z39.50 ASN.1 data units
-    **http://www.lib.ox.ac.uk/jafer/ez3950/ez3950.html**

## ZOOM

- ZOOM (Z39.50 Object-Orientation Model)
- Specifications for API bindings exist in:
- 		C, C++, Perl, Java, Visual Basic, etc.
-    **http://zoom.z3950.org/index.html**

## ZeeRex

- ZeeRex (Z39.50 Explain, Explained and ReEngineered in XML)
- XML schema used to describe the configuration and capabilities of Z39.50 and SRW/SRU servers:
-    **http://explain.z3950.org/**

## Summary

- Z39.50 widely deployed in library community
- Z39.50 still an essential tool to provide access to library catalogs
- ZOOM API and toolkits hide complexity of Z39.50 implementation
- SRW, SRU, ZeeRex, and ez3950 growth is not easy to predict at this time

## Questions