Photobook version 6

New features include:

Photobook's design, briefly


Photobook is program for browsing image databases according to precomputed visual features. A typical use-case is to click on an image and have Photobook reorder the database according to similarity to that image.


A database is a Composite with identical structure on disk (Unix directories) or in memory (hash tables). Parts of the database may transparently move back and forth between the disk and memory representations, similar to virtual memory. This is how caching and temporary changes, like reordering, occur.

Parts of the database are not permanently stored but instead created on demand, such as similarity scores and zoomed versions of images. This is implemented by special kinds of tables (active tables) which obey the same protocol but compute their contents on the basis of other tables.

A Chain of Responsibility is used to read images and feature files, which may be stored in various formats.

The user interface is written in Tcl/Tk, augmented with commands for the table protocol. This, and a standard naming scheme for database contents, is sufficient for a functional application, because the database provides most of its own behavior in the form of active tables.

Thomas Minka
Last modified: Tue Oct 8 15:34:31 EDT 1996