Home * Knowledge * Opening Book

Chess programs often look up the positions at the beginning of the game in an Opening Book. Chess programs could use search from the beginning and look through all possible continuations in detail to find the best next move, but as this is quite time-consuming and there already exists a lot of literature about different opening lines, opening books save time and provide higher quality of play. Another reason that opening books are used commonly is to provide variety, as book moves are usually chosen randomly, whereas searches are more or less deterministic.

This opening database can then be used as long as the opponent plays a new move from the database, so usually more common opening lines will be stored to a much higher depth than the uncommon ones. As soon as the program is "out of book" it has to continue using the normal search routines.
Modern Chess Openings [1]


There are two ways to store an opening database:
  • Opening lines
  • Positions

Some databases use a list of common opening lines, while others hold a list of positions that arise in common openings. The first option is probably easier to implement, while the second has some important advantages.

Opening databases built on positions are usually more space efficient and overcome the problem of transpositions. Often these positions are stored as hash value to allow fast access. Some opening database formats store with each positions as well some information about it. (e.g. number of times occurred, number of games won by white/black / drawn with this position, average/maximum Elo of players playing to this opening position, chess program's success with the position) So when a chess program has to decide on a move, it will look up all positions that could arise after moving in the database and then make a decision upon the information given with each position.


All in all the information stored in an opening database should guide the chess game into a type of middle game in which the chess program proves itself most successful. But to achieve this there are two main ways.


If the opening database designer has some special preference of a certain opening line, he might create it fully manually. This is often the case if a chess program is about to play an important game against a grandmaster. Then the opening style will probably be chosen to be difficult and dangerous for the opponent. Another option is to first automatically generate a database and then fine tune it manually.


Another option is to select a number of games (the type of which will effect the openings played: e.g. drawn games only, GM games only, etc) and then up to a certain depth store all positions in the opening database. It is true that by using this way of database generation some severe errors might by copied as well, but usually the chess programs are set to stop playing according from the book if a position occurred less than a certain number times before.

Book Building Tools

Book Builder

In 1999, Marc-Philippe Huget published a Book Builder [2] in conjunction with his engine La Dame Blanche, a standalone open source program [3] to convert a PGN file into an opening book of the format proposed by Kathe Spracklen [4]:
(e4(e5)(c5))(d4d5)) etc.


Jonathan Schaeffer in One Jump Ahead [5] :
To solve the opening problems of his chess machine, Belle, Ken Thompson typed in opening lines from the Encyclopedia of Chess Openings (in five thick volumes). Religiously, he dedicated one hour a day for almost three years (!) to the tedious pursuit of entering lines of play from the books and having his Belle computer verify them. The result was an opening library of roughly three-hundred thousand moves. The results were immediate and obvious: Belle became a much stronger chess program, and Ken probably aged prematurely. Later Ken developed a program to automatically read the Encyclopedia, allowing him to do in a few days what had taken him three years to do manually. [6]


Classification of Chess Openings

Book Issues

See also

Selected Publications

1980 ...

1990 ...

2000 ...

2005 ...

2010 ...

2015 ...

Forum Posts

1990 ...

1995 ...

2000 ...

2005 ...

2010 ...


2015 ...


External Links

Engine Books

Online Opening Tree



  1. ^ Worn copy of second edition of Modern Chess Openings (1913) by Richard Clewin Griffith (1872–1955) and John Herbert White (1880–1920), with an introduction by Henry Ernest Atkins (1872–1955), Modern Chess Openings from Wikipedia
  2. ^ Web site updated and new program Book Builder by Marc-Philippe Huget, CCC, February 24, 1999
  3. ^ Book Bilder of La Dame Blanche by Marc-Philippe Huget, hosted by Thomas Mayer
  4. ^ Kathe Spracklen (1983). Tutorial: Representation of an Opening Tree. ICCA Newsletter, Vol. 6, No. 1
  5. ^ Jonathan Schaeffer (1997). One Jump Ahead. 11. I Feel Like a Teenager Again, pp. 184
  6. ^ Henry S. Baird, Ken Thompson (1990). Reading Chess. IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 12, No. 6, pdf
  7. ^ Zipf's law from WIkipedia
  8. ^ Search-Based Opening Book Construction by John Fishburn, CCC, December 14, 2016
  9. ^ Search-Based Opening Book Construction by John Fishburn, CCC, April 29, 2017
  10. ^ Books hosted by Ed Schröder
  11. ^ Re: Opening Books Battle.. by BB+ (Mark Watkins), OpenChess Forum, March 12, 2011
  12. ^ Perfect 2014 Final (Full Package) by Sedat Canbaz, CCC, July 30, 2014

Up one level