User Guide - dtolpin/yycat GitHub Wiki
YUNG YiDiSH Tel Aviv has a large collection of Yiddish Books. An `electronic' catalog with Internet access helps advertise the collection, look up books in the collection, and let visitors check out books for reading at home or purchase copies.
Professional software for book catalogs is available but does not suit the purpose well: most software programs are relatively expensive, and oriented towards modern book collections in which books have easily identifiable titles and authors in Latin script, and often even rely on the ISBN numbers for cataloging. Only some packages allow easy public internet access to the catalog, a requirement in the case of YUNG YiDiSH.
Turns out that a book catalog can be implemented cheaply, conveniently, and efficiently using Google Spreadsheets and some relatively simple programming. This guide describes the YUNG YiDiSH Book Catalog based on a Google Spreadsheet with JavaScript automation on the server side (where the server is Google Drive), and client utility programs on the client side. Public access to the catalog is via simple HTML pages which can be accessed from any Internet-enabled device.
The guide begins with the catalog overview, followed by detailed description of basic cataloging activities. This information is useful for the librarian/catalog maintainer. Then public access to the Web-based version of the catalog as described. A companion document, The Programmer's Guide, provides details about the catalog internals and oriented towards a programmer wishing to extend or improve the catalog, or to use the catalog spreadsheet and accompanying scripts and programs for another collection.
The core of the catalog is a
Google Spreadsheet.
The stylesheet contains several sheets. The main sheet --- booklist
--- is the list of books. Other sheets belong to one of the following
categories:
-
View --- filled automatically from the contents of the first
sheet:
labels_to_print_\*
,duplicates
. -
Detail --- additional data about books in the catalog:
booktopics
,bookimages
. -
Internal --- auxiliary sheets used by scripts to fill or process
data in other sheets:
settings
.
Some views are used by programs rather than intended for humans; for
example, labels_to_print_\*
contain the lists of book labels that
must be printed (more on labels later).
The sheet booklist
contains the list of all books present in either
the Tel Aviv or the Jerusalem collection. The first column,
call_number, contains the unique identifier. The identifier is
composed of three parts, separated by slashes (/):
- Three-letter catalog identifier.
- Three first letters of the author's last name.
- The first letter of the book title, followed by a number to ensure that the call number is unique.
The catalog was pre-filled from the list of books in the Jerusalem collection. Only books which have been labeled have call numbers.
Columns jerusalem and telaviv contains the number of copies of the book in each collection. If a cell is empty, then the book is not present in that collection. Other columns contain bibliographical information in Yiddish (and sometimes in English), and in YIVO transliteration --- columns with suffix _yivo.
The sheet duplicates
is filled automatically from the book list
and contains records for the books with more than one copy in any
single collection. Auxiliary copies can be sold, donated, or otherwise
redistributed.
There are also other sheets containing additional information about books and book topics, or used to produce book labels for printing.
This section describes steps and actions involved in cataloging books in the collection. The result of cataloging a book is
- a record describing the book in the book list;
- a label with the call number (and encoded basic information about
the book --- more on this later) attached to the inside of the book cover.
A book label is a sticker with printed information identifying the book. A label contains two parts:
- The call number in human-readable form.
- A QR-code which encodes the call number and basic bibliographical information, truncated if too long. The QR-code is convenient for scanning using a smartphone and storing the record for later reference.
(TODO: label example when I figure out how to add images to the wiki).
A book is registered in three steps:
- First, a book record is added to the catalog (or an existing record matching the book is found). If the call number was not yet allocated, a new call number is generated. A temporary label is attached to the book.
- Labels for books registered but yet without a permanent labels are printed.
- Temporary labels are replaced with permanent labels.
The librarian registers a book either when a new book is added to the collection, or a not-yet registered book is found in the collection.
First, the librarian looks up a record for the book. The record may already exist in the catalog if another copy of the book is present in this or another collection. If the record is not found, the librarian inserts a new record according to the alphabetical sorting order (author, then title).
If the book record does not have a call number, a call number is
allocated. Since ensuring manually that the call number is unique
is laborious, a script that generates unique call numbers is available
as option Select CN
from the menu YY Catalog
. The script takes
call number prefix from the cell next to the cell named
call_number_prefix
in sheet settings
.
Afterwards, the librarian increases the number of copies of the book
in the collection (either jerusalem or telaviv), as well as the
number of labels to print (either _labels_jeru
or _labels_ta
).
In a new record the number of labels to print may be left blank,
and labels for all copies will be printed.
Finally, the librarian writes down the call number on a small piece of paper and inserts this piece of paper (serving as a temporary label) into the book (like a bookmark). The temporary label must be easily visible. It will be replaced by a permanent label later.
Important: Currently, the librarian should Disable Views
(turn off updating of automatically filled stylesheets) before editing the
book list, by selecting this option from menu YY Catalog
. Otherwise,
adding new records, and, in particular, generating call numbers is
extremely slow. This is an implementation limitation that hopefully
will be eliminated later.
Before generating labels for printing, the librarian should Enable Views
(turn on updating of automatically filled stylesheets). This
will re-generate the list of labels to print. As mentioned earlier,
this is an implementation limitation.
Labels for all books for which temporary labels are assigned are printed as a sequence of A4 pages. The labels are intended for printing on undivided sheets of self-adhesive paper, and should be cut into individual labels before printing.
There is a separate program in Python, mklbl.py, which receives a local copy of the book list and generates an HTML+SVG page with the labels. The labels can then be printed from a browser.
A CGI (web-based script) wrapper for the program, cat2lbl, downloads the book list and runs mklbl.py on the list to generate the labels. Links to the script for both Tel Aviv and Jerusalem collection are available from YY Catalog page.
The librarian goes through all books with temporary labels sticking out of them, and for each book:
- Lookups the permanent label corresponding to the temporary label.
- Removes the temporary label and sticks the permanent label on the inside of front cover.
- Decreases the number of
_labels_\*
(eitherta
orjeru
) by one.
If the permanent label for a temporary label wasn't printed, then it is a mistake, the librarian should increase the number of labels to print by one, so that the label is printed next time.
If there are permanent labels left, then they were printed in mistake, and the librarian should set to 0 the corresponding numbers of labels to print, so that they are not printed again next time.
Instead of marking each
The Yung YiDiSH catalog spreadsheet can be shared for viewing. In addition, the catalog is also available as a collection of interlinked HTML pages. The pages are generated automatically from the spreadsheet. A CGI script which downloads the spreadsheet and converts it to HTML behind the scenes is available from the YY Catalog page. The pages, once generated, do not depend on the spreadsheet or on the generating script, and can be viewed, moved, archived, and published independently.
Three versions are available: