Nathan,

You may want to consider some alternatives to Z39.50.

As Marc and Godmar have pointed out, you can set the record format to 'OPAC' in 
order to get holdings information in a Z39.50 search, but the III Z39.50 server 
has some key limitations.

First, the III Z39 Server only allows you to search on a handful of indexes.  
If you have an exported list of records, you will likely want to be able to 
check item status using the bibliographic record id number, since that is the 
unique identifier for each record.  But the III Z39 server does not support a 
search for bib id.  That forces you to look-up the record using one of the 
supported indexes, which may not be sufficiently unique for your purposes.

Second, the III Z39 Server does not return results in the same fashion as the 
web interface.  In particular, any type of keyword search with a boolean 
operator behaves erratically, returning different results then you would 
expect.  That may not be crucial for your project, but it is something that has 
plagued our metasearch initiative here in the CSU for years.

Some alternatives to consider:

(1) The Innovative catalog does allow you to get an XML representation of any 
bibliographic or item record using the 'xrecord' parameter, like this:

  your.catalog.edu/xrecord=b1235478a

You don't need to have XML Server for this, it is installed by default.  
However, it does not attach item records to a request for a bib record.  So the 
only way to check the status of your holdings is to know in advance the item 
record id numbers for each bib record, and query each in turn.

(2) Screen scraping.  I know, I know, you'll say that's ugly.  It is, but 
honestly it is the approach we are leaning towards here for a number of things.

Here is an example using some PHP code I have.

http://walkertr.csusm.edu/scrape/test.htm


Type in the server address and a bib record number.  It will return the record 
to you in MARC-XML with the item records attached as a series of 852 fields 
(you could change that behavior if you need to).

--Dave

-------------------
David Walker
Library Web Services Manager
California State University
http://xerxes.calstate.edu

________________________________

From: Code for Libraries on behalf of Godmar Back
Sent: Wed 2/28/2007 9:34 AM
To: CODE4LIB@listserv.nd.edu
Subject: Re: [CODE4LIB] Z39.50 for III Database?



Use yaz. This will give you basic holdings information.

Example:

> yaz-client
Z> open addison.vt.edu:210/innopac
Connecting...OK.
Sent initrequest.
Connection accepted by v2 target.
ID     : Z39.50-III
Name   : z39-innopac
Version: 1
UserInformationfield:
{
    OCTETSTRING(len=52) Innovative Interfaces Inc. Z39.50 SERVER version 1.1
}
Guessing visiblestring:
'Innovative Interfaces Inc. Z39.50 SERVER version 1.1'
Options: search present scan namedResultSets
Elapsed: 0.083577
Z> format opac
Z> find @attr 1=1003 @attr 4=1 "knuth donald"
Sent searchRequest.
Received SearchResponse.
Search was a success.
Number of hits: 19, setno 1
records returned: 0
Elapsed: 0.007483
Z> show 1
Sent presentRequest (1+1).
Records: 1
[INNOPAC]Record type: OPAC
Record type: USmarc
01013nam  22002658a 4500
001 ocm07948639
008 820506s1981    gw       b    101 0 eng
010    $a    81018418
020    $a 0387111573 (U.S.)
035    $a 0501-40660
040    $a DLC $c DLC
049    $a VPII
050 0  $a QA9.58 $b .A43
245 00 $a Algorithms in modern mathematics and computer science : $b
proceedings, Urgench, Uzbek SSR, September 16-22, 1979 / $c edited by
A.P. Ershov and D.E. Knuth.
260    $a Berlin ; $a New York : $b Springer-Verlag, $c 1981.
263    $a 8111.
300    $a xi, 487 p. : $b ill. ; $c 24 cm.
440  0 $a Lecture notes in computer science ; $v 122.
500    $a "The symposium was organized by the Academy of Sciences of
the Uzbek S.S.R."--Pref.
504    $a Includes bibliographies and index.
650  0 $a Algorithms $v Congresses.
650  0 $a Computer programming $v Congresses.
700 1  $a Ershov, A. P. $q (Andreæi Petrovich)
700 1  $a Knuth, Donald Ervin, $d 1938-
710 2  $a æUzbekiston SSR fanlar akademiëiìasi.

Data holdings 0
localLocation: Newman 4th Floor
callNumber: QA9.58 .A43
publicNote: AVAILABLE
nextResultSetPosition = 2
Elapsed: 0.192699

Caveat:
If you want XML, *do not* ask III's Z39.50 for the Z39.50 xml format.
Their XML is ill-formed. Instead, ask III's server for records with
holdings information using the "opac" format, as shown above, then
have yaz convert that into well-formed XML. See
http://lists.indexdata.dk/pipermail/yazlist/2005-December/001485.html
for how to do that using yaz's PHP binding.

 - Godmar

On 2/28/07, Nathan Mealey <[EMAIL PROTECTED]> wrote:
> Simmons is a III-based library. I'm in the midst of developing an
> application that uses a subset of our records that I've exported via
> creating a list and then pushing it into a MySQL database.
>
>
>
> We did not purchase the XMLServer module during the time that it was
> available, and so I don't have that as an option for querying our III
> database.
>
>
> What I'm wondering is whether Z39.50 would allow me to query our III
> database and receive an item's status information. And if yes, then what the
> technologies and/or steps involved would be (broadly speaking). Our III
> database definitely accepts Z39.50 queries, but I've haven't made use of
> this in an external application before.
>
>
>
> The application that I'm developing uses Rails & MySQL running on a Windows
> 2003 Server.
>
>
>
> Does anyone have any ideas about this?
>
>
>
> Thanks!
>
> --
>
> Nathan Mealey
>
> Systems Librarian
>
> Simmons College
>
> 617.521.2755
>
> [EMAIL PROTECTED]
>

Reply via email to