ZOOM: The Z39.50 Object-Orientation Model

28th July 2009

What is ZOOM?

The ZOOM initiative presents an abstract object-oriented API to a subset of the services specified by the Z39.50 standard, also known as the international standard ISO 23950. If you are trying to build any kind of Z39.50 client or client-based service, ZOOM is an excellent place to start.

The API is:

The ZOOM specifications, bindings for several languages, and many implementations, are available for free browsing and download[1].

ZOOM is a key part of the wider ZING initiative (Z39.50 International: Next Generation). ZING aims to explore a variety of means for broadening the appeal of Information Retrieval tools, techniques and concepts beyond the traditional IR niche markets.

Here's a completely unsolicited testimonial:

Date: Wed, 6 Feb 2002 16:24:12 -0800 (PST)
From: Dan Ancona <ancona@alexandria.ucsb.edu>

ZOOM definitely looks like it's going to do it for me. It's so so nice - I just wish I'd read the docs more carefully and found out about it sooner. [...] ZOOM is just dreamy - it's exactly the clean and straightforward API that I was looking for when I started on this project. It's going to be the last piece of a puzzle that has confounded many who worked on this before me.

What's on this site?

Although the API presented by the ZOOM initiative is abstract, we consider it essential to ground the exercise in reality by providing concrete bindings to some popular application-programming languages - otherwise the whole process is nothing more than an academic exercise.

More, we plan to build example implementations of the ZOOM layer for each of the bindings, and to provide links to other people's implementations.

Accordingly, this site is made up of the following sections:

The navigation bar at the bottom of each page contains links to each of these sections.

How to contribute

First of all, if you're interested in the direction ZOOM is taking, and especially if you want to influence that direction, you should join the ZOOM developers' mailing list: details at http://www.indexdata.dk/mailman/listinfo/zoom

This list contains discussions on the scope and aims of ZOOM, the Abstract API, and (particularly!) the C++ binding, the evolution of which is either a fascinating or very boring process depending on your perspective.

Another contribution we're looking for is people to work on the specifications of the various bindings and their implementations. Fame and prestige could be yours! Email <bindings@zoom.z3950.org> if you want to take on a binding specification, or if you're working on an implementation.

Finally, we welcome information on ZOOM-based applications and projects. Please send your success stories - and indeed failure stories - to <stories@zoom.z3950.org>



The ZOOM specifications are freely available because the whole notion of charging for standards is profoundly stupid: it restricts their distribution and inhibits uptake, which defeats the whole point of providing a standard. ZOOM is free as in ``free beer'', and also as in ``free speech'': see www.gnu.org/philosophy/free-sw.html for more on freedom as it relates to software in general, and www.acm.org/tsc/acmfree.htm for a discussion of free and ``pay-for'' standards. [back]

Feedback to <mike@indexdata.com> is welcome!