Computers and Chess Annotation

[What to comment on] [Using existing evaluations] [Making annotations readable] [Whole-game annotating] [New evaluation procedures] [Playing] [Implementation and Examples] [Definitions]

Computers play chess by creating trees of possible moves and evaluating the resulting positions to determine which move (with best play by both sides) leads to the best position. The evaluation functions used assess various factors (material, King safety, etc) but typically return a single score. The best programs can now compete with the best human players.

Most chess programs also offer an "analysis" facility which given a game compares the moves played with the best move possible, displaying the corresponding scores and move continuations. This is useful to dedicated players but isn't like the annotated games seen in books and newspapers. Annotation styles vary greatly, ranging from the textless analysis of international journals like Informator, to the wise-cracking style seen in some Sunday papers. We are hoping to produce automated annotations that in style are between these 2 extremes.

What to comment on

Using existing evaluation functions

Some of the above annotations can be executed by making use of the evaluation information calculated but then thrown away by programs. Useful information can be gained both by looking depth-wise and width-wise at the evaluation results

Making annotations readable

It would be easy, though boring, to have a Best was ... comment after each sub-optimal move. The reader wants a variety of types of comments, a variety of phrasing and few passages of silence. This can be achieved by recording the types of comments made about each move and trying not to repeat the type too soon. Randomly selecting from lists of phrases with the same meaning will add interest.

Experts and beginners might prefer a different balance between comments and hard analysis. There may also be a need to treat games between beginners differently to games between grand-masters.

Whole-game annotating

Most computer programs annotate games move by move, missing out on the chance to be wise after the event. Even humans, if forced to annotate move-by move a game they're playing, can begin to look a bit silly. Because of the horizon effect, it's not uncommon for a program to assess a position as suddenly improved even though the expected moves were played. By with-holding comment on a move one can use hindsight or maybe moving averages to give better postion evaluation.

Whole-game annotating may also make possible the retrospective identification of plans and motives.

New evaluation procedures

Eventually annotation-specific routines will be useful


Annotating, by providing methods to identify traps and difficult positions, may lead to more interesting playing styles by programs.

Implementation and Examples

We used crafty as a foundation because it's a strong program that already has an annotate facility. We've tried to disturb as few files as possible (currently only annotate.c) even at the expense of efficiency. Some old code is online - a newer version still under development is online too. Here are some example games and implementation details.


Some terms and symbols that are commonly used in annotations can be translated into computing terms




Back to the Computers and Chess page.
Updated: January 2003