In mid-1999, I (Ruth Kneale)
moved from my hometown of Tucson, Arizona, to tropical Hilo, Hawaii, in
order to set up the library and archives for the Gemini Observatory. Gemini
is a multinational organization with two main telescope sites, one in Hawaii
and a twin in Chile. Gemini also maintains a project office in Tucson.
I had been working in the Tucson office (while finishing up my Master's
in Library and Information Science at the University of Arizona), taking
care of the project's technical documentation, architectural and mechanical
drawings, and the Web sites. (We had a minuscule library there consisting
of some International Society for Optical Engineering conference proceedings
and a Thomas Register, but not much more.) Immediately after graduation,
I moved to Hawaii, assumed the mantle of observatory librarian, and was
given a big empty room to turn into our main library and archives. I was
also offered the opportunity to manage the Joint Astronomy Centre (JAC)
library. The JAC is a neighboring observatory that had a library but no
librarian to manage it, and it had grown a bit out of control. (See my
article "Reclaiming the JAC Library" in the June 2000 issue of Information
Outlook.) I was about to start dealing with books, magazines, and journals,
in addition to the project archives I was already tracking.
|"This has been a great
lesson in remote site administration and distributed library management!"
So there I was, on the ground
and running, with two libraries to cultivate. They say that in order for
anything to grow in Hawaii, just drop a seed and step back. It was time
to see if the same could be said about growing an organized garden of knowledge
out of the wild fields of information I saw ahead of me.
Preparing the Garden
Once I'd finished the tasks
of laying out the room, ordering shelves, and overseeing their installation,
I had prepared the new Gemini library for books and it was time to start
ordering. However, I had to figure out how I was going to keep track of
our new items with an extremely limited budget. I also had to figure out
a way to get the JAC library items cataloged; there was a minimal text
file listing some information, but nothing more. Then I went to my first
Internet Librarian conference in November 1999, and I had high hopes of
finding all the answers I needed.
I went into the conference
excited about the various talks and presentations I was going to see. But
I was also anxious to finally start shopping for a complete solution for
our libraries, not just for the immediate need but for the changes that
would take place as the library grew from a starter seed into a garden.
I wish I could say that my search for the perfect "gardening tool" was
resolved at this first conference, but I was overwhelmed with the options
that each vendor offered, and I had to determine if any of them had what
we did need without an overload of anything we did not. It was time to
Planning and Weeding
After the conference in
California, I went back to Hilo and set up a temporary solution in Microsoft
Access. I knew that I wanted each item to have its own unique identification
number, along with the usual MARC-inspired cataloging information like
title, author, publication information, call number, etc. Since we have
a great many conference proceedings, I also wanted to have a field to indicate
where the conference was held, and when. I set up a table in Access that
defined each field we needed, and I began entering items into it in order
to get them out on the shelves and available to the observatory staff.
At the same time, I began
evaluating the various demo packages and literature that I had either brought
back from Internet Librarian or had had sent to me from the vendors. I
looked at products from companies like Cuadra, SIRSI, and Innopac, and
found several tools that looked very usable. The various vendors assured
me that any modules I didn't need could be removed from the final tool.
The possibilities were numerous, and several packages were very appealing—until
I saw the prices. Sadly, I couldn't afford a single one of the products
I had learned about at Internet Librarian, even if the unneeded sections
were removed. The costs were just too high for my whimpering budget to
By this time, I had hired
an assistant librarian, and we were running into problems as we continued
to use Access. The largest was that we couldn't enter book information
simultaneously. This was a bit frustrating! So I headed to the Special
Libraries Association's 2000 annual meeting in Philadelphia. This time
I was more prepared for the onslaught of offerings from the vendors; I
began asking right off what the package prices were, whether they offered
any government, educational, or small-library discounts, and if they were
multi-user tools. I went back and visited several of the vendors from Internet
Librarian, and spoke with several more, like OCLC and TLC. I also began
investigating alternate platforms. Everything I'd seen at Internet Librarian
was Microsoft Windows-based, and I had another platform I could run from—Linux.
A New Plan for the Garden
I'd been to two conferences
so far trying to find an existing tool that fit Gemini's needs. I had begun
to believe it was time to re-think the shape of the garden. Back to Internet
Librarian I went, this time to attend the several talks about Linux in
the libraries and to see if perhaps something existed in that world that
would give my struggling garden the room that it needed to grow. Unfortunately,
if a Linux-based tool existed, I missed that talk at the conference. I
came back from Monterey, California, with a new purpose—we would build
what we needed ourselves.
In addition to being Gemini's
librarian, I am also the Webmaster. I finally realized that I had a perfectly
good tool right at hand with the Web. I could build a Web-based form that
both the assistant librarian and I could use at the same time. We could
also use it from any computer with Web access. I set up a password-protected
library administration area on our Web server, built a front-end form to
input all the cataloging information, and constructed a template for the
catalog output page. What I needed was a tool that would take our cataloging
input from the form, assign that information to the proper catalog based
on ownership (Gemini or JAC), assign the item a unique ID number, and generate
two Web pages for the item (a publicly viewable catalog page and a private
page limited to the librarians). I approached Colin Aspin, one of Gemini's
scientists who was a big library supporter and a programmer, about the
possibility of writing a program to handle this.
The Perfect Gardening
Colin and I first defined
what information needed to be stored in the database and came up with a
list of steps to catalog each library acquisition:
The Perl CGI script that receives
the entry information from the HTML Web entry page currently calls programs
written in Fortran 77 to manipulate the database text file (to add new
entries or delete unwanted ones). This procedure could have easily been
done in Perl, but with Colin's 20 years' experience in Fortran and only
2 years in Perl, the Fortran crept into the system by default!
Gemini's Web server runs Apache,
on a PC running Red Hat Linux 6.2. It also has several instances of the
WebGlimpse search engine running on it, for various search functions.
The output from the HTML form
described above POSTs the text entries to a Perl-based CGI script on the
The Perl script takes the input
entries and appends them to one of two sequential access text files (one
for Gemini, one for the JAC), one library acquisition being one line of
the text file. This has the added benefit of generating a delimited text
file that can be imported into any number of programs.
The script next creates two
HTML format Web pages: one containing the entries that are for general
access, a "public" page with title, authors, call number, location, etc.;
and one for access by the librarians only, the "libadmin" page. The latter
contains all the public page information plus entries not of interest to
the public like requestor of the item, vendor, cost, etc.
These HTML pages are archived
in separate directories with appropriate permissions based on end-users.
An instance of the WebGlimpse
search engine was tailored to search the public Web pages for keywords
such as author, title words, subject, etc. This is the final method that
users need in order to find out what titles are available in the library
and where they're located.
An option to re-generate all
HTML pages was included on the input form. This way, when we find typos
or the inevitable cataloging errors, we can change just the text file,
and don't need to change each HTML file in the separate directories.
This entire process, from
determining what should go into the database to starting to input data
via the Web-based form, took about a month. There were several iterations
and test runs of the form itself with nonsense data, and then a few more
iterations of the whole process after the Access data were exported to
a text file. After the original data were in place, with the Perl-appended
text file and the Web page generation working well, I began using the Web
form exclusively to catalog our new books.
Future Expansion Plans
As my 2-year contract time
was coming to a close, the database was all set up and the items that had
been purchased since June 1999 had been entered into the new catalog. But
we weren't finished populating the Gemini collection yet. (Not by a long
shot!) The 20 years' worth of the JAC library collection still needed to
be taken care of. As I mentioned earlier, there was a basic text file but
no further information, so each item needed to be entered into the new
database as well. I had to move back to Tucson, but my assistant Virginia
Smith remained in Hilo, and we're still working on the project together.
As we purchase new items for the libraries, we're both entering items into
the database; Virginia is also slowly working her way through the JAC back-cataloging
project. This has been a great lesson in remote site administration and
distributed library management! At this writing, we have been using our
home-grown solution for just under a year, and it is working like a charm
for both of us.
What we plan on implementing
in the next couple of months (so it's likely to be in place by the time
you read this) is a checkout module that can be used by either me, my assistant
librarian, an administrative assistant at the JAC, or an administrative
assistant in Chile who keeps an eye on the Gemini South library for me.
At this time, our checkout procedure is a patron putting her name and the
date on a library card and leaving the card when she takes the book. We
track usage statistics in the Gemini North library by entering the information
into a spreadsheet; however, this process is not very effective, and fairly
unusable at the JAC and Gemini South.
What we envision is a separate
Web-based form, accessible again from the password-protected Web site,
which would enable the appropriate individual to enter the unique ID number
from the book, and to note that it's checked out, the borrower's name,
and the date. The form's program would get the appropriate full catalog
information from the data files and generate two new Web pages; the public
one would simply indicate whether or not the book is checked out, while
the libadmin one would tell us who checked it out and when. As books are
returned, the same form could be used to indicate a check-in; new Web pages
generated would indicate the book was available. This would allow our patrons
to see right away whether the item they'd be seeking is available or not.
We would still use our library card checkout process; we don't have the
finances or the real estate to set up a checkout computer in any of the
libraries, and the staff members in all the locations that are using the
cards say that this is a very easy process. So I figure, if it ain't broke,
don't fix it!
In addition, Colin and I
plan to upgrade the Perl/Fortran scripting/programming to be entirely Perl-based,
as well as to investigate storing the acquisition database in a Sybase
system rather than a simple text file. Since Perl has excellent modules
for Sybase database access, this should be quite feasible.
What We've Planted Will
Continue to Flourish
The fully grown garden
that I see ahead for Gemini's libraries is still only a picture in my mind,
but I can overlay it to the groundwork we've already done and see it beginning
to bloom. Without Colin's programming expertise, this effort would have
been for naught; many kudos and thanks to him for his willingness to make
I hope that someday, some
automation vendors will see that extra-small libraries that don't have
consortia or large university affiliations need their services too; in
the meantime we'll be content to build and use our own tools to keep our
flourishing information garden in good shape.