User Guide - dtolpin/yycat GitHub Wiki

User Guide: YUNG YiDiSH Book Catalog

Introduction

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.

Catalog Overview

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 Book List

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.

Duplicates

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.

Other sheets

There are also other sheets containing additional information about books and book topics, or used to produce book labels for printing.

Activities

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:

  1. The call number in human-readable form.
  2. 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:

  1. 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.
  2. Labels for books registered but yet without a permanent labels are printed.
  3. Temporary labels are replaced with permanent labels.

Adding Books to the Catalog

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.

Printing Labels

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.

Sticking Labels

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_\* (either ta or jeru) by one.

Dealing with errors

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.

Batch update

Instead of marking each

Public Access

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:

⚠️ **GitHub.com Fallback** ⚠️