A short note on Dismal

Frank E. Ritter



Sequential data

Dismal was developed to support sequential data (protocol) analysis. It provides typical support for exploratory sequential data analysis, such as the ability to compute word counts, to search for lines matching given patterns, and to semi-automatically assign codes to segments. Further, it supports aligning predictions with sequential data, for example, a model trace and verbal utterances. When a complete description of correspondences can be provided such as keystrokes by the subject and the model, the two sequences can be automatically aligned. When the comparison is less clear, such as between a subject's verbal utterances and representations in the model, semi-automatic commands allow an analyst to align items by pointing. Together, these commands substantially reduce the work of testing cognitive models with protocols by up to a factor of five (Ritter & Larkin, 1994), allowing such analyses to be performed more often and with more insight.

HCI experimentation

Dismal is useful in teaching principles of HCI because it is instrumented -- it is possible to automatically record each user action and the time it occurred. We have found that undergraduates are able to use this in 5 week practicals to gather realistic user data and test HCI theories (e.g., the keystroke model of Card, Moran & Newell, 1983). As the source code is provided, Dismal can be used itself as a test bed for evaluating various interface designs, and comparisons can be based on actual user data.

Extendibility though implementation in GNU Emacs

Dismal is implemented as part of the GNU-Emacs editor, which leads to four relatively novel features. (a) Dismal is mainly keystroke driven although it can be partially mouse and menu driven. For example, the keybinding to cut a region of text now cuts a range of cells. This leads to ease of use for expert users, a high transfer of skill for Emacs users, and a large potential user base. (b) Dismal is directly extendible because its Lisp source code is provided. This allows users to write their own custom commands, for example, to count the occurrences of sequences in a column. (c) Its architecture is designed to allow it to be given commands from an associated program. This permits models of human behavior to use it as an interactive task environment. These models can either be written in the native Lisp code or called as an associated Unix process. (d) Perhaps the nicest effect this leads to is that Dismal is freely available via FTP.

More about GNU at http://www.gnu.ai.mit.edu/.

Current status (May 1998)

It's still being developed as people and projects need it, and as comments and suggestions (including source code!) are sent in by users.

There is a mailing list, email Frank Ritter to be put on it.


The initial development work, done jointly with David Fox of NYU and was sponsored in part by a training grant from the Air Force Office of Scientific Research, Bolling AFB, DC; and in part by the Avionics Laboratory, Wright Research and Development Center, Aeronautical Systems Division (AFSC), U. S. Air Force, Wright-Patterson AFB, OH 45433-6543 under Contract F33615-90-C-1465, ARPA Order No. 7597. It is currently supported by the Economic and Social Science Research Council's Centre for Research in Development, Instruction and Training and by a grant from the Joint Council Initiative in HCI and Cognitive Science, number SPG 9018736.

Project Personnel

Recent Papers

Frank Ritter (frank.ritter@nottingham.ac.uk)